【问题标题】:What is the difference between a request payload and request body?请求有效负载和请求正文之间有什么区别?
【发布时间】:2014-03-30 23:03:32
【问题描述】:

我正在学习 HTTP。我在我的 POST 请求中附上了 XML 或 JSON 格式的请求负载。我想知道的是请求有效负载和请求正文是否意味着相同的事情?

【问题讨论】:

  • 请点击对您最有帮助的答案左侧的复选标记来关闭您的问题
  • 最有帮助的答案不一定完全满足问题本身。

标签: http request payload


【解决方案1】:

定义:有效负载:数据包或文件中的“实际数据”减去所有附加的用于传输的标头并减去所有描述性元数据。在网络数据包中,标头附加到有效负载以进行传输,然后在目的地丢弃。

编辑:在 Http 协议中,http 数据包具有 http 标头和 http 有效负载。因此,http 数据包的有效负载部分可能有也可能没有正文,具体取决于请求的类型(例如 POST 与 GET)。所以payload和body不是一回事。

【讨论】:

  • @Dejel : Payload 不包括标头和元数据信息
  • 请问这个定义的来源?
  • @Flawyte en.wikipedia.org/wiki/Payload_(computing) 在计算和电信中,有效负载是传输数据的一部分,即实际预期的消息。有效负载不包括仅为了促进有效负载交付而发送的任何标头或元数据。[
  • 投反对票,因为这没有明确回答问题 - 有效载荷和正文是否相同
  • @tepez :在 Http 协议中,http 数据包具有 http 标头和 http 有效负载。因此,http 数据包的有效负载部分可能有也可能没有正文,具体取决于请求的类型(例如 POST 与 GET) .所以payload和body不是一回事。
【解决方案2】:

有效负载是主体的“包装器”

有效载荷是一个人携带的东西。报童的有效负载是一堆报纸,而 HTTP POST 请求的有效负载是“正文”中的任何内容。

【讨论】:

  • 我将这解释为好像 request payloadrequest body 人的意思是一样的,你是这个意思吗? payloadbody 可以互换使用吗?
  • 没有。有效载荷包含正文
  • 那么什么构成了payload呢?标题+正文?还是更多?在这个 HTTP 请求中:GET /abc \n Content-Length:3 \n\n 123 — 嗯不是负载 123 == 正文?
  • 有效负载是您发送的所有内容。包括标题。不知道 123 来自哪里。通常 GET 请求不包含正文
  • 以一封信为例:纸上写的文字是PAYLOAD,而戳记是标题。 Headers 需要投递信件,但里面不包含消息(payload)。
【解决方案3】:

RFC 7230 的HTTP client/server messaging超文本传输​​协议 (HTTP/1.1):消息语法和路由 区分 有效负载正文消息正文(用于传输的编码有效负载正文),以及表示元数据资源元数据之间的区别(有关资源的信息,并非特定于所提供的表示) :

大多数 HTTP 通信都包含一个检索请求 (GET),用于表示由 URI 标识的某些资源。在最简单的情况下,这可以通过用户代理 (UA) 和源服务器 (O) 之间的单个双向连接 (===) 来实现。

     request   >
UA ======================================= O
                            <   response

客户端以请求消息的形式向服务器发送 HTTP 请求,请求行开头包含方法、URI 和协议版本(第 3.1.1 节),后跟包含请求修饰符的标头字段、客户端信息和表示元数据(第 3.2 节),一个空行指示标头部分的结束,最后是包含有效负载正文的消息正文(如果有,第 3.3 节)。

服务器通过发送一个或多个 HTTP 响应消息来响应客户端的请求,每个响应消息都以包含协议版本、成功或错误代码和文本原因短语(第 3.1.2 节)的状态行开头,可能跟在后面由包含服务器信息、资源元数据和表示元数据(第 3.2 节)的标头字段,指示标头部分结束的空行,最后是 包含有效负载正文的消息正文(如果有,第 3.3 节)。

HTTP message format 然后给出了请求消息和响应消息的通用结构:

Start line<CR><LF>
Header fields<CR><LF>
<CR><LF>
Message body (optional)

其中 是回车符, 是换行符。

RFC 7231 的abstract超文本传输​​协议 (HTTP/1.1):语义和内容 给出了有效负载的组件:

超文本传输​​协议 (HTTP) 是用于分布式、协作式超文本信息系统的无状态应用程序级协议。本文档定义了 HTTP/1.1 消息的语义,由请求方法、请求标头字段、响应状态代码和响应标头字段以及消息的有效负载(元数据和正文内容)表示,以及内容协商机制。

因此我们可以得出结论,消息中包含的有效负载由以下部分组成:

  • 有效负载正文(表示数据)传输编码为消息正文;
  • 有效载荷元数据(表示元数据,对于响应消息,资源元数据)在消息头字段中。

【讨论】:

    【解决方案4】:

    Header 标识发送数据包的来源和目的地,而实际数据,即 Body 被称为 Payload

    【讨论】:

    • 那么有什么区别呢?
    • 您还在寻找答案吗?
    【解决方案5】:

    HTTP 消息的起始行和 HTTP 标头统称为请求的标头,而其负载称为正文

    所以是的,它们是一样的。

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages得到这个

    【讨论】:

      【解决方案6】:

      HTTP 消息的负载称为正文。 link1

      HTTP 消息有效负载正文是在应用传输编码之前在 HTTP 消息正文(如果有)中发送的数据的信息(“有效负载”)部分。 如果不使用传输编码,payload body和message body是一回事!link2

      所以基本上 HTTP 消息正文和 HTTP 消息有效负载正文之间的唯一区别是编码(但仅当存在时)。所以概括术语请求有效负载 = 请求正文。

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 2016-05-22
        • 1970-01-01
        • 2010-11-27
        相关资源
        最近更新 更多