protocolo example español http proxy http-proxy

example - ¿Cómo un proxy HTTP utiliza el protocolo HTTP? un Proxy RFC?



rfc http (3)

¿Cómo se puede implementar un proxy HTTP en comparación con la implementación de un servidor web HTTP, cuáles son las diferencias? ¿Existe una guía definitiva o RFC o un libro útil sobre este tema?


El encabezado enviado a un proxy es diferente.

Por ejemplo, esto es lo que Google Chrome envía a www.baidu.com a través de un servidor proxy:

GET http://www.baidu.com/ HTTP/1.1 Host: www.baidu.com Proxy-Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 DNT: 1 Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8

Podemos ver que es

GET http://www.baidu.com/ HTTP/1.1

en lugar de

GET / HTTP/1.1

y aqui esta

Proxy-Connection: keep-alive

además

Host: www.baidu.com

El campo host es obligatorio para el proxy http.

Para el proxy de túnel HTTPS:

CONNECT comet.zhihu.com:443 HTTP/1.1 Host: comet.zhihu.com:443 Proxy-Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Podemos ver

CONNECT comet.zhihu.com:443 HTTP/1.1

domain:443 lugar de https://domain .

El campo CONECTAR convierte el servidor proxy en algo así como un túnel TCP, luego el protocolo HTTPS es reemplazado por el puerto :443

Para el proxy socks5, las cosas se vuelven fáciles, porque a socks5 no le importa el protocolo más alto, solo le dices host y puerto.



Un proxy es muy similar a un servidor; la única diferencia es que, después de analizar la solicitud, simplemente la reenvía y devuelve el resultado *, en lugar de procesar la solicitud en sí. Debido a que el proxy no tiene que hacer la misma cantidad de procesamiento que un servidor normal, a menudo puede obtener un análisis de las solicitudes mucho más mínimo que un servidor completo, pero de lo contrario es la misma idea.

* Algunos proxies implementan almacenamiento en caché adicional. Algunos también lo hacen con la respuesta / solicitud, pero ese es el tipo de proxy malvado, que ojalá no tengas en mente.