Hay dos tipos de proxies: proxy directo e inverso La respuesta de Cameron Hafer a ¿Cuál es la diferencia entre un proxy inverso y un proxy directo?
Según su pregunta, parece que necesitaría un proxy directo. Por lo tanto, escriba un programa que escuche las conexiones TCP en un puerto en particular.
- Una vez que un cliente se conecta a este programa en un socket y la lectura está lista, comience a leer los datos hasta el CR LF de la transmisión. Iterar a través de los bytes y construir encabezados HTTP.
- Dado que la parte de encabezados de la solicitud está lista, extraiga para encontrar si hay un encabezado de host. En caso afirmativo, realice una conexión con el servidor de destino y manténgala presionada hasta que lea el cuerpo de la solicitud http.
- Dado que la parte de encabezados de la solicitud está lista, extraiga para encontrar si hay un encabezado Content-Length. Esto indicará cuántos bytes del cuerpo debe leerse.
- Una vez realizada la lectura de los datos, escriba en la conexión del servidor de destino ya establecida. (no necesita analizar el cuerpo de la solicitud http, porque no está examinando / alterando los datos en el servidor proxy)
- La conexión del cliente a su programa aún se mantiene porque una vez que el servidor de destino responde, los datos deben volver a escribirse en la conexión del cliente
- Por lo tanto, compruebe si hay datos disponibles para leer en la conexión del servidor de destino. En caso afirmativo, léalos y escríbalo en la conexión del cliente.
Esta información es muy abstracta. A propósito no he incluido los escenarios HTTPS para que sea simple.
- Cómo vender servicios de desarrollo web por primera vez
- Cómo cargar la página con vista
- ¿Cuál es la mejor manera para que una persona no técnica cree un sitio web personal?
- ¿Cuánto tienen en común los marcos de Nodejs con respecto a los NodeJs simples? En otras palabras, si conoce un marco como Hapi, ¿significa que conoce Node?
- ¿Puedo poner un menú de wordpress como contenido de la página?