python web编程 创建一个web服务器
2014-11-05 23:42
543 查看
这里就介绍几个底层的用于创建web服务器的模块,其中最为主要的就是BaseHTTPServer,很多框架和web服务器就是在他们的基础上创建的
基础知识
要建立一个Web 服务,一个基本的服务器和一个“处理器”
是必备的。
基础的(Web)服务器是一个必备的模具。它的角色是在客户端和服务器端完成必要HTTP 交互。
在BaseHTTPServer 模块中你可以找到一个名叫HTTPServer 的服务器基本类。
处理器是一些处理主要“Web 服务”的简单软件。它们处理客户端的请求,并返回适当的文件,
静态的文本或者由CGI 生成的动态文件。处理器的复杂性决定了你的Web 服务器的复杂程度。Python
标准库提供了三种不同的处理器。
最基本,最普通的是 vanilla 处理器,被命名 BaseHTTPResquestHandler,这个可以在基本
Web 服务器的BaseHTTPServer 模块中找到。除了获得客户端的请求外,不再执行其他的处理工作,
因此你必须自己完成它们,这样就导致了出现了myhttpd.py 服务的出现。
用于SimpleHTTPServer 模块中的SimpleHTTPRequestHandler , 建立在
BaseHTTPResquestHandler 基础上,直接执行标准的GET 和HEAD 请求。这虽然还不算完美,但已经
可以完成一些简单的功能啦。
最后,我们来看下用于CGIHTTPServer 模块中的CGIHTTPRequestHandler 处理器,它可以获取
SimpleHTTPRequestHandler 并为POST 请求提供支持。它可以调用CGI 脚本完成请求处理过程,也可
以将生成的HTML 脚本返回给客户端。
BaseHTTPServer 提供基本的Web 服务和处理器类, 分别是HTTPServer 和
BaseHTTPRequestHandler
SimpleHTTPServer 包含执行GET 和HEAD 请求的SimpleHTTPRequestHandler 类
CGIHTTPServer 包含处理POST 请求和执行CGICGIHTTPRequestHandler 类
实现
#!/usr/bin/env python from os import curdir, sep from BaseHTTPServer import \ BaseHTTPRequestHandler, HTTPServer class MyHandler(BaseHTTPRequestHandler): def do_GET(self): try: f = open(curdir + sep + self.path) self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() self.wfile.write(f.read()) f.close() except IOError: self.send_error(404, 'File Not Found: %s' % self.path) def main(): try: server = HTTPServer(('', 80), MyHandler) print 'Welcome to the machine...' print 'Press ^C once or twice to quit' server.serve_forever() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close() if __name__ == '__main__': main()
相关文章推荐
- WEB服务器之一:创建一个网站
- Python Web编程 :10分钟创建简易博客
- [计网] 用python语言开发一个简单的web服务器和客户端
- Python web入门:Django学习与实践二(简单页面实现和创建一个模板)
- 如何用nat123创建一个web服务器以达到外网访问内网的目的。
- python实现一个web服务器识别工具
- 实验一个最小的PYTHON服务器编程
- 一句Python命令启动一个Web服务器
- 使用Python或Node创建简单web服务器和FTP服务器实现文件共享
- pythonWeb -- Django开发-创建一个Django项目
- 利用python自带的包, 快速建立一个web服务器
- python创建一个最简单http webserver服务器的方法
- Python之构建一个简单的web.py框架的服务器
- Python Web编程 :10分钟创建简易博客
- 用python创建一个简单的restful风格的web服务应用
- 创建一个简单的Python服务器
- PYTHON 创建WEB服务器
- 一句Python命令启动一个Web服务器
- 创建一个简单的web服务器
- 利用Python创建一个简单web服务