我们在服务器上使用ETag标头进行同步,它对应于实体' int version' DB中的字段。 根据w3c文档: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 例子:
ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""
这意味着ETag里面有双引号。 因此,如果我想将其发送给客户端,则应该像:
int version = 2;
response.setHeader(HttpHeaders.ETAG, String.format("\"%s\"", version));
或者:
int version = 2;
response.setHeader(HttpHeaders.ETAG, String.format("%s", version));
在第一种情况下,我得到:
HTTP/1.1 200 OK
...
ETag: 2
第二名:
HTTP/1.1 200 OK
...
ETag: "2"
哪种方式更符合w3c?
答案 0 :(得分:3)
a)W3C并不重要。您正在查看由W3C托管的IETF RFC 2616的副本。并且RFC已经过时,您应该阅读RFC 7232(例如http://greenbytes.de/tech/webdav/rfc7232.html#header.etag)。
b)在你的例子中,第一个是不正确的,第二个是正确的。