socket是网络编程的基础,HTTP协议是基于socket协议上进行。
总所周知,HTTP协议是一个请求-响应协议,即客户端(浏览器)发起请求,服务器必须给出一个响应。
HTTP数据分为请求数据和响应数据,其格式如下:
请求数据:
响应数据:
我们使用socket协议来模拟HTTP协议的运行,需要手工的构建HTTP的响应数据(响应首行-响应头-空行-响应体)并返回给浏览器。
浏览器构造的请求数据(请求首行-请求头-空行-请求体)如下:
浏览器获取的响应数据如下:
模拟成功,这表示HTTP协议即是socket的上层封装,同时为了满足互联网的使用特性,涉及成无缓存,请求-响应模式,短连接(HTTP1.1变成keep_alive的长连接)……等特性。