互联网在过去20年里已经大大地改变了我们的生活方式,影响着社会。但是反观互联网,它的基础-web的核心原理并没有改变多少。大部分web系统仍旧遵守TimBerners-Lee20多年前提出的W3C标准,大部分web服务器接收的信息格式与接收的方式与过去并无二致。
小编今天介绍的项目课程就是教你用Python实现一个简单的Web服务器。
项目名称:
项目简介:
该项目通过使用Python语言实现一个Web服务器,探索HTTP协议和Web服务的基本原理,同时学习Python如何实现Web服务请求、响应、错误处理及CGI协议,最后会使用Python面向对象思路进行重构。
涉及知识点:
HTTP协议基本原理
简单的Web服务器框架
Python语言的网络开发
Web服务请求,响应及错误处理的实现
CGI协议的Python实现
使用Python面向对象思想重构代码
实验原理:
一般我们的web程序都运行在TCP/IP协议上,程序之间使用socket(套接字)进行通信,它能够让计算机之间的通信就像写文件和读文件一样简单。
一个tcpsocket由一个IP地址和端口号组成。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”,写成10进制的形式就是我们常见的..14.。我们通过IP地址来标识所连接的主机。
端口号是一个范围在0-之间的数字,一台主机上可能同时有多个sockets,因此需要端口号进行标识。端口号0-是保留给操作系统使用的,我们可以使用剩下的端口号。
超文本传输协议(HTTP)描述了一种程序之间交换数据的方法,它非常简单易用,在一个socket连接上,客户端首先发送请求说明它需要什么,然后服务器发送响应,并在响应中包含客户端的数据。响应数据也许是从本地磁盘上复制来的,也许是程序动态生成的。
传输过程如图:
HTTP请求就是一段文本,任何程序都能生成一个