http - 对 HTTP 规范中使用的实体的混淆

标签 http web http-headers webserver

我正在阅读 HTTP 规范,但我无法弄清楚“实体”到底是什么。我阅读了“What exactly is an HTTP Entity”的答案,但我仍然感到困惑。

具体来说,我不明白规范对实体 header 和响应/请求/通用 header 的区别。例如,读取 Header Field Definitions部分中,AllowExpiresLast-Modified 等 header 被归类为“实体 header ”。这到底是什么意思?我想它们适用于“实体主体”,但实体主体和消息主体之间有什么区别?

如果能对实体及其在 HTTP 请求/响应中的位置做出任何说明,我将不胜感激。

最佳答案

消息 是最通用的术语,指的是整个 HTTP message ,包括start-linemessage-header 字段和message-body(可能为空)。

entity消息的有效载荷是要传输的。这可以与 message-body 相同,但如果对 entity 应用了传输编码,则 entity-body通过解码任何传输编码从消息体获得。

这种传输编码的一个例子是 chunked transfer coding实体主体以 block 的形式传输,例如:

HTTP/1.0 OK 200
Transfer-Encoding: chunked

9
This is a
C
 chunked mess
4
age.
0
‍

这里的消息正文是:

9
This is a
C
 chunked mess
4
age.
0
‍

但是 entity-bodymessage-body 带有解码的 chunked 编码:

This is a chunked message.

关于http - 对 HTTP 规范中使用的实体的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808619/

相关文章:

html - 基本 HTTP 身份验证 : User or Application?

c# - 在 Chrome 响应式模拟器中重定向更改用户代理

html - 如何在同一张A4纸上打印两次网页?

css - 在网页上使用 Avant Garde BK BT 字体?

python - 如何在 PyQt4 中的 http 请求中设置 X-Forwarded-For

python - Django 是否有可以检测 URL 并将其转换为超链接的模板标记?

http - Scrapy 使用随机代理池以避免被禁止

php - Codeigniter 中的点击计数器

node.js - 基于带有 express 的 "Accept" header 的网页有条件服务?

http-headers - 更改 IIS/ASP.NET 发送的 header 。副作用?