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

21

我对HTTP请求(GET、POST、PUT等)还很陌生,有些难以理解这些过程的"解剖学"。

主体数据之间到底有什么区别?它们是同一件事吗?或者头部参数是同一回事吗?当进行身份验证时,用户名和密码参数或头部,或者这因API而异?非常感谢您提供任何帮助。您有什么教程或推荐的阅读材料可以更好地了解如何处理HTTP请求吗?

谢谢!


头部通常是关于脚本/服务器/引用/指定等的信息...例如服务器:Apache 2.4 - 操作系统:CentOs 时间、日期、元数据等 | 参数是头部的一部分,称为表单数据--换句话说,您将发送的实际“字段”,例如用户名和密码。要查看我所说的内容,请在Chrome中打开检查窗口并访问选定了“网络”选项卡的站点。现在查看“头部”。 - Zak
1
我建议您阅读RFC 2616,了解HTTP(1.1)的正式规范、其各个组件以及它们的工作原理。 - Remy Lebeau
3个回答

10
基于本文和其他相关文章,你可以找到以下HTTP header、HTTP parameter和Body的区别: Header:
  • 关于请求的元数据
  • HTTP头不是URL的一部分
  • 如果是关于请求或客户端的信息,则使用头部
  • 头部对终端用户隐藏
  • 全局数据
  • 通过在其头部检测授权来限制Dos攻击,因为可以在下载正文之前访问头部
Param:
  • 查询参数在URL内
  • 例如"tag=networking&order=newest"
  • 如果是请求内容本身的内容,则是参数
  • 产品ID和请求的图片大小是提供作为请求内容的“某些详细信息”(或参数)的例子
  • 参数可以被终端用户(查询参数)在URL上看到
Body:
  • 业务逻辑数据
  • 重要信息
  • 与头部不同,代理服务器允许修改头部
  • 特定类型请求中的数据
  • 您可以通过在服务器中编码和解码的方式将令牌通过正文传递

1
为了全面正确地理解这些问题,建议阅读Remy Lebeau推荐的RFC2616
“正文”和“数据”之间到底有什么区别?
如果你正在阅读一些博客,那么正文(HTTP正文)被用于传输数据(可能是JSON格式)。正文携带数据,换句话说,你从正文中获取数据。
它们是相同的吗?
所以它们根本不一样。
头部和参数是相同的吗?
头部(HTTP头部)与正文相关,它们是HTTP消息的一部分。而参数通常指HTTP请求参数,通常看起来像问题标记的以下部分 url?paramName=paramValue¶mTwo=Value2
当身份验证发生时,用户名和密码是参数还是头部,还是因API而异?
对于不同的API,它们是不同的,通常不在参数中,可能在POST请求的正文中。

再次从RFC2616开始阅读是一个不错的选择。


0
  • data不是HTTP特定术语。data可以是任何东西。
  • 'parameter'也不是HTTP特定术语。许多Web框架可能认为参数是在URL中?后面的所有内容,但这并不是绝对的真理。
  • 用户名和密码有时出现在请求正文中,有时出现在标头中。在Web应用程序中,它们通常在请求正文中,但某些类型的身份验证系统将它们放置在Authorization标头中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接