apache 实现 HTTP PUT方法
(2015-07-26 16:33:39)
标签:
pythonapacheput方法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锁机制在发挥作用

加载中…