The If-None-Match header carries the cached validator tag.

highlighted = computed this step

The validator is a header

The If-None-Match header carries the client's cached tag.

If-None-Match is present\text{If-None-Match is present}
Validator headerThe request, resource, decision, and response rows are recomputed from pinned bytes.Validator header - /logo.png validator "v7" -> 304 Not Modified, body 0 bytessectionnamevaluecheckrequest linemethodGETparsedrequest linepath/logo.pngparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderIf-None-Match"v7"validatorresourcepath/logo.pngpinnedresourcecurrent ETag"v7"pinnedresourcebody bytes1280would send if changeddecisionvalidator"v7"from requestdecisioncurrent ETag"v7"from resourcedecisionmatchyessame tagdecisionresponse304 Not Modifiedskip bodydecisionsent body bytes0not sentstatusversionHTTP/1.1parsedstatusstatus304 Not Modifiednot modifiedheaderETag"v7"current tagheaderCache-Controlmax-age=60pinnedbodysent body bytes0skipped

The tag is exact text

The quoted tag is parsed from the request bytes and shown in the table.

validator tag parsed\text{validator tag parsed}
Validator headerThe request, resource, decision, and response rows are recomputed from pinned bytes.Validator header - /logo.png validator "v7" -> 304 Not Modified, body 0 bytessectionnamevaluecheckrequest linemethodGETparsedrequest linepath/logo.pngparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderIf-None-Match"v7"validatorresourcepath/logo.pngpinnedresourcecurrent ETag"v7"pinnedresourcebody bytes1280would send if changeddecisionvalidator"v7"from requestdecisioncurrent ETag"v7"from resourcedecisionmatchyessame tagdecisionresponse304 Not Modifiedskip bodydecisionsent body bytes0not sentstatusversionHTTP/1.1parsedstatusstatus304 Not Modifiednot modifiedheaderETag"v7"current tagheaderCache-Controlmax-age=60pinnedbodysent body bytes0skipped

The header asks a question

It asks whether the server's current tag still matches the cached copy.

does my tag still match?\text{does my tag still match?}
Validator headerThe request, resource, decision, and response rows are recomputed from pinned bytes.Validator header - /logo.png validator "v7" -> 304 Not Modified, body 0 bytessectionnamevaluecheckrequest linemethodGETparsedrequest linepath/logo.pngparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderIf-None-Match"v7"validatorresourcepath/logo.pngpinnedresourcecurrent ETag"v7"pinnedresourcebody bytes1280would send if changeddecisionvalidator"v7"from requestdecisioncurrent ETag"v7"from resourcedecisionmatchyessame tagdecisionresponse304 Not Modifiedskip bodydecisionsent body bytes0not sentstatusversionHTTP/1.1parsedstatusstatus304 Not Modifiednot modifiedheaderETag"v7"current tagheaderCache-Controlmax-age=60pinnedbodysent body bytes0skipped

Summary

The request sends a validator instead of assuming the cached body is fresh.

validator sent\text{validator sent}
Validator headerThe request, resource, decision, and response rows are recomputed from pinned bytes.Validator header - /logo.png validator "v7" -> 304 Not Modified, body 0 bytessectionnamevaluecheckrequest linemethodGETparsedrequest linepath/logo.pngparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderIf-None-Match"v7"validatorresourcepath/logo.pngpinnedresourcecurrent ETag"v7"pinnedresourcebody bytes1280would send if changeddecisionvalidator"v7"from requestdecisioncurrent ETag"v7"from resourcedecisionmatchyessame tagdecisionresponse304 Not Modifiedskip bodydecisionsent body bytes0not sentstatusversionHTTP/1.1parsedstatusstatus304 Not Modifiednot modifiedheaderETag"v7"current tagheaderCache-Controlmax-age=60pinnedbodysent body bytes0skipped