2010-11-22 32 views
13

Sé que HTTP keep-alive está activado por defecto en HTTP 1.1, pero quiero encontrar una manera de confirmar que realmente está funcionando.Cómo probar HTTP Keep alive en realidad está funcionando

¿Alguien sabe de una manera simple de probar desde un navegador web (por ejemplo, cómo entender el wireshark). Sé que necesito buscar múltiples solicitudes HTTP a través de la misma conexión TCP, pero no sé cómo confirmar eso en wireshark o de otra manera.

Gracias!

Respuesta

4

Si usa Windows Vista o una versión posterior, puede usar Resource Manager. La pestaña Red mostrará una lista de todas las conexiones TCP abiertas y el proceso por el que se iniciaron. Abra un navegador con una sola pestaña, navegue hasta su página y realice una prueba.

+0

Gracias por eso. No tengo Resource Manager (creo que es para servidores), pero utilicé TCPView de sysinternals. Ayuda (¡aunque confunde aún!) – sub

+0

También podrías simplemente ejecutar 'netstat'. – Brad

16

Como Ron Garrity said on ServerFault, puede utilizar Curl así:

curl -Iv http://www.aptivate.org 2>&1 | grep -i 'connection #0' 

Y da salida a estas dos líneas si keep-alive está trabajando:

* Connection #0 to host www.aptivate.org left intact 
* Closing connection #0 

Y si keep-alive no está funcionando, luego solo muestra esta línea:

* Closing connection #0 
0

Primero, intente capturar el tráfico hacia el targ et página web en Wireshark y limitarlo a lo que necesita con un filtro como:

tcp port 80 and host targetwebsite.com 

A continuación, cargue la página en un navegador o ir a buscar por cualquier herramienta que tenga. Si la página web objetivo se actualiza a sí misma o uno de los valores que contiene, déjela abierta hasta que tenga al menos un cambio en ella.

Ahora tiene suficientes datos y puede detener la captura del procedimiento en Wireshark.

Debería ver docenas de registros y su protocolo debería ser TCP o HTTP. Para el propósito de su verificación simple y rápida, no necesitará registros TCP. Entonces, permitámos eliminarlos aplicando otro filtro. En la parte superior de la ventana hay un campo "filtro". Escriba http allí, y wireshark ocultará todos los registros excepto aquellos que tengan un protocolo HTTP.

Ahora seleccione un registro y observe el siguiente nivel de detalles, que puede encontrar en la segunda casilla debajo de todos los registros. Solo para estar seguro de que estás mirando el lugar correcto, la primera línea comienza con "Frame XYZ". La cuarta línea comienza con "Protocolo de control de transmisión". Busque los números de puerto después de "Puerto SRC" y "Puerto DST:". Dependiendo del registro, uno de estos números pertenece al servidor web (típicamente 80) y el otro muestra el número de puerto en su extremo.

Ahora verifique un par de registros GET diferentes. Para saber si la solicitud es un registro GET, verifique la columna Información. Si los números de puerto en su extremo se usan varias veces, todas esas solicitudes se realizaron mediante HTTP keepalive.

Recuerde que la mayoría de los navegadores abrirán múltiples conexiones, incluso si el servidor web admite keepalive. Por lo tanto, NO concluya su evaluación encontrando solo un puerto diferente.

Cuestiones relacionadas