Python实现Web静态服务器
在互联网发展的早期很多网站都是静态网站,也就是说只有一个静态页面,例如下图的中国黄页就是一个静态页面,没有任何互动效果。
下图介绍的是客户端向服务器发起请求的过程,因这篇文章介绍的是静态服务器所以重点说下服务器部份,当客户端发起请求服务器根据请求的内容来读取HTML文件,读取后服务器将响应体和响应头拼接其做为一个整体,将这个整体统一返回给客户端,用户在客户端的浏览器看到的内容就是服务器HTML文件的内容。
在实现静态服务器之前先介绍下预备识知Socket套接字,socket是进程通信的一种方式,在python中要实现通信的功能就需要使用Socket套接字,比如浏览网页,发邮件,聊QQ都需要使用socket套接字。socket套接字是通过底层的应用系统实现的。在python中有一个socket模块对应着linux系统底层socket进行了封装,所以在python中可以直接使用。
还需要介绍下另一个预备知识多进程模块,在python中有一个多进程模块multiprocessing.Process(target=func,args=(arg1,arg2)),看下面面一段简单的示例代码,运行下注释部份和非注释部份就可以看到多进程的优势
from multiprocessing import Process
import time
def sayHello():
print('hello world')
time.sleep(1)
if __name__ == '__main__':
for i in range(5):
process = Process(target=sayHello)
process.start()
#sayHello()
有了这两部份知识接下来可以直接上构建web静态服务器,先看文件结构,这里只需看框起来红色部份的三个文件
# coding:utf-8
import socket # 导入Socket模块
import re # 导入re正则模块
from multiprocessing import Process # 导入P