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

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

HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。

HTTP是不保存状态的协议

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

请求URI定位资源

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

告知服务器意图的HTTP方法

  • HTTP/1.1中可使用的方法
    • GET:获取资源
    • POST:传输实体主体
    • PUT:传输文件
    • HEAD:获得报文首部
    • DELETE:删除文件
    • OPTIONS:询问支持的方法
    • TRACE:追踪路径
    • CONNECT:要求用隧道协议连接代理
  • 使用方法下达命令
    HTTP/1.0和HTTP/1.1支持的方法(LINK和UNLINK已被HTTP/1.1废弃,不再支持)
    第2章 简单的HTTP协议 - 图1

持久连接节省通信量

前提:HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。 会产生的问题:使用浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面资源的同时,也会请求该HTML页面里包含的其他资源。因此,每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

  • 持久连接
    在HTTP/1.1中,所有的连接默认都是持久连接,但在HTTP/1.0内并未标准化。虽然有一部分服务器通过非标准的手段实现了持久连接,但服务器端不一定能够支持持久连接。毫无疑问,除了服务器端,客户端也需要支持持久连接。
    第2章 简单的HTTP协议 - 图2
  • 管线化
    持久连接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。
    第2章 简单的HTTP协议 - 图3
    比如,当请求一个包含10张图片的HTML Web页面,与挨个连接相比,用持久连接可以让请求更快结束。而管线化技术则比持久连接还要快。请求数越多,时间差就越明显。

使用Cookie的状态管理

这一部分很熟悉,就不记录了