小伙利用Python搭建web服务器,这小伙不进腾讯可惜了!

简单的说,web服务器就是机器上监听了本地的IP和端口的一个进程,当有客户的请求进来时,它会响应客户的请求并返回相应的信息。客户端和服务端之间的通信基于HTTP协议,客户端可以是浏览器或者任何支持HTTP的应用。我们平时访问网页或手机APP里接受服务端的数据,都是通过这样的方式。

下面这张图是一个客户端和服务端交互的过程

用户在浏览器输入网址向web服务器发出一个请求,web服务器收到请求后返回Hello, world!给浏览器,用户就能在浏览器上看到文字。

我们来用Python实现这样一个简单的web服务器。代码如下

上面的代码监听本地的8888端口,收到客户端的请求后,在控制台打印出请求的头部和内容,并返回响应的头部和内容给客户端。

运行上面的代码

打开浏览器,访问http://localhost:8888/,会在浏览器看到如下的页面

同时在程序的控制台会有如下的输出

这就是客户端请求的头部信息。

HTTP协议是TCP协议上层的协议,因此在实现HTTP交互之前,客户端和服务端先要创建TCP连接。创建TCP连接就要用到socket模块。创建TCP连接由客户端发起,为接受客户端的TCP连接请求,服务器端需要经历以下几步:

创建socket

调用bind绑定到指定的IP和端口

调用listen监听端口

调用accept接受客户端的请求

至此一个TCP连接创建完成,接下来就可以进行数据的收发。

好了,以上就是一个最简单的web服务器。

对web开发感兴趣的同学,这里插播一则广告,加小编扣裙:前面七灵灵 中间三四一 后面 五五五可以免费领取Python web开发学习资料一份!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190124A17IWS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券