Estoy tratando de entender las conexiones tcp entre un navegador y un servidor web. Tengo un servidor web ejecutándose en mi máquina local, y puedo navegar perfectamente, como era de esperar, usando localhost: 3000 o 127.0.0.1:3000. (Estoy ejecutando "rails s" y WEBrick.)¿Por qué es necesario "fork" por socat cuando se conecta a un servidor web?
Quería poner un intermediario de software entre el navegador y el servidor web, y así comencé a experimentar con socat. Lo siguiente funciona bien:
socat TCP-LISTEN:8080,fork TCP:localhost:3000
Puedo navegar a localhost: 8080 y todo funciona como se esperaba. Sin embargo, si omite el argumento "tenedor" como tal,
socat TCP-LISTEN:8080 TCP:localhost:3000
el sitio web local rieles está bastante roto mirando en el navegador.
¿Por qué es necesario ese argumento de la horquilla? ¿Por qué un navegador < -> conexión de servidor web no funcionaría sin él?
Muchas gracias Celada. Eso tiene buen sentido. – user691307
Lo que en realidad estoy tratando de hacer es escribir mi propio programa "intermedio" entre un navegador y un servidor web. Abre una conexión TCP del cliente al servidor web y un servidor TCP "escuchado" en otro puerto. El navegador abre una conexión de cliente al puerto de escucha. Entonces en el lado del navegador, hay una secuencia de múltiples sesiones TCP que se abren y cierran. Pero en el lado del servidor web, solo hay una conexión TCP establecida. Eso falla Estoy pensando que mi intermediario homebrew podría cerrar y volver a abrir la conexión del servidor web cada vez que un cliente inicie y detenga una conexión de tcp. ¿suena bien? – user691307
Suena bien, y también es lo más simple de hacer. Su código abre una nueva conexión con el servidor cada vez que lo hace el agente de usuario HTTP y también los cierra al mismo tiempo. Eso es mucho menos trabajo que interpretar los contenidos de las solicitudes HTTP para averiguar cuándo podría o no ser capaz de ajustar los contenidos para agregar varias conexiones del cliente en una conexión hacia el servidor. ¡De esa forma se encuentra la implementación de un servidor proxy HTTP completo! – Celada