2010-08-06 17 views
8

Tengo un cliente HTTP que establece la cabecera de la conexión con el siguiente valor cuando hago una petición:¿Debería un servidor adherirse a la conexión HTTP: cerrar el encabezado enviado desde un cliente?

Connection: close 

Sin embargo, cuando el servidor envía una respuesta, se está estableciendo la cabecera de Keep-Alive:

Connection: Keep-Alive 

Esto me parece intuitivamente incorrecto, y me pregunto cómo debe manejar el cliente esa respuesta del servidor. Además, ¿por qué un servidor respondería con Keep-Alive, cuando el cliente ha pedido que se cierre la conexión, es esto válido?

De acuerdo con el RFC HTTP:.

"HTTP/1.1 define la 'opción de conexión cerca' para el emisor para indicar que la conexión se cierra después de la finalización de la respuesta, por ejemplo,

Connection: close 

en los campos de encabezado de solicitud o respuesta indica que la conexión NO DEBE considerarse 'persistente' (sección 8.1) después de que se complete la solicitud/respuesta actual. "

Respuesta

13

Eso está bien. Le está diciendo al servidor que no admite conexiones persistentes y le dice que sí. Cualquiera de las partes es completamente válida para cerrar la conexión; es más un mensaje sobre lo que ambas admiten en lugar de un comando DEBE CERRAR ESTA CONEXIÓN.

6

El cliente dice I cerrará la conexión cuando finalice la solicitud/respuesta actual, o en otras palabras, dijo que no es compatible con las conexiones de persistencia. Es decir, no le dice al servidor que cierre la conexión. El servidor responde que admite conexiones persistentes (keep-alive).

Como le ha dicho al servidor que no admite la conexión persistente, debe cerrar la conexión cuando haya leído la respuesta.

Cuestiones relacionadas