Sat*_*yam 11
定义:payload:数据包或文件中的"实际数据"减去为传输而附加的所有标头,并减去所有描述性元数据.在网络数据包中,标头被附加到有效载荷以进行传输,然后在其目的地处丢弃.
编辑:在Http协议中,http数据包具有http头和http有效载荷.根据请求的类型(例如POST与GET),http数据包的有效载荷部分可能有也可能没有主体.所以有效载荷和身体不是一回事.
\n\n我想知道的是请求负载和请求正文是否表示相同的意思?
\n
不,它们具有不同的含义:内容(也称为有效负载)是表示(语义概念)的一部分,而正文是消息(语法概念)的一部分。表示作为包含完整表示的单个消息或包含部分表示的多个消息来传输。表示包括元数据和数据。消息包括起始行、包含表示元数据的字段行以及包含按原样或传输编码的表示数据(内容)的主体。
\n +--------+ +----+\ncomplete representation: |metadata|, |data|\n +--------+ +----+\n \\ \\\n +--------+ +-------+\npartial representation 1: |metadata|, |content|\npartial representation 2: |metadata|, |content|\n\xe2\x80\xa6 | | | |\npartial representation N: |metadata|, |content|\n +--------+ +-------+\n / /\n +-----------+ +----+\nmessage 1: start line, |field lines|, |body|\nmessage 2: start line, |field lines|, |body|\n\xe2\x80\xa6 | | | |\nmessage N: start line, |field lines|, |body|\n +-----------+ +----+\n
Run Code Online (Sandbox Code Playgroud)\nRFC 9110:HTTP 语义定义了术语表示:
\n\n\n3.2. 陈述
\n“表示”是旨在以可以通过协议轻松传达的格式反映给定资源的过去、当前或期望状态的信息。表示由一组表示元数据和潜在无限的表示数据流组成(第 8 节)。
\n
请注意,该定义与 HTTP 版本无关,因为它与语义有关。
\nRFC 9112:HTTP/1.1定义了术语“消息”:
\n\n\n2.1. 消息格式
\nHTTP/1.1 消息由一个起始行、后跟一个 CRLF 和一系列八位位组组成,其格式类似于 Internet 消息格式 [RFC5322]:零个或多个标头字段行(统称为“标头”或“标头部分”)、指示标头部分结尾的空行以及可选的消息正文。
\nRun Code Online (Sandbox Code Playgroud)\nHTTP-message = start-line CRLF\n *( field-line CRLF )\n CRLF\n [ message-body ]\n
请注意,该定义取决于 HTTP 的版本,因为它与语法有关。
\nRFC 9110:HTTP 语义定义了术语“内容”:
\n\n\n6.4. 内容
\nHTTP 消息通常将完整或部分表示形式传输为消息“内容”:在标头部分之后发送的八位字节流,如消息帧所描述。
\n这种内容的抽象定义反映了从消息框架中提取的数据。例如,HTTP/1.1 消息正文([HTTP/1.1] 的第 6 节)可能由使用分块传输编码编码的数据流组成 - 一系列数据块、一个零长度块和尾部部分-- 而同一消息的内容仅包括传输编码解码后的数据流;它不包括块长度、分块帧语法,也不包括尾部字段(第 6.5 节)。
\n注意:某些字段名称带有“Content-”前缀。这是一个非正式的会议;虽然其中一些字段引用消息的内容(如上面所定义),但其他字段的范围仅限于所选表示(第 3.2 节)。请参阅各个字段的定义以消除歧义。
\n
RFC 9110:HTTP 语义用术语“内容”替代了之前 RFC 中使用的有效负载:
\n\n\nB.3. RFC 7231 的变更
\n[\xe2\x80\xa6]
\n术语“有效负载”和“有效负载主体”已替换为“内容”,以更好地与其在其他地方的用法(例如,在字段名称中)保持一致,并避免与 HTTP/2 和 HTTP/3 中的帧有效负载混淆。(第 6.4 节)
\n