Entiendo que un proxy SOCKS solo establece una conexión en el nivel TCP mientras que un proxy HTTP interpreta el tráfico a nivel HTTP. Por lo tanto, un proxy SOCKS puede funcionar para cualquier tipo de protocolo, mientras que un proxy HTTP solo puede manejar el tráfico HTTP. ¿Pero por qué un Proxy HTTP como Squid puede soportar protocolos como IRC, FTP? Cuando utilizamos un Proxy HTTP para una conexión IRC o FTP, ¿qué sucede específicamente? ¿Hay algún metadato agregado al paquete cuando se envía al proxy a través del protocolo HTTP?¿Por qué los proxies HTTP pueden admitir protocolos como IRC y FTP?
Respuesta
proxy HTTP es capaz de soportar los protocolos de alto nivel que no sea HTTP si es compatible con el método CONNECT, que se utiliza principalmente para conexiones HTTPS, aquí está la descripción de la wiki de calamar:
El método CONNECT es una manera de tunelizar cualquier tipo de conexión a través de un proxy HTTP. De forma predeterminada, el proxy establece una conexión TCP con el servidor especificado, responde con una respuesta HTTP 200 (Conexión establecida) y luego intercambia paquetes entre el cliente y el servidor, sin entender o interpretar el tráfico tunelizado
Si el software de cliente es compatible con la conexión a través de HTTP CONNECT' habilitado (HTTPS) proxy' puede ser cualquier protocolo de alto nivel que se puede trabajar con un proxy tales (VPN, SSH, SQL, control de versiones, etc.)
Como otros han mencionado, el método "HTTP CONNECT" le permite establecer cualquier conexión basada en TCP a través de un proxy. Esta funcionalidad es necesaria principalmente para las conexiones HTTPS, ya que para las conexiones HTTPS, la solicitud HTTP completa está encriptada (por lo que le parece al proxy una conexión TCP "sin sentido"). En otras palabras, una sesión HTTPS sobre un proxy, o una sesión SSH/FTPS sobre un proxy, ambas aparecerán como "sesiones cifradas" para el proxy, y no podrá distinguirlas, por lo que tiene que permitirles a todos o ninguno de ellos.
Durante el funcionamiento normal, el proxy HTTP recibe la solicitud HTTP, y es "lo suficientemente inteligente" para comprender la solicitud para poder hacer cosas de alto nivel con ella (por ejemplo, buscar su caché para ver si puede servir la respuesta sin ir al servidor de destino o consultar una lista blanca/lista negra para ver si esta URL está permitida, etc.). En el modo "CONECTAR", nada de esto sucede. El proxy establece una conexión TCP con el servidor de destino y simplemente reenvía todo el tráfico desde el cliente al servidor de destino y todo el tráfico desde el servidor de destino al cliente. Eso significa que cualquier protocolo TCP puede funcionar (HTTPS, SSH, FTP, incluso HTTP simple)
- 1. ¿Puede IIS Express admitir proxies inversos?
- 2. ¿Por qué los protocolos Objective-c adoptan otros protocolos?
- 3. Proxies en la aplicación FTP de Python
- 4. ¿Pueden los protocolos SVN y HTTP usarse de manera segura en el mismo repositorio simultáneamente?
- 5. ¿Qué son los Proxies WCF y para qué sirven?
- 6. ¿Por qué no admitir si y cuándo admitir enlaces múltiples de forma predeterminada?
- 7. Comparación de HTTP y FTP para transferir archivos
- 8. PHP y proxies rotativos
- 9. ¿Por qué la web necesita HTTP?
- 10. HTTP vs carga de FTP
- 11. Otros protocolos comunes además de HTTP?
- 12. ¿Pueden las imágenes jpg admitir animación?
- 13. Ejemplos de REST sobre protocolos que no son HTTP
- 14. PowerShell, Solicitudes web y Proxies
- 15. ¿Se pueden heredar los protocolos y las categorías de Objective-C?
- 16. ¿Pueden coexistir multiparte y fragmentación HTTP?
- 17. Diferencia entre los protocolos FIX y FAST?
- 18. ¿Pueden los encabezados HTTP ser demasiado grandes para los navegadores?
- 19. proxies dinámicos con jmx pueden causar fugas de hilo?
- 20. Protocolos y delegados para Dummies
- 21. ¿Por qué mi bot IRC no se conecta?
- 22. protocolos binarios v. Protocolos de texto
- 23. ¿Por qué los nombres de usuario no se pueden cambiar?
- 24. ¿Por qué no se pueden inferir los tipos genéricos anidados?
- 25. ¿Por qué los nulables no pueden declararse const?
- 26. Protocolos utilizados por las bolsas de valores
- 27. Carga de archivos FTP con HTTP Proxy
- 28. NHibernate: no se pueden obtener los proxies mediante un mensaje de error de sesión sin estado
- 29. ¿Por qué no se pueden sincronizar los constructores de Java?
- 30. ¿Los selectores de CSS no pueden coincidir con los valores numéricos de los atributos? ¿por qué?
He leído las respuestas, pero todavía no está tan claro ... ¿Puede alguien explicar esto un poco más simplemente ... gracias! – eRaisedToX
Básicamente, el proxy HTTP espera a que el lado del cliente envíe una solicitud http con un método de conexión, para permitir que el proxy HTTP acepte la contraseña de inicio de sesión, el proxy http solo puede responder 200 o responder otras cosas. De modo que el proxy http puede responder adecuadamente para informar al cliente que puede convertirse en otro tipo de proxy. – for1096