【问题标题】:Why is ETag required to be enclosed in double quotes?为什么 ETag 需要用双引号括起来?
【发布时间】:2021-06-06 12:55:26
【问题描述】:

根据RFCMDN docs,ETag 值需要用双引号括起来"<Value>"。 当我使用 CURL 发出请求时,Accept-Encoding 标头为 gzip, deflate, br,如果 ETag 没有用双引号括起来,我不会在响应标头中收到 ETag。

我很好奇为什么 ETag 规范要求它们用双引号括起来?

【问题讨论】:

  • 学究式地说:值没有用引号括起来 - 引号是值的一部分。

标签: express http caching header etag


【解决方案1】:

没有书面证据,很难说为什么某人做了某事。

不过,我们可以说,ETag 标头的值除了实体标签本身之外还包括元数据。具体来说,当值以字符串W/ 开头时,意味着下面的实体标签应该被认为是弱标签。

因此必须有某种方法来区分元数据中的值。有无数种替代解决方案。例如,他们可以省略引号,但元数据必须有一个神奇的字符序列,并且当实体标签碰巧包含这些字符时,可能还有一些转义机制。

标准中采用的方法简单易读,使用熟悉的分隔符,并且解析速度很快。事实上,我们知道最后一部分很重要,因为没有转义序列(意味着" 本身不允许出现在标签的内部)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多