HTTP 304 Not Modified, request per request gesimuleerd

HTTP 304 Not Modified

HTTP 304 Not Modified: ETag en If-None-Match uitgelegd | We.Inc

Simuleer een conditionele request: stel ETag en Last-Modified van de server en If-None-Match en If-Modified-Since van de browser in, en zie 304 of 200 met de reden.

Een antwoord 304 Not Modified vertelt de browser dat zijn gecachete kopie nog actueel is, dus de server stuurt de body niet opnieuw. Het beantwoordt een conditionele GET of HEAD met If-None-Match of If-Modified-Since. Een 304 is goed nieuws, geen fout: het bespaart bandbreedte terwijl het gecachete bestand gewoon gebruikt blijft worden.

De validatorparen achter een 304

Vul in wat de server nu heeft en wat de browser stuurt, en de simulator past de voorrangsregels uit de HTTP-specificatie toe. Hij toont de status die de server zou moeten teruggeven en welke header de doorslag gaf. Maak een veld leeg om die header weg te laten.

Veelgestelde vragen

Is een 304-response een fout?

Nee. Het is een status uit de redirectieklasse die betekent dat de gecachete kopie gebruikt mag worden. De browser toont de pagina uit zijn cache, en alleen headers gingen over het netwerk.

Kan een 304-response een body hebben?

Nee. De specificatie zegt dat een 304-response eindigt aan het einde van de headersectie en geen content mag bevatten.

Welke wint, If-None-Match of If-Modified-Since?

If-None-Match. Als een request beide bevat, beoordeelt een server die entity tags ondersteunt If-None-Match en negeert If-Modified-Since, omdat tags wijzigingen opmerken die een datum met precisie van één seconde mist.

Waarom krijg ik na elke deploy 200 in plaats van 304?

De deploy veranderde het bestand of zijn ETag, dus de tag die de browser heeft komt niet meer overeen. Dat is correct gedrag. Verliezen ongewijzigde bestanden ook hun 304, controleer dan of uw servers verschillende ETags genereren voor dezelfde content.

Geeft POST ooit 304 terug?

Nee. If-None-Match en If-Modified-Since leveren alleen 304 op voor GET en HEAD. Bij andere methoden geeft een mislukte voorwaarde 412 Precondition Failed.

Hoe hervalidatie werkt

Sterke en zwakke tags

De uitwisseling over de lijn

Eerste bezoek: 200 met validators

De server geeft samen met de content een ETag en een Last-Modified-datum mee.

Volgend bezoek: 304 zonder body

De browser stuurt de opgeslagen tag terug en krijgt alleen headers.

Zelf conditionele requests beantwoorden

Node http-server met een ETag op basis van een contenthash

Hasht de body, vergelijkt die met If-None-Match en stuurt bij een overeenkomst 304 zonder body.

Simulator voor conditionele requests

Wat de server nu heeft

Wat de browser stuurt

ETag

Last-Modified

If-None-Match

If-Modified-Since

Antwoord van de server

If-None-Match bevat een tag die bij zwakke vergelijking overeenkomt met de huidige ETag, dus de gecachete kopie is actueel.

If-None-Match is *, en de resource bestaat, dus de voorwaarde is onwaar.

Geen enkele tag in If-None-Match komt overeen met de huidige ETag, dus de server stuurt de nieuwe content. If-Modified-Since wordt niet gecontroleerd.

Er is geen If-None-Match, en Last-Modified is niet later dan If-Modified-Since.

Er is geen If-None-Match, en Last-Modified is later dan If-Modified-Since.

If-Modified-Since is aanwezig, maar een van de twee datums is niet te lezen, dus de header wordt genegeerd.

De request heeft geen validators, dus het is een gewone request.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap