socket是网络编程的基础,HTTP协议是基于socket协议上进行。

总所周知,HTTP协议是一个请求-响应协议,即客户端(浏览器)发起请求,服务器必须给出一个响应。

HTTP数据分为请求数据和响应数据,其格式如下:

请求数据:

响应数据:

我们使用socket协议来模拟HTTP协议的运行,需要手工的构建HTTP的响应数据(响应首行-响应头-空行-响应体)并返回给浏览器。

浏览器构造的请求数据(请求首行-请求头-空行-请求体)如下:

浏览器获取的响应数据如下:

模拟成功,这表示HTTP协议即是socket的上层封装,同时为了满足互联网的使用特性,涉及成无缓存,请求-响应模式,短连接(HTTP1.1变成keep_alive的长连接)……等特性。