《图解HTTP》--chap02

第二章:简单的HTTP协议

一、HTTP是不保存状态的协议

  1. 在HTTP这个级别,不对发送过的请求和响应持久化
  2. 为了实现期望的保持状态的功能(跳转到购物的其他页面,也希望能够保持登录状态),引入了Cookie技术

二、告知服务器意图的HTTP方法

① GET:获取资源

  1. 用来获取请求访问已被URI识别的资源
  2. GET方法要求服务器将URL定位的资源放在相应的报文的数据部分,回送给客户端。
  3. 使用Get方法时将请求的参数和对应值附在URL后面,利用一个问号(?)

② POST:传输实体主体

  1. POST方法要求被请求服务器接收附在请求后面的数据,常用于提交表单。

③ HEAD:获得报文首部

  1. 不返回报文主题内容
  2. 用于确认URI的有效性以及资源更新的日期内容

④ PUT:传输文件

  1. 主要用于传输文件,不自带验证机制,任何人都可以传输文件,不经常使用

⑤ DELETE:删除文件

  1. 按照指定的URI删除文件
  2. 与PUT方法一样,不带验证机制,不推荐使用

⑥ OPTIONS:询问支持的方法

  1. 查询针对请求的URI指定的资源支持的方法

⑦ TRACE:追踪路径

  1. 用来确认连接的过程中发生的一系列操作
  2. 不常用,会引发XST攻击(跨站追踪)

⑧ CONNCT:要求用隧道协议连接代理

  1. 在与代理服务器进行通信时,建立隧道,用隧道协议进行TCP通信。
  2. 主要使用SSL(安全套接层)和TLS(传输层安全)协议对通信内容进行加密

HTTP/1.0与HTTP/1.1支持的方法

《图解HTTP》--chap02


三、HTTP的持久连接、管线化

1. 持久连接:

  • 只要一方没有明确的提出断开连接,则保持TCP连接状态
  • 减少了TCP连接的重复建立以及断开造成的额外开销

2. 管线化

  • 不用等待响应就可以直接发送下一个请求
  • 可以直接同时发送多个请求

理解背景:

  1. 在HTTP协议的初始版本中,每进行一次通信就会断开一次TCP连接
  2. 以前是容量很小的文本传输
  3. 现在使用浏览器浏览一个包含许多张图片的HTML页面时,不仅会发送请求访问的HTML页面资源,也对请求HTML页面包含的其他资源(如:图片)。
  4. 这样,就会造成无谓的TCP的断开、连接。

四、使用Cookie进行状态管理

背景:

  1. HTTP是无状态协议
  2. 不对之前发生过的请求和响应状态进行管理。:比如在需要登录认证的购物页面,不使用Cookie,则每次跳转到新页面就会进行登录请求。
  3. 优点:减少服务器的CUP以及内存的消耗
  1. Cookie技术在请求和响应的报文中写入Cookie的首部字段信息来控制客户端的状态
  2. Cookie会根据服务器端的报文中的Set-Cookie的首部字段信息,通知客户端进行保存Cookie。
  3. 下次客户端再向服务器发送请求时,会自动加上Cookie值。