HTTP 协议知识点
目前 HTTP 协议使用的最多的是 1.1 版本。
**HTTP 1.0 与 HTTP 1.1 的区别**
1、HTTP 1.1 支持长连接和请求流水线
1.0 只能使用短连接,每次请求完成后断开连接,新的请求需要重建新的连接。而 1.1 则支持长连接(持久连接,Persistent Connection),所以可以在一个连接中传送多个请求和响应,并且可以同时进行。
![](https://file.mculoop.com/images/2024/01/11/202401111258591.png)
2、HTTP 1.1 增加 Host 字段
由于 HTTP 1.0 不支持 Host 请求头字段,浏览器无法使用主机头名来明确表示要访问服务器上的哪个 WEB 站点,这样就无法使用 WEB 服务器在同一个 IP 地址和端口号上配置多个虚拟 WEB 站点。1.1 则解决了这个问题。
3、HTTP 1.1 增加了一些新的状态代码,如 100(Continue)、101(Switching Protocols)等
4、HTTP 1.1 新增了 RANGE:bytes,用于断点续传。
5、HTTP 1.1 还提供了与身份认证、状态管理和 Cache 缓存等机制相关的请求头和响应头。
**请求**
标准协议支持六种请求方法:GET、HEAD、PUT、DELETE、POST、OPTIONS,与 CRUD 的对应关系是:PUT-->CREATE,GET-->READ,POST-->UPDATE,DELETE-->DELETE。
GET 可以直接写 URL 地址处传递数据,因为它没有消息体,需要传输的数据参数只能通过 URL 地址传递。
POST 可以插入消息体,所以客服端向服务端传递数据时可以通过这个消息体传递。
**状态消息**
当浏览器从 web 服务器请求服务时,服务器会返回状态消息,主要有几类:
1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。
**HTTP 请求消息的结构**
包括请求行、消息头、空行、消息体。
请求行只能通过一行发送,如:`GET /index.html HTTP/1.1`
消息头一般包括浏览器信息、用户认证等附加信息
空行用于在有消息体时与消息头分开;
消息体中装有客户端向服务端传输的数据,GET 没有消息体,POST 有消息体。
**HTTP 响应消息的结构**
包括状态行、消息头、空行、消息体。
状态行包含客服端请求的处理结果。
页:
[1]