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

相关推荐

  • script

    文章目录script补充说明语法选项参数实例 script 记录终端会话的所有操作 补充说明 script 用于在终端会话中,记录用户的所有操作和命令的输出信息。简而言之,记录终端…

    入门教程 2024年 3月 4日
  • Java 变量类型

    在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下: type identifier [ = value][, identifier [= value] …]…

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

    文章目录unzip补充说明语法选项参数实例 unzip 用于解压缩由zip命令压缩的压缩包 补充说明 unzip命令 用于解压缩由zip命令压缩的“.zip”压缩包。 语法 unz…

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

    文章目录chfn补充说明语法选项参数实例 chfn 用来改变finger命令显示的信息 补充说明 chfn命令 用来改变finger命令显示的信息。这些信息都存放在/etc目录里的…

    入门教程 2023年 12月 7日
  • compress

    文章目录compress补充说明语法选项参数实例 compress 使用Lempress-Ziv编码压缩数据文件 补充说明 compress命令 使用“Lempress-Ziv”编…

    入门教程 2023年 12月 7日
  • rcp

    文章目录rcp补充说明语法选项参数实例 rcp 使在两台Linux主机之间的文件复制操作更简单 补充说明 rcp命令 使在两台Linux主机之间的文件复制操作更简单。通过适当的配置…

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

    文章目录ack安装参数特点实例SearchingSearch FileFile presentationFile findingFile Inclusion/Exclusion参考…

    入门教程 2023年 12月 6日
  • Pandas JSON

    JSON(JavaScript Object Notation,JavaScript 对象表示法),是存储和交换文本信息的语法,类似 XML。 JSON 比 XML 更小、更快,更…

    2023年 5月 16日
  • unprotoize

    文章目录unprotoize补充说明语法选项参数 unprotoize 删除C语言源代码文件中的函数原型 补充说明 unprotoize命令 属于gcc套件,用于删除C语言源代码文…

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

    文章目录ncftp补充说明语法选项参数安装实例 ncftp 是增强的的FTP工具 补充说明 ncftp命令 是增强的的ftp工具,比传统的FTP指令更加强大。FTP让用户得以下载存…

    入门教程 2024年 1月 10日
Translate »