我正在阅读 HTTP 规范,但我无法弄清楚“实体”到底是什么。我阅读了“What exactly is an HTTP Entity”的答案,但我仍然感到困惑。
具体来说,我不明白规范对实体 header 和响应/请求/通用 header 的区别。例如,读取 Header Field Definitions部分中,Allow
、Expires
和 Last-Modified
等 header 被归类为“实体 header ”。这到底是什么意思?我想它们适用于“实体主体”,但实体主体和消息主体之间有什么区别?
如果能对实体及其在 HTTP 请求/响应中的位置做出任何说明,我将不胜感激。
最佳答案
消息 是最通用的术语,指的是整个 HTTP message ,包括start-line、message-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-body 是 message-body 带有解码的 chunked 编码:
This is a chunked message.
关于http - 对 HTTP 规范中使用的实体的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808619/