加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

apache 实现 HTTP PUT方法

(2015-07-26 16:33:39)
标签:

python

apache

put方法

201

分类: 吃饭的家伙
需求:

利用apache服务器直接实现PUT方法,不利用PHP等其他特性

环境:

Win7
ApacheFriends XAMPP Version 1.8.3
Apache 2.4.10

实现:

1、在apache\modules中检查是否存在mod_dav.so和mod_dav_fs.so这两个模块,需要确定存在

2、修改apache\conf\httpd.conf,将以下两句打开

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

【TIPS】

这两个模块是开启apache支持 WebDAV的关键,WebDAV介绍见


3、修改站点配置文件如下:

DocumentRoot “D:/workspace/xampp/htdocs/lixin”
ServerName test.lixin.com
Dav On

Python 测试代码如下:

__author__ = ‘lixin’
# -*- coding: utf-8 -*-

import httplib

conn = httplib.HTTPConnection(“test.lixin.com”)
BODY = “ok”
conn.request(“PUT”, “/1.txt”,BODY)
response = conn.getresponse()
print response.status, response.reason

测试结果为:
500 Internal Server Error

4、修改配置文件,增加内容:

DocumentRoot “D:/workspace/xampp/htdocs/lixin”
ServerName test.lixin.com

#DavLockDB貌似是webdav的锁机制,没有详细查过,从说明文档中看有写文件的锁机制,应该需要东西来
#维持锁百度出来的大多数代码都没有提及这一点,其实也可以直接修改httpd.conf 中的#Includeconf/extra/httpd-dav.conf,载入httpd-dav.conf,
#在那个conf文件中加入配置

DavLockDB “D:/workspace/xampp/apache/logs/Dav.Lock”
Alias /webdav “D:/workspace/xampp/htdocs/lixin/”

Dav On

再次执行Python代码,测试结果为:
201 Created

查看对应的目录中,出现 1.txt文件,内容为‘ok’,测试成功

【TIPS】

1、重复提交同样文件名称的PUT请求,返回为 204 No Content,猜测应该是webdav锁机制在发挥作用

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有