HTTP协议的历史版本
HTTP/0.9
该版本只有一个GET方法,没有Header,服务器发送完毕即关闭TCP连接。
HTTP/1.0
增加了很多命令,增加status code状态码和Header,支持多种字符串,增加权限验证功能,增加缓存功能等。
HTTP/1.1
增加其它命令和host,支持长连接,支持pipeline等。
HTTP/2.0
以二进制传输,不需要按顺序返回请求,可以压缩头部信息,提供推送效率,支持并行处理。该版本功能比较强大,比如服务器推送功能,服务器可以主动推送内容在浏览器上,这就允许你在浏览器尚未发送请求前预先推送CSS等其它内容,加快载入速度。
HTTP执行流程
在浏览器上输入一个URL回车,这时候浏览器会检查该URL是否需要跳转,检查应用缓存,在这一部分中首先是找到该URL对应的IP地址,这时候还没开始离和服务器建立连接还有一段时间。浏览器会现在本地查找DNS记录,DNS记录了URL和IP的映射,如果在本地找不到那就去DNS服务器找,直到找到对应的服务器IP地址。
接着这一步则是TCP三次握手,主要是保证可靠的连接,客户端会先询问服务器是否可以建立连接,若可以则服务器返回数据包回应客户端,客户端再发送数据包给服务器表示开始建立连接。
客户端和服务器握手完毕,建立连接,客户端开始传输数据给服务端,由于HTTP是基于TCP/IP协议,所以其传输是可靠的。保证超时重传,如果没有收到接收方的回复,则认为数据丢失进行重传。
数据传输结束,还有四次挥手。
以上是对本系列教程的一个简要准备,主要是对HTTP协议有一个逻辑上的印象,更多下一节还会详细描述,另外HTTP协议只是网络模型中的应用层协议,如果你想要了解更多关于网络技术的内容,你可以在srcmini上找到另一个计算机网格的系列教程。
评论前必须登录!
注册