2009-09-26 24 views
18

He leído sobre "HTTP persistent connection", pero de alguna manera no parece entender qué significa persistente en este contexto.
¿Podrías dar más detalles?¿Qué significa exactamente una "conexión persistente"?

+2

Lo que Caos significa es que la conexión entre el cliente y el servidor no se cierra después del intercambio de información, dejándolo abierto para una mayor comunicación. Esto es mucho más rápido que establecer una nueva conexión cada vez que necesita transmitir información. – NTDLS

Respuesta

18

Toda la discusión hasta ahora ha sido del lado del navegador. El navegador primero solicita la página real, analiza la página y descubre todos los demás recursos que necesita antes de poder representar esa página. El navegador solicita estos recursos y otros recursos dependientes uno por uno. Por lo tanto, mantener una conexión persistente es muy eficiente aquí, ya que se evita la sobrecarga de crear y destruir conexiones.

Ahora, desde el lado del servidor web, una conexión persistente sería aquella que le permite "enviar" contenido al navegador web. Ahora HTTP no es compatible con esto. Por lo tanto, hay algunas soluciones con JavaScript donde la página se actualiza básicamente después de un tiempo.

Puede ver que este truco está siendo utilizado por muchos proveedores de correo electrónico basados ​​en la web que continuamente controlan en segundo plano los correos nuevos. Esto da la sensación de que cuando llega un nuevo correo, el servidor "empuja" la nueva notificación de correo al navegador web. Pero, de hecho, es en realidad el navegador web que sigue revisando el servidor en busca de nuevos correos.

Otro punto que me gustaría mencionar es que en realidad no vemos ninguna actualización de página debido a otro truco que permite que solo partes específicas de la página se actualicen con la solicitud. (SUGERENCIA: AJAX)

+0

¡Respuesta muy informativa! –

+1

Si mantengo abierta una conexión con un servidor web, ¿el navegador mostrará continuamente una barra de carga? –

+1

Un navegador web solo mostrará una barra de carga, si realmente solicita algo. Si la conexión está abierta o no, no debe reflejarse en la interfaz de usuario del navegador. – Trainee4Life

28

Significa que el servidor no cierra el socket una vez que termina de enviar la respuesta (por lo que la duración de la respuesta debe indicarse, mediante encabezados o fragmentación), para que el cliente pueda realizar otras solicitudes en el mismo enchufe. Una página web a menudo solicita varias otras piezas (imágenes, CSS, scripts, ...) en el mismo servidor que la página, por lo que reutilizar el socket para algunas de esas solicitudes adicionales al mismo servidor puede reducir la latencia total en comparación con el cierre del toma original y apertura de nuevas para todas las solicitudes de seguimiento.

+1

Como darkassassin93 ha declarado que la conexión se extinguirá en caso de out.close() en un servlet. En este caso, ¿cómo podríamos implementar la conexión persistente HTTP en un servidor Java Tomcat? ¿O tendremos que usar herramientas de terceros para implementar esto? Otra pregunta es ¿qué pasa con el lado del cliente? –

+2

@Kevin, no tiene control sobre el navegador ("lado del cliente"): establecerá sus propias políticas (puede esperar que admita "mantenerse con vida"; la mayoría lo hace). Volviendo a llamar a '.close', creo que se cierra la conexión (ese es su propósito específico) así que la forma de (afortunadamente, cooperar con el navegador) NO cerrar la conexión es NO llamar' cerrar' - puede no ser suficiente, pero es seguramente necesario. –

1

Creo que se trata de un cambio de http o https para el navegador del sitio web. Si tiene https: // antiguo y ahora está usando http para el archivo .htaccess del navegador, este problema debería crearse a través de complementos de yugast una página de rastreo de página. no te preocupes, no es un error importante. Para los piratas informáticos esta es una forma de piratear su sitio web si su conexión ssl está vacía. Deberían adjuntar allí su dominio o dominio a su conexión ssl e.b http://www.example.com y cuando usted presiona https://www.example.com en el navegador, hay algún otro enlace para abrir el dominio de su sitio.

Solución para esto siempre use su dirección completa para el sitio web: para proteger a los piratas informáticos contra su sitio web, use ssl y https:/página para su sitio web.

Entonces este problema nunca tiene una escena en ningún sitio o página de prueba.

Cuestiones relacionadas