Koks skirtumas tarp HTTP 200 būsenos kodo (talpyklos) ir būsenos kodo 304?

„Firefox“ naudoju „Google Page Speed“ papildinį, kad galėčiau pasiekti mano svetainę.

Kai kurie mano puslapio komponentai yra išvardyti kaip „HTTP“ būsena:

200 200 (talpykla) 304

„Google“ „puslapio greitis“.

Tai, kas mane paini, yra skirtumas tarp 200 (talpyklos) ir 304.

Keletą kartų atnaujinau puslapį (bet neišvaliau talpyklos), ir visada atrodo, kad mano favicon.ico ir keletas vaizdų turi statusą = 200 (talpyklą), o kai kurie kiti vaizdai yra http statusas 304.

Aš nesuprantu, kodėl skirtumas.

UPDATE

Naudodamiesi „Google“ puslapio sparta, „ http://example.com/favicon.ico “ gaunu „200 (talpyklą)“, taip pat http://cdn.example.com/js/ga.js

Bet, http://cdn.example.com/js/combined.min.js , gaunu „http“ būseną „304“

Nesuprantu, kodėl turiu du „JavaScript“ failus, esančius viename / js / kataloge, iš kurių vienas grąžina būseną „http 304“, o kitas grąžina būsenos kodą 200 (talpyklą).

173
03 нояб. nustatė Hank 03 lapkričio. 2009-11-03 06:34 '09, 6:34 am 2009-11-03 06:34
@ 5 atsakymai

Elementai su kodu „200 (talpykla)“ buvo įvykdyti tiesiogiai iš naršyklės talpyklos, o tai reiškia, kad originalūs užklausų elementai buvo grąžinti su antraštėmis, rodančiomis, kad naršyklė gali juos talpinti (pvz., Būsimasis galiojimo Expires arba Cache-Control: max-age ), ir kad įjungę naują užklausą, šie talpykloje saugomi objektai vis dar buvo išsaugoti vietinėje talpykloje ir dar nepasibaigė.

304s yra serverio atsakas po to, kai naršyklė patikrino, ar failas buvo pakeistas nuo paskutinės talpyklos versijos (atsakymas yra „ne“).

Kad galėtumėte pasiekti geriausio našumo internete, geriausia yra sukonfigūruoti „ Expires: arba „ Cache-Control: max-age antraštę ateityje, o tada, kai reikia pakeisti išteklius, pakeiskite faktinį failo pavadinimą arba pridėkite užklausos užklausos versiją. Tai pašalina poreikį atlikti visus prašymus, jei turtas tikrai nepasikeitė nuo talpyklos versijos (šio atsakymo nereikia 304). „Yahoo! turi papildomų našumo rekomendacijų, susijusių su talpykla , įskaitant tai, kad ETags yra tinkamai sukonfigūruotas.

190
03 нояб. Atsakymą pateikė Ben Regenspan 03.11 . 2009-11-03 06:41 '09 6:41 am 2009-11-03 06:41

200 (talpykla) reiškia, kad „Firefox“ paprasčiausiai naudoja vietoje išsaugotą versiją. Tai greičiausias, nes užklausa į žiniatinklio serverį nėra atlikta.

304 reiškia, kad „Firefox“ siunčia sąlyginį „If-Modified-Nuo“ užklausą žiniatinklio serveriui. Jei failas nebuvo atnaujintas, nes jį atsiuntė naršyklė, žiniatinklio serveris grąžina atsakymą 304, kuris iš esmės nurodo „Firefox“ naudoti talpyklą. Tai nėra taip greitai, kaip 200 (talpykla), nes prašymas vis dar siunčiamas į žiniatinklio serverį, tačiau serveris neturėtų siųsti failo turinio.

border=0

Į paskutinį klausimą aš nežinau, kodėl du to paties katalogo „JavaScript“ failai pateikia skirtingus rezultatus.

56
04 авг. James Lawruk atsakymas rugpjūčio 04 d 2010-08-04 00:28 '10 - 0:28 2010-08-04 00:28

Tai taip pat atsisakė manęs. Pirmas dalykas, kurį patikrinau, yra tai, kad neperkraunate puslapio spustelėję naujinimo mygtuką, kuris visada sukels sąlyginį išteklių užklausą ir grąžins 304 daugeliui puslapio elementų. Vietoj to, eikite į URL skydelį, pasirinkite puslapį ir paspauskite „Enter“, lyg būtumėte tiesiog įvedę tą patį URL, kuris suteiks jums geriausią rodmenį, kuris teisingai saugomas talpykloje. Šis straipsnis puikiai tinka paaiškinti skirtumą tarp sąlyginių ir besąlyginių užklausų ir to, kaip naujinimo mygtukas juos veikia: http://blogs.msdn.com/b/ieinternals/archive/2010/07/08/technical-information-about- sąlyginis-http-request-and-the-refresh-button.aspx

16
31 авг. atsakymas duotas pooch 31 rug. 2013-08-31 00:22 '13 prie 0:22 2013-08-31 00:22

HTTP 304 „nepasikeitė“. Jūsų žiniatinklio serveris iš esmės nurodo, kad „šis failas nepasikeitė nuo paskutinio prašymo“. Nors HTTP 200 nurodo, kad naršyklė „čia yra sėkmingas atsakas“, kuris turėtų būti grąžinamas, kai jis yra pirmą kartą, kai naršyklė pasiekia failą, arba pirmą kartą, kai ją pasiekia pakeista kopija.

Norėdami gauti daugiau informacijos apie būsenos kodus, patikrinkite http://en.wikipedia.org/wiki/List_of_HTTP_status_codes .

7
03 нояб. Atsakymą pateikė richleland lapkričio 03. 2009-11-03 06:41 '09 6:41 am 2009-11-03 06:41

304 nėra modifikuotas. Aš gaunu šį kodą daug mano žiniasklaidos failuose, tokiuose kaip css ir js.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5

2
03 нояб. Atsakymą pateikė Brandon H 03.11. 2009-11-03 06:39 '09 at 6:39 2009-11-03 06:39