HTTP消息结构
2018-10-11 本文已影响0人
Jack_6a46
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
一个 HTTP客户端 是一个应用程序(比如web浏览器或者其他任何客户端),通过连接到服务器达到向服务器发送一个或多个 HTTP请求 的目的。
一个 HTTP服务器 同样也是一个应用程序(通常是一个Web服务,比如Apache Web 服务器 或者 IISf服务器),通过接收客户端的请求并向客户端发送 HTTP响应数据。
Uniform Resource Locator, URL
HTTP使用统一资源定位符来传输数据和建立连接。
一旦建立连接后,数据信息就通过类似Internet邮件所使用的格式 [RFC5322] 和多用途Internet邮件 扩展 [RFC2045] 来传送。
客户端请求信息
客户端发送一个 HTTP请求 到服务端的请求信息格式包括以下四个部分:
请求行 request line
请求头部 header
空行
请求数据
image.png
服务器相响应消息
HTTP响应也由四个部分组成,分别是
状态行
消息报头
空行
响应正文
image.png
实例:
客户端请求:
GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi
服务端响应:
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
输出结果:
Hello World! My payload includes a trailing CRLF.