urg syn seguridad rst psh protocolo modelo funcionamiento fin capa banderas aplicacion http tcp jboss persistent

syn - Cada solicitud HTTP usa una conexión TCP separada



seguridad en el modelo tcp/ip (1)

Creo que he encontrado una solución a esto. Gracias por los consejos y las sugerencias. Realmente ayudaron.

Parte 1: utilicé el complemento HttpFox en Firefox para ver los encabezados de respuesta. Como sospechaba Philippe, el encabezado de Connection tenía un valor de "cerrar".

Parte 2: Agregar una línea de código en mi propio filtro para cambiar el encabezado de respuesta no ayudó. Así que descargué y agregué jbossWebService.jar al directorio WEB-INF / lib para usar la clase org.jboss.web.tomcat.filters.ReplyHeaderFilter. (Antes de JBoss 7, aparentemente este paquete solía incluirse en JBoss de forma predeterminada.) Agregué lo siguiente en mi web.xml:

<filter> <filter-name>CommonHeadersFilter</filter-name> <filter-class> org.jboss.web.tomcat.filters.ReplyHeaderFilter</filter-class> <init-param> <param-name>Connection</param-name> <param-value>keep-alive</param-value> </init-param> </filter>

Esto hizo el truco (bueno, casi). Ahora, el primer "clic" del navegador genera alrededor de 4 conexiones TCP: no estoy seguro del motivo de ese número, porque cada clic genera> = 7 solicitudes HTTP. Pero todos los clics posteriores, si se realizan dentro del período ttl (15 s), no generan conexiones TCP adicionales. Supongo que una investigación más exhaustiva, como lo sugirió Philippe, revelaría algo. Pero en este punto tengo que seguir adelante. Entonces, por el momento marcaré esta pregunta como respondida. Si es necesario en el futuro, lo volveré a abrir.

Observaciones:

  • Mi aplicación web se está ejecutando en JBoss.

  • Cada clic de usuario genera> 5 solicitudes HTTP debido a imágenes, etc.

  • La ejecución de netstat en el servidor revela que se está abriendo una nueva conexión TCP para cada solicitud HTTP (básicamente, estoy viendo el número total de conexiones TCP desde la IP del cliente en el puerto 80).

Hechos:

  • El protocolo HTTP de JBoss está configurado en 1.1.

  • Lo he comprobado con FF, IE9 y Chrome, y todos los navegadores hacen lo mismo.

  • Tengo dos entornos de prueba: uno que se ejecuta en Windows 7 y el otro que se ejecuta en CentOS. Veo el mismo comportamiento en ambos.

Lo que intento lograr

  • Conexión TCP persistente, porque con suerte eso a) mejoraría la experiencia del usuario yb) reduciría la carga en el servidor

En este momento, no estoy seguro de qué código, detalles de configuración o registro debo adjuntar a la pregunta, pero si me lo informa, se lo proporcionaré. Cualquier tipo de ayuda se agradece.

ps Este hilo parecía prometedor por el título de que la conexión TCP no se reutiliza para las solicitudes HTTP con HttpURLConnection , pero se trata principalmente del lado del cliente.