嗨客网搜索
HTTP协议特点

HTTP协议特点

HTTP 协议的特点可以概括为:客户端服务端模式、无连接、无状态、简单快速和灵活等。

HTTP协议特点详解

客户端服务端模式

网络世界中的两台计算机,就像现实世界中的两个陌生人一样,要想搭上关系,首先得先说上话。在网络世界中,先开口的,被称为客户端。而做出回应的,被称为服务端。也就是说,在一条通信线路上,客户端用于请求资源,服务端用于提供资源。

事实上,HTTP 协议还规定了:

  • 在一条通信线路上必定有一端是客户端,另一端是服务器端。
  • 请求从客户端发出,服务器端响应请求并返回。也就是说,请求肯定是先从客户端开始建立通信的,服务器端在没有接收请求之前不会发送响应。

无连接

对 HTTP 有点了解的童鞋应该都知道,HTTP 协议是无连接的。也就是说,每进行一次 HTTP 通信,都要断开一次 TCP 连接。这是因为 HTTP 诞生之初,主要是为了应付容易很小的文本传输,所以即使这样也没多大的问题。

可随着 HTTP 的普及,文档中包含大量图片的情况多了起来,每次请求完都要断开 TCP 连接,无疑增加通信量的开销。为了解决 TCP 的连接问题,HTTP1.1 提出了持久连接的方法。所谓的持久连接,就是任意一端只要没有明确提出断开连接,则保持 TCP 连接状态。

这样一来,就减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务端的负载,Web 页面的显示速度也就相应的提高了。更重要的是,持久连接使得管线化成为可能。从前发送请求后,需要收到响应了才能发送下一个请求。管线化技术出现后,不用等待响应也可以直接发送下一个请求了。

这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应。管线化的效果是立竿见影的。持久连接可以让请求更快结束,而管线化技术则比持久连接还要快,而且请求数越多,时间差就越明显。

无状态

除了无连接,HTTP 的另一个特点是无状态。也就是说,HTTP 协议无法根据之前的状态进行本次的请求处理。不可否认,不保存状态是有他的优点的,可以减少服务器的 CPU 及内存资源的消耗。但问题也是显而易见。

假设系统需要登录后才能访问,由于无状态的特点,每次跳转页面都需要重新登录,这是难以想象的。为了解决无状态的问题,引入了 Cookie 技术。Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

首次访问服务端时,响应报文内会返回一个叫 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

服务端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪个客户端发送来的请求,然后对比服务器上的记录,最后得到之前的状态信息。

HTTP协议特点总结

HTTP 协议的主要特点可概括如下:

  1. 支持客户/服务器模式。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type(Content-Type 是 HTTP 包中用来表示内容类型的标识)加以标记。
  4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  5. 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
嗨客网顶部