最近在学习HTTP及HTTP server实现原理,于是用python谢了个 HTTP server 示例,用于HTTP测试用,在这里分享给大家。想要深入学习HTTP协议,推荐买一本《HTTP权威指南》
说明
Demo程序默认绑定8080端口,在有请求到来时打印出请求的HTTP报文。控制台阻塞,手动通过控制台输入原生的HTTP报文(包括响应行,相应Header,内容)并以":q"最为结束符。
示例中仅将原生的HTTP请求进行返回。响应中我们可以输入任何满足HTTP格式的内容,通过Header告诉客户端如何解析。
1. Code
import os
import sys
import socket
import datetime
class HTTPServer():
def __init__(self, port=8080):
print "HTTP server is initiating ..." + os.linesep
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind(("", port))
def startServer(self):
self.server_socket.listen(sys.maxint)
print("HTTP server is started ..." + os.linesep)
while True:
client_socket, client_address = self.server_socket