HTTP 消息结构

作者 : 开心源码 本文共882个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共157人阅读

HTTP是基于用户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

一个HTTP”用户端”是一个应使用程序(Web浏览器或者其余任何用户端),通过连接到服务器达到向服务器发送一个或者多个HTTP的请求的目的。

一个HTTP”服务器”同样也是一个应使用程序(通常是一个Web服务,如Apache Web服务器或者IIS服务器等),通过接收用户端的请求并向用户端发送HTTP响应数据。

HTTP用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

一旦建立连接后,数据消息就通过相似Internet邮件所用的格式[RFC5322]和多使用途Internet邮件扩展(MIME)[RFC2045]来传送。


用户端请求消息

用户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

HTTP 消息结构


服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

HTTP 消息结构


实例

下面实例是一点典型的用GET来传递数据的实例:

用户端请求:

GET /hello.txt HTTP/1.1User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3Host: www.example.comAccept-Language: en, mi

服务端响应:

HTTP/1.1 200 OKDate: Mon, 27 Jul 2009 12:28:53 GMTServer: ApacheLast-Modified: Wed, 22 Jul 2009 19:15:56 GMTETag: "34aa387-d-1568eb00"Accept-Ranges: bytesContent-Length: 51Vary: Accept-EncodingContent-Type: text/plain

输出结果:

Hello World! My payload includes a trailing CRLF.
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » HTTP 消息结构

发表回复