HTTP 请求,正文 vs 参数 vs 标头 vs 数据

Posted

技术标签:

【中文标题】HTTP 请求,正文 vs 参数 vs 标头 vs 数据【英文标题】:HTTP Requests, body vs param vs headers vs data 【发布时间】:2018-12-28 00:04:15 【问题描述】:

我是 HTTP 请求(GET、POST、PUT 等)的新手,在理解这些过程的“结构”时遇到了一些问题。

正文和数据究竟有什么区别?它们是一样的吗?还是 headers 和 param 是一样的?进行身份验证时,用户名和密码参数或标头是否因 API 而异?任何帮助是极大的赞赏。您是否推荐了任何教程或阅读资料以更好地了解如何处理 HTTP 请求?

谢谢!

【问题讨论】:

标头通常是关于脚本/服务器/引用/指定等的信息。IE 服务器:Apache 2.4 - 操作系统:CentOs 时间、日期、元数据等 | params 是标题的一部分,称为 Form Data -- 换句话说,您将发送的实际“字段”。 IE 用户名和密码。看看我在说什么.. 在 Chrome 中打开一个 inspect 窗口并访问一个选择了 Network 选项卡的站点。现在查看“标题” 我建议您阅读RFC 2616,了解 HTTP (1.1) 是什么、它的各种组件是什么以及它们如何工作的正式规范。 【参考方案1】: data 不是 HTTP 特定的术语。数据可以是任何东西。 “参数”也不是 HTTP 特定术语。许多 Web 框架可能会考虑参数化 url 中 ? 后面的所有内容,但这并不是绝对的事实。 用户名和密码有时出现在请求正文中,有时出现在标头中。在 Web 应用程序中,它们通常位于请求正文中,但某些类型的身份验证系统将它们放在 Authorization 标头中。

【讨论】:

【参考方案2】:

要全面正确理解这些问题,Remy Lebeau 推荐的RFC2616 值得一读。

正文和数据到底有什么区别?

如果您正在阅读一些博客,则正文(HTTP 正文)用于传输数据(可能是 JSON 格式)。 body 携带数据,换句话说,你从 body 获取数据。

它们是一样的吗?

所以它们根本不一样。

或者标题和参数是一样的吗?

Header(HTTP头)与body有关,它们是HTTP消息的一部分。 作为参数,一般是指http请求参数,一般是问号后面的部分url?paramName=paramValue&paramTwo=Value2

进行身份验证时,用户名和密码参数是 或标头,还是因 API 不同而有所不同?

它们因不同的 API 而异,通常不在参数中,可能在发布请求的正文中。

再次,从RFC2616 开始将是一个不错的选择。

【讨论】:

【参考方案3】:

根据This article和其他人的一些观点,您可以了解HTTP headerHTTP参数之间的区别,还有正文

标题:

关于请求的元数据 HTTP 标头不是 URL 的一部分 如果是关于请求或客户端的信息,那么标头是合适的 标题对最终用户隐藏 全球数据 通过检测其标头的授权来限制 Dos 攻击,因为可以在下载正文之前访问标头

参数:

查询参数在 URL 中 喜欢这个“tag=networking&order=newest” 如果是请求本身的内容,那就是参数 产品 ID 和请求的图像大小是作为请求内容的一部分提供的“某些细节”(或参数)的示例 最终用户可以在 URL 上看到参数(查询参数)

主体:

业务逻辑数据 重要信息 与正文不同,代理服务器可以修改标头 特定类型请求中的数据 您可以通过正文传递令牌作为服务器中的编码和解码

【讨论】:

以上是关于HTTP 请求,正文 vs 参数 vs 标头 vs 数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot 和 Zuul 进行 CORS 预检请求的 Host vs Origin 标头

Http <link type="prefetch" vs. pragma: no-cache

shell vs python脚本监控http请求

HTTP 请求:GET vs. POST

如何在 VS WebTest 中发布 Json 对象?

VS2015下OpenGL库的配置