= Strong entity tag
A <strong entity tag> is an <entity tag> that satisfies HTTP's strong-validator requirements. Its value must change whenever the <HTTP representation> data change in a way observable in a successful `GET` response. Its syntax has no weak `W/` prefix, for example `"revision-7"`.<HTTP Semantics>[§8.8.1, strong validators; §8.8.3, strong default and weak marking]{ref}
Suppose a resource serves the four bytes `blue` with tag `"revision-7"`. Changing the first byte to produce `Blue` requires a different <strong entity tag>, even if the application regards the capitalization difference as unimportant. A revision counter can implement this example, but the client must treat the quoted tag as opaque: the syntax does not promise that a number can be parsed or incremented to predict the next tag.<HTTP Semantics>[§8.8.3.1, generation mechanisms and opaque values]{ref}
Strong comparison succeeds only when both <entity tags> are strong and their quoted opaque values match character for character. Thus `"revision-7"` matches `"revision-7"`, but not `W/"revision-7"` and not `"Revision-7"`. Removing the weak marker in a client would change the meaning of the validator rather than upgrade the server's guarantee.<HTTP Semantics>[§8.8.3.2, strong and weak comparison functions]{ref}
An <HTTP conditional request> using `If-Match` requires strong comparison. This is useful when an update should proceed only against the representation the client previously observed. The guarantee is scoped to the resource: identical tag text on two unrelated resources does not establish that their data are equal. Conversely, a strong validator may change for a relevant metadata change as well as a data change, so a changed tag alone is not a byte-by-byte difference report.<HTTP Semantics>[§13.1.1, If-Match comparison; §8.8.1, scope of uniqueness and metadata changes]{ref}
Back to article page