HTTP 消息结构

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.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.

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/http-%e6%b6%88%e6%81%af%e7%bb%93%e6%9e%84/

(0)
AuroraAurora站点维系者
上一篇 2023年 5月 14日 下午5:18
下一篇 2023年 5月 14日 下午5:25

相关推荐

  • znew

    文章目录znew补充说明语法选项参数 znew 将.Z压缩包重新转化为gzip命令压缩的.gz压缩包 补充说明 znew命令 用于将使用compress命令压缩的“.Z”压缩包重新…

    入门教程 2024年 3月 11日
  • egrep

    文章目录egrep补充说明语法实例 egrep 在文件内查找指定的字符串 补充说明 egrep命令 用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法…

    入门教程 2023年 12月 14日
  • head

    文章目录head概要主要用途选项参数返回值例子注意 head 显示文件的开头部分。 概要 head [OPTION]… [FILE]… 主要用途 在未指定行数时默认显示前1…

    入门教程 2023年 12月 15日
  • seinfo

    文章目录seinfo补充说明语法选项实例 seinfo 查询SELinux的策略提供多少相关规则 补充说明 seinfo命令 是用来查询SELinux的策略提供多少相关规则,一个主…

    入门教程 2024年 3月 4日
  • sed

    文章目录sed补充说明sed的选项、命令、替换标记选项参数sed命令sed替换标记sed元字符集sed用法实例替换操作:s命令全面替换标记g定界符删除操作:d命令已匹配字符串标记&…

    入门教程 2024年 3月 4日
  • pigz

    文章目录pigz补充说明语法参数实例 pigz 可以用来解压缩文件,gzip的并行实现升级版 补充说明 pigz命令可以用来解压缩文件,最重要的是支持多线程并行处理,解压缩比gzi…

    入门教程 2024年 3月 1日
  • semanage

    文章目录semanage补充说明语法选项实例 semanage 默认目录的安全上下文查询与修改 补充说明 semanage命令 是用来查询与修改SELinux默认目录的安全上下文。…

    入门教程 2024年 3月 4日
  • Java 运算符

    计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符…

    入门教程 2023年 3月 4日
  • man

    文章目录man补充说明语法选项参数数字代表内容实例相关命令 man 查看Linux中的指令帮助 补充说明 man命令 是Linux下的帮助指令,通过man指令可以查看Linux中的…

    入门教程 2024年 1月 3日
  • sendmail

    文章目录sendmail补充说明语法选项 sendmail 著名电子邮件服务器 补充说明 sendmail命令 是一款著名的电子邮件传送代理程序,也就是平常说的电子邮件服务器,它基…

    入门教程 2024年 3月 4日
Translate »