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 header和HTTP参数之间的区别,还有正文:
标题:
关于请求的元数据 HTTP 标头不是 URL 的一部分 如果是关于请求或客户端的信息,那么标头是合适的 标题对最终用户隐藏 全球数据 通过检测其标头的授权来限制 Dos 攻击,因为可以在下载正文之前访问标头参数:
查询参数在 URL 中 喜欢这个“tag=networking&order=newest” 如果是请求本身的内容,那就是参数 产品 ID 和请求的图像大小是作为请求内容的一部分提供的“某些细节”(或参数)的示例 最终用户可以在 URL 上看到参数(查询参数)主体:
业务逻辑数据 重要信息 与正文不同,代理服务器可以修改标头 特定类型请求中的数据 您可以通过正文传递令牌作为服务器中的编码和解码【讨论】:
以上是关于HTTP 请求,正文 vs 参数 vs 标头 vs 数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Boot 和 Zuul 进行 CORS 预检请求的 Host vs Origin 标头