freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

HTTP消息
无名草 2021-06-22 19:59:43 257554

HTTP消息

HTTP消息是服务器和客户端之间交换数据的方式

有两种类型的消息︰ 请求(requests)--由客户端发送用来触发一个服务器上的动作;

响应(responses)--来自服务器的应答。

HTTP请求响应具有相似结构,由以下部分组成

1.,一行始行用于描述要执行的请求,或者是对应的状态,成功或失败。这个起始行总是单行的。

2.一个可选的HTTP头集合指明请求或描述消息正文。

3.一个空行指示所有关于请求的元数据已经发送完毕。

4.一个可选的包含请求相关数据的正文 (比如HTML表单内容), 或者响应相关的文档。 正文的大小有起始行的HTTP头来指定。

起始行HTTP消息中的HTTP统称请求头有效负载称为消息正文.

1624276378_60d07d9a0c126677fefd1.png!small?1624276377446

HTTP请求

HTTP请求是由客户端发出的消息,用来使服务器执行动作。

起始行

1.一个HTTP 方法,一个动词 (像 GET,PSOT或PUT) 或者一个名词 (像HEAD或者OPTIONS) , 描述要执行的动作。

2.请求目标 (request target),通常是一个 URL,或者是协议、端口和域名的绝对路径,通常以请求的环境为特征。请求的格式因不同的 HTTP 方法而异。

3.HTTP 版本 (HTTP version),定义了剩余报文的结构,作为对期望的响应版本的指示符。

Headers

来自请求的 HTTP headers 遵循和 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 的值。

整个 header(包括值)由一行组成,这一行可以相当长。

有许多请求头可用,它们可以分为几组:

General headers,例如 Via,适用于整个报文。

Request headers,例如 User-Agent,Accept-Type,通过进一步的定义(例如 Accept-Language),或者给定上下文(例如 Referer),或者进行有条件的限制 (例如 If-None) 来修改请求。

Entity headers,例如 Content-Length,适用于请求的 body。显然,如果请求中没有任何 body,则不会发送这样的头文件。

1624362359_60d1cd77db3895bbc5123.png!small?1624362360094

body

请求的最后一部分是它的 body。不是所有的请求都有一个 body:例如获取资源的请求,GET,HEAD,DELETE 和 OPTIONS,通常它们不需要 body。 有些请求将数据发送到服务器以便更新数据:常见的的情况是 POST 请求(包含 HTML 表单数据)。

Body 大致可分为两类:

Single-resource bodies,由一个单文件组成。该类型 body 由两个 header 定义: Content-Type和 Content-Length.

Multiple-resource bodies,由多部分 body 组成,每一部分包含不同的信息位。通常是和  HTML Forms 连系在一起。

HTTP响应

状态行

HTTP 响应的起始行被称作 状态行 (status line),包含以下信息:

1.协议版本,通常为 HTTP/1.1。

2.状态码 (status code),表明请求是成功或失败。常见的状态码是 200404,或 302

3.状态文本 (status text)。一个简短的,纯粹的信息,通过状态码的文本描述,帮助人们理解该 HTTP 消息。

一个典型的状态行看起来像这样:HTTP/1.1 404 Not Found。

Headers

响应的  HTTP headers 遵循和任何其它 header 相同的结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 类型的值。 整个 header(包括其值)表现为单行形式。

有许多响应头可用,这些响应头可以分为几组:

General headers,例如 Via,适用于整个报文。

Response headers,例如 Vary和 Accept-Ranges,提供其它不符合状态行的关于服务器的信息。

Entity headers,例如 Content-Length,适用于请求的 body。显然,如果请求中没有任何 body,则不会发送这样的头文件。

1624362998_60d1cff607b3e8ea2a098.png!small?1624362998240

Body

响应的最后一部分是 body。不是所有的响应都有 body:具有状态码 (如 201或 204) 的响应,通常不会有 body。

Body 大致可分为三类:

Single-resource bodies,由已知长度的单个文件组成。该类型 body 由两个 header 定义:Content-Type和 Content-Length。

Single-resource bodies,由未知长度的单个文件组成,通过将 Transfer-Encoding设置为 chunked 来使用 chunks 编码。

Multiple-resource bodies,由多部分 body 组成,每部分包含不同的信息段。但这是比较少见的。

# web安全 # HTTP
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 无名草 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
HTTP解析
无名草 LV.6
这家伙太懒了,还未填写个人描述!
  • 50 文章数
  • 86 关注者
文件上传解析漏洞(三)
2022-03-27
服务器端请求伪造--SSRF
2022-03-24
逻辑漏洞之支付漏洞
2022-03-19
文章目录