Rozumiem, że Ctrl+ Odśwież pobiera świeże treści z przeglądarki bez czytania pamięci podręcznej. Więc po co jest Ctrl+ Shift+ Odśwież?
Ctrl + Nagłówek żądania odświeżania wygląda następująco:
Cache-Control : max-age=0
dla Ctrl+ Shift+ Odśwież
Pragma : no-cache <br>
Cache-Control : no-cache
Jaka jest prawdziwa różnica?
Odpowiedzi:
Oba są identyczne z przeglądarką na komputerze lokalnym. Nagłówki, o których wspomniałeś, to jedyna różnica.
Nagłówek Ctrl + Refresh oznacza, że wszystkie serwery buforujące po drodze powinny zwrócić świeżą kopię strony.
Nagłówki Ctrl + Shift + Refresh oznaczają, że wszystkie serwery buforujące po drodze powinny zwrócić świeżą kopię strony, a także nie powinny buforować strony dla przyszłych żądań. Innymi słowy, przy następnym żądaniu strony powinna albo użyć poprzedniej pamięci podręcznej strony, albo poprosić o nową kopię, ale nie powinna jej używać.
Pragma: no-cache to wersja HTTP 1.0 Cache-Control: no-cache. Nie ma HTTP 1.0 równoważnego z Cache-Control: max-age = 0.
RFC2616 sekcja 14 podsekcja 9 zawiera istotne informacje: w3c.org: RFC2616 sec 14.9.1
źródło
Jest jeszcze jedna różnica, i to duża.
Po naciśnięciu Ctrl + Odśwież, dla każdego buforowanego obiektu, który ma nagłówek
Last-Modified
lubETag
, przeglądarka wyda żądanie z nagłówkiemIf-Modified-Since
lubIf-None-Match
. Serwer może następnie wybrać odpowiedź304 Not Modified
bez ponownego wysyłania jakichkolwiek danych (zakładając, że dane w rzeczywistości nie są modyfikowane).Gdy naciśniesz Ctrl + Shift + Refresh, przeglądarka nie wyda takich warunkowych
If-*
nagłówków, nie pozostawiając serwerowi żadnej opcji, tylko ponowne przesłanie danych.źródło