Tengo que implementar un cliente HTTP en Java y, para mis necesidades, parece que la forma más eficiente de hacerlo es implementando una canalización HTTP (según RFC2616).HTTP 1.1 Pipelining
Como un aparte, quiero canalizar POST. (Tampoco me refiero a la multiplexación. Me refiero a la canalización, es decir, a muchas solicitudes sobre una conexión antes de recibir respuesta a lotes de solicitudes HTTP)
No pude encontrar una biblioteca de terceros que indique explícitamente que admite pipelining. Pero podría usar, por ejemplo, Apache HTTPCore para construir dicho cliente, o si tengo que hacerlo, compilarlo yo mismo.
El problema que tengo es si es una buena idea. No he encontrado ninguna referencia autorizada de que la canalización HTTP sea algo más que un modelo teórico y que los servidores HTTP la implementen correctamente. Además, todos los navegadores compatibles con la canalización tienen esta característica desactivada por defecto.
Por lo tanto, debería intentar implementar un cliente así o tendré muchos problemas debido a las implementaciones (o proxies) del servidor. ¿Hay alguna referencia que dé pautas sobre esto?
Si es una mala idea, ¿cuál sería el modelo de programación alternativo para la eficiencia? Separar las conexiones TCP?
No es exactamente lo que necesita, pero serf es una biblioteca de C que implementa HTTP pipelining http://code.google.com/p/serf/ Sin embargo, no estoy 100% seguro si admite publicaciones segmentadas. – Rup
Gracias, tengo que hacerlo en java – Cratylus
@ user384706 Nunca he probado serf, pero si de hecho hace lo que quiere y todo lo demás falla, entonces siempre puede probar JNI/JNA. – luiscubal