2009-10-22 11 views
27

He leído RFC 2616, pero todavía me pregunto, para qué sirve el campo de Fecha. Existe el campo Last-Modified, que en realidad tiene un significado además de solo servir metadatos, es decir, para el almacenamiento en caché ('If-Modified-Since').¿Cuál es el razonamiento detrás del encabezado HTTP Date?

¿Pero para qué sirve duplicar la información en un encabezado de fecha diferente?

Respuesta

31

Por the spec, se utiliza en los cálculos de edad. Si no sabe a qué hora cree que está el servidor, no podrá calcular la "antigüedad" de un recurso. Aquí está el texto relevante de la especificación:

Resumen del algoritmo de cálculo de la edad, cuando un caché recibe una respuesta:

age_value
es el valor de Edad: cabecera recibida por la memoria caché con este respuesta.

date_value
es el valor de la cabecera del servidor de origen Date:

request_time
es el tiempo (local) cuando la caché hizo la solicitud que dio lugar a esta respuesta en caché

response_time
es el tiempo (local) cuando la caché recibe la respuesta

now
es el momento actual (local)

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

Ah, OK. Entonces, ¿la fecha no es necesariamente la misma que la última modificación? Si entiendo correctamente, es más "¿Cuándo comenzó el servidor a enviar las cosas?". Eso tendría sentido ... – Boldewyn

+0

@Boldewyn correcto - es "la fecha y la hora en que se originó el ** mensaje **". –

+0

@DanielLubarov no vale nada, no es solo la respuesta que puede enviar un encabezado de fecha. Es compatible con solicitudes también, donde sería útil establecer el tiempo en el cliente. Lamentablemente, no está configurado por lo que puedo ver –

Cuestiones relacionadas