HTTP协议特性
HTTP是不保存状态的协议 HTTP是一种无状态协议,也就是说HTTP协议本身并不保留之前一切的请求或响应报文的信息,这么做的好处是可以更快的处理大量事物,确保协议的可伸缩性。 随着Web的不断发展,人们期望HTTP具有保存状态的功能,所以引入了Cookie技术 Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。 Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,来通知客户端保存Cookie。 当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去 服务端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的请求,通过对比服务器上的记录,得到之前的状态信息 请求报文 (没有Cookie): GET /READER/ HTTO1.1 Host: hackr.jp //首部字段没有Cookie的相关信息 响应报文 (服务器端生成Cookie): HTTP/1.1 200 OK DATE: Sat, 24 Feb 2018 19:46:20 GMT Server: Apache <Set-Cookie: sid=1342077140226724; path=/; expires=Sat, 24-Feb-18 07:12:20 GMT> Content-Type: text/plain; charset=UTF-8 请求报文 (客户端自动在请求报文中加入Cookie): Get /image/ HTTP/1.1 Host: hackr.jp Cookie: sid=1342077140226724 持久连接 HTTP初始版本中(HTTP 1.0版本),每进行一次HTTP通信就要断开一次TCP连接(也就是“短连接“), 为了解决这个问题HTTP1.1加入了 持久连接 (”长连接“) 特性。 特点:只要有一端没有明确提出断开连接,则保持TCP连接状态。 好处:减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负担,同时也节省了通讯的时间,使得Web界面的显示速度提高了不少。 管线化 持久连接使得...