什么是http
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
http发展阶段
0.9:HTTP0.9协议是最早的HTTP协议,它仅支持通过TCP连接传输文本数据,不支持任何请求头部信息,也没有状态管理机制。这个协议很快被弃用,因为它只能传输简单的文本信息,无法满足Web应用的复杂需求。
1.0:HTTP1.0协议在0.9协议的基础上进行了扩展,引入了请求头部信息和响应头部信息,支持传输二进制文件和图片等多种类型的数据,并且支持缓存和代理服务器等功能。不过,1.0协议还是存在一些问题,比如请求响应模式中服务器每次只能发送一份数据,客户端需要多次请求才能获取全部数据,这样会导致性能问题,特别是在高并发场景下。
1.1:为了解决HTTP1.0的性能问题,1999年推出了HTTP1.1协议。在1.1协议中,对于互联网最重要的速度和效率进行了优化。它引入了持久连接、管线化、分块传输编码等新特性,有效提高了数据的传输速度和网络效率。同时,1.1协议还支持虚拟主机、安全传输等功能,使得HTTP协议的应用范围更加广泛。
2.0:HTTP2.0是最新的HTTP协议版本,在性能方面有着重大的改进。HTTP2.0的前身是SPDY协议,它采用了多路复用和二进制帧格式等技术,可以在一个TCP连接上同时传输多个请求响应消息,减少了连接建立的时间和网络传输的消耗。此外,HTTP2.0还支持Header压缩、服务器推送等新特性,使得Web应用的性能和用户体验都得到了显著提升。
常用请求头
1.Accept Accept: application/json 浏览器可以接受服务器回发的类型为 application/json。
2.Accept-Encoding
3.Accept-Language
4.Connection
5.Host(发送请求时,该报头域是必需的)
6.Referer
7.User-Agent
8.Cache-Control
9.Cookie
10.Range(用于断点续传)
常用响应头
1.Cache-Control(对应请求中的Cache-Control)
2.Content-Type
3.Content-Encoding
4.Date
5.Server
6.Transfer-Encoding
7.Expires
8.Last-Modified
9.Connection
10.Etag
11.Refresh
12.Access-Control-Allow-Origin
13.Access-Control-Allow-Methods
14.Access-Control-Allow-Credentials
15.Content-Range