读书笔记:《图解HTTP》——简单的HTTP协议

397 阅读3分钟

1.HTTP协议用于客户端和服务端之间的通信

2.通过请求和响应的交换达成通信

请求报文:请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。

响应报文:协议版本、状态码、状态码的原因短语、可选的响应首部字段和实体主体构成的。

3.HTTP是不保存状态的协议

HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存,不做持久化处理。 为了实现期望的保持状态功能,引入了cookie技术。管理状态。

4.请求URI定位资源

HTTP协议使用URI定位互联网上的资源。正是因为URI的特定功能,在互联网上任意位置的资源都能访问到。

5.告诉服务器意图的HTTP方法

  • GET:获取资源
  • POST:传输实体的主体
  • PUT:传输文件
  • HEAD:获得报文首部
  • DELETE:删除文件
  • OPTIONS:询问支持的方法
  • TRACE:追踪路径
  • CONNECT:要求用隧道协议连接代理

6.使用方法下达命令

向请求URI指定的资源发送请求报文时,采用称为方法的命令。

7.持久连接节省通信量

HTTP协议初始版本,每进行一次HTTP通信就要断开一次TCP连接,增加通信量的开销。 eg:发送请求访问一个包含多张图片的HTML页面资源时,也会请求该HTML页面里包含的其他资源。每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

7.1持久连接

为了解决TCP连接的问题,HTTP/1.1和一部分HTTP/1.0提出了持久连接(HTTP Persistent Connections,也称为HTTP keep-alive或HTTP)

特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。 好处:减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。 在HTTP/1.1中,所有的连接默认是持久连接。

7.2管线化

持久连接使得多数请求以管线化方式成为可能。可以并行发送多个请求,不需要一个接一个地等待响应。

8.使用Cookie的状态管理

Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端根据客户端发过来的cookie对比服务器上的记录,最后得到之前的状态信息。

  1. 请求报文(没有Cookie信息的状态);
  2. 响应报文(服务端生成Cookie信息);
  3. 请求报文(自动发送保存着的Cookie信息)。

没有Cookie信息状态下的请求

第2次以后(存有Cookie信息状态)的请求