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地址。
文章图片
【HTTP协议的版本历史和执行流程简述 – 深入浅出HTTP原理】接着这一步则是TCP三次握手,主要是保证可靠的连接,客户端会先询问服务器是否可以建立连接,若可以则服务器返回数据包回应客户端,客户端再发送数据包给服务器表示开始建立连接。
客户端和服务器握手完毕,建立连接,客户端开始传输数据给服务端,由于HTTP是基于TCP/IP协议,所以其传输是可靠的。保证超时重传,如果没有收到接收方的回复,则认为数据丢失进行重传。
数据传输结束,还有四次挥手。
文章图片
以上是对本系列教程的一个简要准备,主要是对HTTP协议有一个逻辑上的印象,更多下一节还会详细描述,另外HTTP协议只是网络模型中的应用层协议,如果你想要了解更多关于网络技术的内容,你可以在srcmini上找到另一个计算机网格的系列教程。
推荐阅读
- 什么是OSI七层模型和网络五层模型(有什么功能或作用? – 深入浅出HTTP原理)
- HTTP协议学习综合概述 – 深入浅出HTTP原理
- PHP | gmp_add()添加大数用法介绍
- Sprinklr实习面试经验
- Python中的桌面通知程序开发示例
- PHP错误类型介绍用法示例
- PHP | checkdnsrr()函数用法介绍
- 如何在Python中读取CSV文件(详细介绍)
- 如何使用JavaScript清除所有cookie()