ETag的语法?

Pac*_*ier 24 etag http http-headers

Redbot报告我的网页包含无效标题:

ETag标头的语法无效.

我的标题设置为:

ETag: 4ae413bd
Run Code Online (Sandbox Code Playgroud)

为什么无效?

ETag的语法是什么?

Pac*_*ier 31

试试ETag: "4ae413bd".ETag的值必须遵循ABNF形式:

  entity-tag = [ weak ] opaque-tag
  weak       = "W/"
  opaque-tag = quoted-string

  quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
  qdtext         = <any TEXT except <">>
  quoted-pair    = "\" CHAR
  CHAR           = <any US-ASCII character (octets 0 - 127)>
  TEXT           = <any OCTET except CTLs, but including LWS>
  OCTET          = <any 8-bit sequence of data>
  LWS            = [CRLF] 1*( SP | HT )
  CTL            = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
  CRLF           = CR LF
  CR             = <US-ASCII CR, carriage return (13)>
  LF             = <US-ASCII LF, linefeed (10)>
  SP             = <US-ASCII SP, space (32)>
  HT             = <US-ASCII HT, horizontal-tab (9)>
Run Code Online (Sandbox Code Playgroud)

,这基本上([wW]/)?"([^"]|\\")*"常规正则表达式.

请注意这两个"\""/"是ETag的有效值.

参考文献:第14.19 ,第3.11 ,第2.2节.

  • 通俗地说:价值必须以"(双引号)开头和结尾" (3认同)

Mar*_*cny 11

正如Arnaud所提到的,请确保您已引用该值.

更换

new EntityTagHeaderValue("0");
Run Code Online (Sandbox Code Playgroud)

new EntityTagHeaderValue("\"0\"");
Run Code Online (Sandbox Code Playgroud)


Kar*_*ath 6

"ETag是由Web服务器分配给在URL处找到的特定资源版本的不透明标识符 ".这意味着它几乎可以是任何东西.

问题可能是语法,使用:

ETag: "4ae413bd"
Run Code Online (Sandbox Code Playgroud)