在大二上《计算机网络》这门课的时候,由于并不是很喜欢这门课的老师,导致我在上课的大部分时间都在摸鱼~~(啊喂,学校教的哪门课你没在摸鱼啊?)~~。最近看了《图解HTTP》这本书,借这本书正好也复习了一下应用层和传输层协议,毕竟现在的 Web 应用几乎都是在应用层的 HTTP 协议运行的,而 HTTP 又是基于传输层的 TCP 协议来实现的。我一直认为检验学习新知识是否牢靠最好的方法就是写一个小的实例,于是乎,借助于 Socket 模块(仅对 BSD Sockets API 进行封装),我也实现了一个静态的 HTTP 服务器,当然,比标准库提供的 SimpleHTTP 要强一点,因为我编写的支持并发。源码见这里。Socket 服务器SocketHTTP 协议是基于 TCP 协议来实现的,也就是说要实现 HTTP 服务器首先就需要先创建一个 TCP 连接,而一个完整的 TCP 连接是同时需要客户端和服务端的,而客户端和服务端的创建,就需要借助 Socket(套接字)了。通常创建一个 Socket 需要为其指定地址族(包括本机、IPV4、IPV6)、套接字类型(流式、数据报式,分别对应 TCP 和 UDP)from socket import AF_INET, SOCK_STREAM, socket
# create a tcp socket
sock = socket(AF_INET
...
继续阅读
(48)