2010-10-17 19 views
27

¿Para qué sirve el encabezado HTTP "Edad"? Específicamente, ¿qué significa un valor de 0 (Age: "0")?"Edad: 0" Cabecera HTTP

+21

Por lo tanto, se trata de un niño o una niña – Benoit

+3

@Benoit:? Es un niño – BoltClock

Respuesta

26

Véase el HTTP 1.1 specification en lo que el Age header field está destinada a ser utilizada para:

campo de respuesta-cabecera

La Edad transmite estimación del remitente de la cantidad de tiempo ya que la respuesta (o su revalidación) se generó en el servidor de origen

Esta información es utilizada por los proxies intermedios a convey an estimate of how old a stored response is:

HTTP/1.1 requiere servidores de origen para enviar una cabecera de fecha, si es posible, con cada respuesta, dando la hora en que se genera la respuesta (ver la sección 14.18). Usamos el término "date_value" para denotar el valor del encabezado de Fecha, en una forma apropiada para las operaciones aritméticas.

HTTP/1.1 utiliza el encabezado de respuesta de edad para transmitir la edad estimada del mensaje de respuesta cuando se obtiene de un caché. El valor del campo Edad es la estimación del caché del tiempo transcurrido desde que el servidor de origen generó o revalidó la respuesta.

Además, el campo cabecera Edad está destinado a ser utilizado por sólo cachés intermedios:

La presencia de un campo de cabecera Edad en una respuesta implica que una respuesta no es de primera mano.

Eso significa que la presencia del campo de encabezado Age: 0 significa que la respuesta recibida fue enviada por un caché intermedio y tiene solo cero segundos de antigüedad. Por lo tanto, probablemente solo fue extraído del servidor de origen antes de enviarlo al cliente.

+0

se está dando a entender que esto! "Caché" es otro proxy servidor o debe ser otro servidor proxy y si es el servidor de origen el que responde directamente, no se debe establecer el encabezado de respuesta de edad. No veo eso en el estándar, podría ser un caché de servidor de origen no? – Blub

+0

@Blub El caché puede cualquier nodo entre el cliente y el servidor. Puede haber varios proxies en la ruta o ninguno. La caché establecería el valor del campo del encabezado * Age * de acuerdo con la antigüedad de la representación almacenada del recurso solicitado. – Gumbo

3

que pasa a ser especificado in the protocol:

El campo de respuesta-cabecera Edad transmite estimación del remitente de la cantidad de tiempo ya que la respuesta (o su revalidación) fue generado en el servidor de origen. Una respuesta en caché es "reciente" si su edad no supera su tiempo de vida de frescura. Los valores de edad son calculados como se especifica en la sección 13.2.3.

 
    Age = "Age" ":" age-value 
    age-value = delta-seconds 

valores de la edad son enteros decimales no negativos, que representa el tiempo en segundos . Si un caché recibe un valor mayor que el entero positivo más grande que puede representar, o si alguno de sus cálculos de edad se desborda, DEBE transmitir un encabezado Age con un valor de 2147483648 (2^31). Un servidor HTTP/1.1 que incluye un caché DEBE incluir un campo de encabezado de edad en cada respuesta generada desde su propio caché . Los cachés DEBERÍAN usar un tipo aritmético de al menos 31 bits de rango.

5

"El encabezado Age indica una estimación, en número de segundos, de la antigüedad del recurso solicitado desde que se solicitó por última vez desde el servidor web de origen."

" Debido a que los retrasos en la red pueden ocasionar que se calculen edades inadecuadamente bajas, la edad se vuelve a calcular en cada paso de la ruta de retorno en función del tiempo estimado entre saltos. En lugar de depender de los cálculos realizados por otros proxies intermedios, la edad generalmente se calculará como una diferencia entre la fecha actual del proxy y el encabezado general Fecha incluido en la respuesta HTTP. Si los relojes no sincronizados hacen que este cálculo dé como resultado una diferencia negativa, se usa una edad de 0. "

Chris Shiflett, "Manual de HTTP del desarrollador", página 83.