HTTP(Hyper Text Transfer Protocol)是一套计算机网络协议,约定了计算机通过网络进行通信时,WWW(World Wide Web,万维网)文件所必须遵循的规则。HTTP 请求是从HTTP客户端(如 Web浏览器、移动端)到HTTP服务器(Web服务器)的请求消息。它是一种无状态的协议,HTTP客户端和 HTTP服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,在接收到 Web 服务器返回的响应(response)后连接就被关闭了,在服务器端不保留连接的有关信息。HTTP 遵循请求(Request)/应答(Re-sponse)模型,HTTP客户端向HTTP服务器发送请求,服务器处理请求并返回适当的应 晚上10:57 8月30日周三。 作为Web 支持文档传输协议的HTTP,其版本更新十分缓慢,至今为止经历了 以下几个版本: (1)HTTP/0.9:只有GET请求,不支持传送超文本以外的任何其他数据类 型,也没有为客户端和服务器之间的通信提供任何协调机制。 (2)HTTP/1.0:支持 GET、POST、HEAD方法,是第一个HTTP标准版本,描述了完整的报文格式,并解释了如何用于客户请求和服务器响应。增加了请求和响应信息的参数协商机制,在请求和响应消息中增加了一些信息,这些信息是放入「报头」的,通过报头参数的交换达到协商的目的。 (3)HTTP/1.1:增加了报文头部,从而通过HTTP可以传输更多类型的信息, 可对各种连接复用。目前互联网使用的HTTP协议版本就是1.1。 6.2.2HTTP通信过程 在一次完整的HTTP通信过程中,HTTP客户端与HTTP服务端之间有以下7个 交互步骤: (1)建立TCP连接。 HTTP处于TCP/IP 模型的应用层,是建立在传输层的TCP协议上的。根据TCP/IP 模型的规则,只有低层协议建立之后才能进行高层次协议的连接。因此,在HTTP客户端和服务器之间首先要建立TCP连接。 (2)HTTP客户端向HTTP服务器发送请求命令。 一旦建立了TCP连接,HTTP客户端就会向HTTP服务器发送请求命令,例 如:GET/sample/hello.jsp HTTP/1.1。 (3)HTTP客户端发送请求头信息。 浏览器发送其请求命令之后,还要以头信息的形式向HTTP服务器发送一些其他信息。发送完请求头信息后,客户端发送一个空行通知服务器,请求头信息发送结束。 (4)HTTP服务器应答。 客户端向服务器发出请求后,服务器会向客户端回送应答,包括状态码和响应包 23mm f/1.9 1/40 IS0639 37044'51"N 112°43'7"E feica (5)HTTP服务器发送应答头信息。 正如客户端会随同请求发送请求头信息一样,服务器也会随同应答向客户端发送 关于响应数据的属性信息。 (6)HTTP服务器向HTTP客户端发送数据。 服务器向客户端发送头信息后,会发送一个空行来表示头信息的发送到此结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。 (7)HTTP服务端关闭TCP连接。 客户端和服务端之间不需要建立持久的连接,所以服务端返回响应后,连接被关闭。但是,如果客户端或服务器在其头信息中加入了「Connection: Keepalive」,则TCP连接在发送后保持打开状态,保持的时间是给定的超时时间,若没有给定则为默认超时时间。