Java:正确引用 ETag 的例程?
Java: routine for proper ETag quoting?
是否有任何方法已经为 http headers 实现了正确的 ETag 引用?
正如 Syntax for ETag? 中指出的那样,正确的方法并不像在其周围加上双引号那么简单。
找不到任何明显的东西。
这有点误导。引号是 ETag 的组成部分,因此没有从 "unquoted ETag" 到 "quoted ETag" 的过渡。
如果您想要的是一种包含 ETag 中不允许的字符的方法,您只需发明一种自定义转义语法即可。哪个并不重要,因为您的服务器正在生产和消费它们,并且对于客户端来说它们是完全不透明的。
该答案基于先前版本的 ETag 规范。当前的 (RFC 7232) 明确禁止在不透明的 ETag 中使用双引号字符。
所以假设您的 ETag 的不透明部分根据 RFC 7232 是有效的,它真的就像在它周围加上双引号一样简单。
但是,我建议您不要这样做,而是要求提供 ETag 的人包含双引号。那是因为它们是区分弱 ETag 所必需的。没有它们,您将面临更复杂的 API,或者更常见的是,根本无法指定弱 ETag。
是否有任何方法已经为 http headers 实现了正确的 ETag 引用?
正如 Syntax for ETag? 中指出的那样,正确的方法并不像在其周围加上双引号那么简单。
找不到任何明显的东西。
这有点误导。引号是 ETag 的组成部分,因此没有从 "unquoted ETag" 到 "quoted ETag" 的过渡。
如果您想要的是一种包含 ETag 中不允许的字符的方法,您只需发明一种自定义转义语法即可。哪个并不重要,因为您的服务器正在生产和消费它们,并且对于客户端来说它们是完全不透明的。
该答案基于先前版本的 ETag 规范。当前的 (RFC 7232) 明确禁止在不透明的 ETag 中使用双引号字符。
所以假设您的 ETag 的不透明部分根据 RFC 7232 是有效的,它真的就像在它周围加上双引号一样简单。
但是,我建议您不要这样做,而是要求提供 ETag 的人包含双引号。那是因为它们是区分弱 ETag 所必需的。没有它们,您将面临更复杂的 API,或者更常见的是,根本无法指定弱 ETag。