2009-10-22 8 views
27

Przeczytałem RFC 2616, ale wciąż zastanawiam się, do czego służy pole Data. Istnieje pole Last-Modified, które ma znaczenie oprócz zwykłego podawania metadanych, czyli buforowania ("If-Modified-Since").Jakie są przesłanki nagłówka daty HTTP?

Ale jaki jest pożytek z podwojenia informacji w osobnym nagłówku Data?

Odpowiedz

31

Na the spec, jest używany w obliczeniach wieku. Jeśli nie wiesz, o której godzinie serwer myśli, nie będziesz w stanie obliczyć "wieku" zasobu. Oto odnośny tekst z spec:

Podsumowanie algorytmu obliczania wieku, kiedy to cache otrzymuje odpowiedź:

age_value
jest wartość Wiek: nagłówek odebranego przez cache z tym odpowiedź.

date_value
jest wartość Date: nagłówku serwera pochodzenia za

request_time
jest (lokalny) razem gdy bufor składający wniosek że spowodowało to pamięci podręcznej odpowiedzi

response_time
jest (lokalna) czas, kiedy cache otrzymał odpowiedź

now
jest obecny (lokalny) Czas

apparent_age = max(0, response_time - date_value); 
corrected_received_age = max(apparent_age, age_value); 
response_delay = response_time - request_time; 
corrected_initial_age = corrected_received_age + response_delay; 
resident_time = now - response_time; 
current_age = corrected_initial_age + resident_time; 
+0

Ach, OK. Wtedy Data niekoniecznie musi być taka sama jak ostatnia modyfikacja? Jeśli dobrze rozumiem, to bardziej "Kiedy serwer zaczął wysyłać rzeczy?". To by miało sens ... – Boldewyn

+0

@Boldewyn ma rację - jest to "data i godzina, w której ** wiadomość ** została zainicjowana". –

+0

@ Daniellubarov nic nie wart, że to nie tylko odpowiedź, która może wysłać nagłówek daty. Obsługiwany jest również w przypadku żądań, w których warto ustalić czas na kliencie. Niestety nie jest ogólnie ustawiony na to, co widzę –

Powiązane problemy