阡陌 发表于 2024-1-24 12:41:21

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]
查看完整版本: HTTP 协议知识点