HTTP 规定,请求由客户端发出。 客户端发出请求报文,服务器发出响应报文,如下图: ![]()
HTTP 请求报文中,使用不同的方法(Method)可以用以告知服务器意图。例如 GET 是获取, PUT 是上传,DELETE 是删除,OPTIONS 是询问支持的方法, TRACE 是追踪路径等。具体可以看下图中的表格: ![]()
HTTP 协议是不保存状态的协议,如下图所示: ![]()
HTTP 协议是不保存状态的协议,因此引入了 Cookie 技术。服务器端可以往客户端浏览器写 Cookie,客户端会自动在每次请求时都往服务器发这个 Cookie。 最初的 HTTP 协议是每进行一次 HTTP 通信就要断开一次 TCP 连接。由于 TCP 协议的(三次握手等)保证可靠性的机制,很多时间浪费在连接和断开上了。 这个问题的解决方案是持久连接(HTTP Persistent Connections,也称为 HTTP keep-alive 或 HTTP connecttion reuse)的方法。其特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。HTTP/1.1 中,所有的连接默认都是持久连接,但在 HTTP/1.0 内未标准化。现在的服务器端基本都是 HTTP/1.1 了。除了服务器端,客户端也需要支持持久连接。 持久连接还使得管线化(pipelining)方式发送成为可能。从前发送一个请求需等待并收到响应,才能发送下一个请求。管线化出现后,不用等待响应便可发送下一个请求。 还是上图说明持久连接和管线化,如下: ![]() ![]() ![]() ![]()
|
|