HTTP 协议的主要特点;
HTTP 报文的组成部分;
HTTP 方法;
POST 和 GET 的区别;
HTTP 状态码;
什么是持久连接;
什么是管线化;
HTTP 协议的主要特点?
简单快速:每一个资源的url统一资源定位符的固定的,访问的时候只需要输入地址就够了;
灵活:http 协议头有一个数据类型,可以通过同一个请求完成不同数据的传输;
无连接:连接一次就会断开,不会保持连接;
无状态:客户端与服务端是两种身份,本次连接与下一次连接,服务器是不区别的,但从httpx协议上是不能区分客户端的身份的。
HTTP 报文的组成?
请求报文
请求行: HTTP 方法、页面地址、HTTP 协议 以及版本
请求头:一些key:value 值 告诉服务端我需要哪一些内容,以及类型
空行:区分请求头和请求体
请求体。
响应报文
状态行;
响应头;
空行,
响应体。
HTTP 方法
GET -----------> 获取资源
POST --------> 传输资源
PUT ---------> 更新资源
DELETE ------> 删除资源
HEAD -------> 获得报文首部
POST 与 GET 的区别?

GET 在浏览器回退时是无害的,而 POST 会再次提交请求;
GET 请求会被浏览器主动缓存,而 POST 不会,除非手动设置;
GET 请求参数会被完整的保留在浏览器历史纪录中,而 POST 中参数不会被保留;
GET 请求在url 中 传送的参数是有长度限制(2kb) ,POST 没有限制;
GET 请求参数通过url 传递,POST 放在 request body 中。
HTTP 状态码



持久连接
HTTP 1.1 版本支持。
HTTP 协议采用 ” 请求 - 应答 “ 模式,当使用普通模式,即非 Keep-Alive 模式时,每一个请求/应答客户和服务器都要新建一个连接,完成之后当即断开连接(HTTP协议为无连接协议)。
当使用 Keep-Alive 模式(由称为持久连接、连接重用)时, Keep-Alive 功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时, Keep-Alive 功能避免了建立或者重新建立连接。
管线化
在使用持久连接的情况下,某个连接上消息的传递类似于 中间无断开
请求1 --> 响应1 --> 请求2 --> 响应2 --> 请求3 --> 响应3
某一个连接上的消息变成了类似这样 (管线化是一次性将数据打包的,在持久连接的情况下)
请求1 --> 请求2 --> 请求3 --> 响应1 --> 响应2 --> 响应3

管线化机制通过持久连接完成,仅仅是HTTP/1.1 支持;
只有GET 和 HEAD 请求可以进行管线化,POST 则有所限制;
初次创建连接的时候不应启动管线化,因为服务不一定支持管线化。