《图解HTTP》--chap02
第二章:简单的HTTP协议
一、HTTP是不保存状态的协议
- 在HTTP这个级别,不对发送过的请求和响应持久化
- 为了实现期望的保持状态的功能(跳转到购物的其他页面,也希望能够保持登录状态),引入了Cookie技术
二、告知服务器意图的HTTP方法
① GET:获取资源
- 用来获取请求访问已被URI识别的资源
- GET方法要求服务器将URL定位的资源放在相应的报文的数据部分,回送给客户端。
- 使用Get方法时将请求的参数和对应值附在URL后面,利用一个问号(?)
② POST:传输实体主体
- POST方法要求被请求服务器接收附在请求后面的数据,常用于提交表单。
③ HEAD:获得报文首部
- 不返回报文主题内容
- 用于确认URI的有效性以及资源更新的日期内容
④ PUT:传输文件
- 主要用于传输文件,不自带验证机制,任何人都可以传输文件,不经常使用
⑤ DELETE:删除文件
- 按照指定的URI删除文件
- 与PUT方法一样,不带验证机制,不推荐使用
⑥ OPTIONS:询问支持的方法
- 查询针对请求的URI指定的资源支持的方法
⑦ TRACE:追踪路径
- 用来确认连接的过程中发生的一系列操作
- 不常用,会引发XST攻击(跨站追踪)
⑧ CONNCT:要求用隧道协议连接代理
- 在与代理服务器进行通信时,建立隧道,用隧道协议进行TCP通信。
- 主要使用SSL(安全套接层)和TLS(传输层安全)协议对通信内容进行加密
HTTP/1.0与HTTP/1.1支持的方法
三、HTTP的持久连接、管线化
1. 持久连接:
- 只要一方没有明确的提出断开连接,则保持TCP连接状态
- 减少了TCP连接的重复建立以及断开造成的额外开销
2. 管线化
- 不用等待响应就可以直接发送下一个请求
- 可以直接同时发送多个请求
理解背景:
- 在HTTP协议的初始版本中,每进行一次通信就会断开一次TCP连接
- 以前是容量很小的文本传输
- 现在使用浏览器浏览一个包含许多张图片的HTML页面时,不仅会发送请求访问的HTML页面资源,也对请求HTML页面包含的其他资源(如:图片)。
- 这样,就会造成无谓的TCP的断开、连接。
四、使用Cookie进行状态管理
背景:
- HTTP是无状态协议
- 不对之前发生过的请求和响应状态进行管理。:比如在需要登录认证的购物页面,不使用Cookie,则每次跳转到新页面就会进行登录请求。
- 优点:减少服务器的CUP以及内存的消耗
- Cookie技术在请求和响应的报文中写入Cookie的首部字段信息来控制客户端的状态
- Cookie会根据服务器端的报文中的Set-Cookie的首部字段信息,通知客户端进行保存Cookie。
- 下次客户端再向服务器发送请求时,会自动加上Cookie值。