Witam
Mam problem z nagłówkami odpowiedzi serwera www. Jako serwera lokalnego uzywam nginx'a nginx-1.19.4 . Nie wiem dlaczego serwer w odpowiedzi na zadanie tego samego zasobu czyli [ http://localhost/built75/87450ff_home.css ] raz odpowiada kodem 200 OK a raz 304 Not Modified.
Przypadek z dnia 3.11: Najpierw wyczyszcilem cache przegladarki i ciastka dla localhost. Wtedy wyslalem 2 żądania tego samego zasobu [ 87450ff_home.css ] jedno po drugim pierwsze nazwijmy 'A', a drugie 'B'.
Naglowki odpowiedzi z kodem 200 i 304:
===
Odp na pierwsze żądanie (A) z dnia 3.11
---
GET: HTTP/2.0 200 OK
server: nginx
date: Tue, 03 Nov 2020 22:29:46 GMT
content-type: text/css
content-length: 296394
last-modified: Tue, 03 Nov 2020 22:28:38 GMT
etag: "5fa1d996-485ca"
accept-ranges: bytes, bytes
X-Firefox-Spdy: h2
Odp na drugie żądanie (B) z dnia 3.11
---
GET: HTTP/2.0 304 Not Modified
server: nginx
date: Tue, 03 Nov 2020 22:31:02 GMT
last-modified: Tue, 03 Nov 2020 22:28:38 GMT
etag: "5fa1d996-485ca"
X-Firefox-Spdy: h2
Pytanie na jakiej podstawie serwer w odp na żądanie (B) stwierdzil ze zasob nie zostal zmodyfikowany (304) skoro przegladarka nie wyslala zapytania warunkowego z naglowkiem If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match by na jego podstawie serwer okreslil aktualnosc zasobu? Tych naglowkow szukalem w zakladce siec w narzedziach webdewelopera w firefox'ie i nie znalazlem.
Dla porownania ponizej zamieszczam analogiczna 'rozmowe' serwera z przegladarka z innego dnia, gdy sa zwracane inne kody.
Przypadek z dnia 1.11: Najpierw wyczyszcilem cache przegladarki i ciastka dla localhost. Wtedy wyslalem 2 żądania tego samego zasobu [ 87450ff_home.css ] jedno po drugim ('A', potem 'B', identycznie jak 3.11).
Naglowki odpowiedzi z kodem 200 (2x):
===
Odp na pierwsze żądanie (A) z dnia 1.11
---
GET: HTTP/2.0 200 OK
server: nginx
date: Sun, 01 Nov 2020 22:58:01 GMT
content-type: text/css
content-length: 296394
last-modified: Tue, 27 Oct 2020 21:11:04 GMT
etag: "5f988ce8-485ca"
accept-ranges: bytes, bytes
X-Firefox-Spdy: h2
Odp na drugie żądanie (B) z dnia 1.11
---
GET: HTTP/2.0 200 OK
server: nginx
date: Sun, 01 Nov 2020 22:58:01 GMT
content-type: text/css
content-length: 296394
last-modified: Tue, 27 Oct 2020 21:11:04 GMT
etag: "5f988ce8-485ca"
X-Firefox-Spdy: h2
accept-ranges: bytes, bytes
Tutaj w odp na żądanie (B) widac ze serwer stwierdzil ze zasob w cache przegladarki jest nieaktualny i ponownie przeslal go w calosci do przegladarki, w przeciwienstwie do sytuacji z 3.11 gdzie zasobu nie przeslal (304 not modified) i nakazal przegladarce pobranie tego samego zasobu z cache. Ponownie pytanie na jakiej podstawie serwer podjal taka decyzje? Ponownie brak zapytania warunkowego z naglowkiem If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match. Ponownie tych naglowkow szukalem w zakladce siec w narzedziach webdewelopera w firefox'ie i nie znalazlem.
Z gory dzieki za wszelka pomoc.
Pozdrawiam
Szukasz tego jako ciekawostki czy stwarza Ci to problem?
Sprawdziłbym na innej przeglądarce a najlepiej jakiś klient typu curl/telnet/nc bo przeglądarki potrafią w konia robić.
bardziej jako ciekawostki..
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)