python的http服务
2016-05-16 19:08
429 查看
用于搭建http server的模块有如下三种:
1)BaseHTTPServer:提供基本的Web服务和处理器类,分别是HTTPServer及BaseHTTPRequestHandler;
2)SimpleHTTPServer:包含执行GET和HEAD请求的SimpleHTTPRequestHandler类;
3)CGIHTTPServer:包含处理POST请求和执行的CGIHTTPRequestHandler类。
一、SimpleHTTPServer:包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。
通过下面命令我们创建了HTTP服务,默认使用8000端口号监听。通过:http://localhost:8000/ 就可以访问,如果文件夹下有index.html,那么这个文件就会成为一个默认页,如果没有这个文件,那么,目录列表就会显示出来。
python -m SimpleHTTPServer
python -m SimpleHTTPServer 8080 #指定端口号
在我目前的实现中,主要采用BaseHTTPServer模块。
二、 BaseHTTPServer模块
HTTPServer是一个SocketServer.TCPServer的子集,创建并监听HTTP套接字,分配requests到处理器(handler), BaseHTTPRequestHandler在HTTP请求到达时进行处理,但其自身并不能对请求作出相应,由另一个派生类来处理每一个请求方法。BaseHTTPRequestHandler为子集提供许多类变量、实例变量和方法,其分析请求对象和请求头部,并根据请求类型调用相应的方法。一般这个模块不被直接使用,而是被用来作为构建功能性Web服务器的一个基类。
BaseHTTPRequestHandler其中的实例变量有:
1)client_address 包含关联的客户端地址(host, port)
2)command 包含请求类型(eg: get )
3)path 包含的请求路径
4)request_version 包含请求版本的字符串(eg: 'HTTP/1.0')
5)headers
6)rfile 输入流
7)wfile 包含写到客户端响应的输出流
BaseHTTPRequestHandler的类变量有:
1)server_version 指定服务器软件版本
2)sys_version Python系统版本
3)error_message_format
4)protocol_version 响应中使用的HTTP协议版本
BaseHTTPRequestHandler部分操作
1)handle()
2)send_error(code[, message]) 发送并记录一个完整的错误回复到客户端
3)send_response(code[, message]) 发送一个响应头并记录已接收的请求
4)send_header(keyword, value) 编写一个指定的HTTP头到输出流
5)version_string() 饭后服务器软件的版本字符串
2. 浏览器访问
服务器开启后,就可以通过浏览器输入网址访问服务器资源
http://localhost:port/directory
如在主路径下准备好info.xml文件后,可通过在浏览器输入http://localhost:1000/info.xml进行访问
3. 服务器关闭
1) dos
在运行界面中输入 "ctrl + C" 停止
2)python脚本
需停止端口监听及相关python进程
def stop_server(server)
server.sorket.close()
1)BaseHTTPServer:提供基本的Web服务和处理器类,分别是HTTPServer及BaseHTTPRequestHandler;
2)SimpleHTTPServer:包含执行GET和HEAD请求的SimpleHTTPRequestHandler类;
3)CGIHTTPServer:包含处理POST请求和执行的CGIHTTPRequestHandler类。
一、SimpleHTTPServer:包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。
通过下面命令我们创建了HTTP服务,默认使用8000端口号监听。通过:http://localhost:8000/ 就可以访问,如果文件夹下有index.html,那么这个文件就会成为一个默认页,如果没有这个文件,那么,目录列表就会显示出来。
python -m SimpleHTTPServer
python -m SimpleHTTPServer 8080 #指定端口号
在我目前的实现中,主要采用BaseHTTPServer模块。
二、 BaseHTTPServer模块
HTTPServer是一个SocketServer.TCPServer的子集,创建并监听HTTP套接字,分配requests到处理器(handler), BaseHTTPRequestHandler在HTTP请求到达时进行处理,但其自身并不能对请求作出相应,由另一个派生类来处理每一个请求方法。BaseHTTPRequestHandler为子集提供许多类变量、实例变量和方法,其分析请求对象和请求头部,并根据请求类型调用相应的方法。一般这个模块不被直接使用,而是被用来作为构建功能性Web服务器的一个基类。
BaseHTTPRequestHandler其中的实例变量有:
1)client_address 包含关联的客户端地址(host, port)
2)command 包含请求类型(eg: get )
3)path 包含的请求路径
4)request_version 包含请求版本的字符串(eg: 'HTTP/1.0')
5)headers
6)rfile 输入流
7)wfile 包含写到客户端响应的输出流
BaseHTTPRequestHandler的类变量有:
1)server_version 指定服务器软件版本
2)sys_version Python系统版本
3)error_message_format
4)protocol_version 响应中使用的HTTP协议版本
BaseHTTPRequestHandler部分操作
1)handle()
2)send_error(code[, message]) 发送并记录一个完整的错误回复到客户端
3)send_response(code[, message]) 发送一个响应头并记录已接收的请求
4)send_header(keyword, value) 编写一个指定的HTTP头到输出流
5)version_string() 饭后服务器软件的版本字符串
2. 浏览器访问
服务器开启后,就可以通过浏览器输入网址访问服务器资源
http://localhost:port/directory
如在主路径下准备好info.xml文件后,可通过在浏览器输入http://localhost:1000/info.xml进行访问
3. 服务器关闭
1) dos
在运行界面中输入 "ctrl + C" 停止
2)python脚本
需停止端口监听及相关python进程
def stop_server(server)
server.sorket.close()
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法