我正在阅读HTTP规范,我无法弄清楚究竟是什么“实体”。我读了“What exactly is an HTTP Entity”的答案,但我仍然感到困惑。
具体来说,我不明白规范在entity-headers和response / request / general-headers之间的区别。例如,阅读Header Field Definitions部分,Allow
,Expires
和Last-Modified
等标题被归类为“实体标题”。这究竟意味着什么?我猜它们适用于“实体 - 身体”,但实体主体和消息体之间的区别是什么?
我很欣赏有关实体的任何说明以及它们在HTTP请求/响应中的适用位置。
答案 0 :(得分:4)
消息是最通用的术语,指的是整个HTTP message,包括起始行,消息标题字段和 message-body (可能为空)。
消息的entity是要传输的有效负载。这可以与 message-body 相同,但如果对实体应用了传输编码,则会从消息中获取entity-body -body 通过解码任何传输编码。
这种传输编码的一个例子是chunked transfer coding,其中实体主体以块的形式传输,例如:
HTTP/1.0 OK 200
Transfer-Encoding: chunked
9
This is a
C
chunked mess
4
age.
0
此处 message-body 是:
9
This is a
C
chunked mess
4
age.
0
但是 entity-body 是带有解码 chunked 编码的 message-body :
This is a chunked message.
答案 1 :(得分:0)
案例1.您正在http请求中上传3个文件。这3个文件是3个实体。他们每个人都有自己的Content-Type
来表明它是什么类型的文件。
案例2.您正在查看网页。浏览器已在后台通过http响应下载了一个html文件作为实体。该文件可能会不断更新。因此,您昨天获得的实体可能与您今天获得的实体不同。
案例3.你有一个304 Not Modified
。没有实体传播。
实体是http请求或响应中的可选有效内容。部分标题用于描述它。