0%

图解HTTP:简单的HTTP协议

应用HTTP协议时,必定时一端担任客户端角色,一端是担任服务器端角色。请求必定由客户端发出,而服务器端回复响应。由此达成通信。

HTTP是无状态协议

HTTP本质是无状态的。为了更快地处理大量事务,确保协议的可伸缩性。HTTP协议对于发送过的请求或响应都不做持久化处理。有新的请求发送时,就会有新的响应产生。

使用Cookies可以创建有状态的会话。把Cookies添加到头部中,创建一个会话让每次请求都能共享相同的上下文信息,达成相同的状态。

实际的数据状态可能存在服务器中,但通过 Cookie 将一个 id 信息传到客户端,并由客户端持久化,客户端通过 id 就可获得数据的状态。

使用方法告知意图

通过HTTP请求方法,简单告知请求的意图。

  • GET:获取资源。
  • POST:传输实体的主体。通过body传输数据。
  • PUT:传输文件。但该方法不存在验证机制,任何人都可以上传文件,存在安全性问题。
  • HEAD:获取报文首部。用于确认URI的有效性以及资源更新的日期时间等。
  • DELETE:删除文件。与PUT对应,但也没有验证机制,存在安全性问题。
  • OPTIONS:查询服务器支持的方法。
  • TRACE:追踪路径。容易引发跨站攻击,通常不会用到。
  • CONNECT:要求用隧道协议连接代理。要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要是用SSL和TSL协议把通信内容加密后经网络隧道传输。

持久连接节省通信量

大量的 TCP 连接建立和断开,都会加载通信量的开销。为此,推出了持久连接(HTTP Persistent Connections,也称为 HTTP Keep-alive 或 HTTP connection reuse)方法。

只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

持久化使得多数请求以管线化(pipelining)方式发送成为可能。这样就能够做到同时并行发送多个请求。

欢迎关注我的其它发布渠道