Existem muitos tipos de servidores proxy. Esses tipos podem ser agrupados por protocolo, número de usuários ativos (proxies compartilhados, proxies privados, e procuradores virgens), o tipo de endereço IP atribuído (proxies públicos ou gratuitos, proxies residenciais, proxies móveis, e proxies de data center) e a versão IP (Proxies IPv4 e IPv6). Este artigo, entretanto, focará nos proxies HTTP e HTTPS, que se enquadram na categoria proxy por protocolo.
Mas primeiro, vamos discutir os protocolos nos quais os proxies HTTP e os proxies HTTPS são baseados.
Compreendendo HTTP e HTTPS
O que é HTTP?
O Protocolo de Transferência de Hipertexto ou HTTP é um protocolo sem estado em nível de aplicativo que facilita a comunicação entre aplicativos clientes (como navegadores e aplicativos da Web) e servidores da Web (ou servidores de interface do usuário da Web).
É um protocolo da camada 7 (ou protocolo da camada de aplicação), o que significa que se destina a transmitir dados entre o servidor e o cliente e vice-versa. O HTTP geralmente suporta a transmissão de vários tipos de dados. Isso inclui dados de texto, vídeo e áudio, conhecidos coletivamente como hipermídia.
Quando um cliente deseja acessar esses dados, que estão armazenados em um servidor, ele envia uma solicitação HTTP. Geralmente, a solicitação HTTP contém o seguinte:
- Uma linha de solicitação que especifica o método HTTP (GET, POST, PUT, DELETE e assim por diante), a versão HTTP (abaixo) e informações adicionais sobre o destino da solicitação (nome do host e porta)
- Cabeçalhos, que armazenam informações adicionais, por exemplo, cookies
- Corpo da mensagem de solicitação
Ao receber a solicitação e interpretar a mensagem, o servidor envia então uma resposta HTTP contendo os dados solicitados.
Como funciona o HTTP?
Vale ressaltar que o HTTP não desempenha suas funções de forma isolada. Na verdade, ele funciona em cima protocolos da camada de transporte (camada 4), como protocolo de Controle de Transmissão (TCP) e Protocolo de datagrama de usuário (UDP). Além disso, também foi construído sobre o protocolo IP, que existia na época.
Por sua vez, esses protocolos da camada 4 estabelecem, gerenciam e estreitam a comunicação entre um servidor e um cliente (dispositivos em rede). Simplificando, o TCP e o UDP permitem que aplicativos de rede, localizados acima da quarta camada (incluindo aplicativos que usam HTTP), criem comunicação cliente-servidor ou ponto a ponto entre si.
Uma vez estabelecida a comunicação, o HTTP entra em ação para transmitir os dados. O TCP ou UDP gerencia a comunicação garantindo que ela funcione sem problemas e, uma vez interrompida a transmissão de dados, esses protocolos da camada 4 encerram a comunicação. Notavelmente, o TCP e o UDP usam números de porta para identificar as aplicações web que estão “conversando” entre si. Outro ponto digno de nota é que a implementação do HTTP/3, a versão mais recente, usa QUIC em vez de TCP para o aspecto da comunicação da camada de transporte. (RÁPIDO é um protocolo de transporte multiplexado implementado em UDP.)
História do HTTP
O HTTP foi lançado pela primeira vez em 1991, após cerca de dois anos de desenvolvimento por Tim Berners-Lee e sua equipe. Desde então, o protocolo passou por uma evolução que passou por inúmeras mudanças e melhorias, levando a diversas versões HTTP. Essas versões incluem:
- HTTP/0.9 (introduzido em 1991)
- HTTP/1.0 (padronizado em 1996)
- HTTP/1.1 (introduzido e padronizado em 1997)
- HTTP/2 (padronizado em 2015)
- HTTP/3 (introduzido em 2022)
O que é HTTPS?
Embora o HTTP seja um protocolo popular amplamente utilizado na Internet, ele apresenta algumas deficiências, entre as quais a segurança. Com HTTP, todas as informações são transmitidas em texto não criptografado. Pode, portanto, ser facilmente visualizado pelos invasores. Na verdade, pode ser preocupante se os dados contiverem dados confidenciais, como informações de cartão de crédito, senhas, nomes de usuário, números de telefone, números de previdência social, detalhes de endereço e muito mais. Para resolver o enigma da segurança, o HTTPS foi introduzido.
Hypertext Transfer Protocol Secure (HTTPS) é um protocolo HTTP seguro que criptografa todos os dados transmitidos via HTTP. HTTPS usa o protocolo Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) para validar a identidade do servidor web e proteger os dados. O SSL usa chaves (chaves públicas e privadas) e certificados digitais para proteger os dados, enquanto o TLS depende da criptografia para criptografar os dados. O TLS também autentica o cliente e o servidor.
História do HTTPS
O HTTPS foi criado em 1994. Naquela época, ele usava principalmente SSL. No entanto, no final de 2000, o HTTPS que usa TLS foi padronizado. Segundo os observadores, demorou anos para que o TLS se tornasse amplamente utilizado fora dos pagamentos com cartão de crédito. Isso ocorre principalmente porque os certificados TLS exigem conhecimento técnico adicional para serem instalados e custam dinheiro. Como resultado, não eram viáveis, especialmente para locais mais pequenos. Mas o cenário mudou, com serviços de hospedagem na web e empresas de nuvem lançando programas gratuitos de certificados de criptografia e oferecendo HTTPS gratuitamente. Em 2017, metade da web foi criptografada.
Com o básico resolvido, vamos agora nos concentrar no que é um proxy HTTP e no que é um proxy HTTPS, suas semelhanças e diferenças e seus usos.
O que é um proxy HTTP?
Antes de explicar o que é um proxy HTTP, vamos primeiro entender o que é um servidor proxy. Um servidor proxy ou proxy é um intermediário que fica entre um cliente web e um servidor web. Ele funciona encaminhando o tráfego da Internet através de si mesmo e, no processo, atua como originador de solicitações e finalizador de respostas. Geralmente, há vários servidores proxy, cada um projetado para cumprir uma função específica.
Na verdade, existem proxies configurados para agir em nome do cliente de forma que sejam percebidos como originadores de solicitações e finalizadores de respostas. Esses proxies são conhecidos como proxies diretos. Por outro lado, alguns proxies podem ser configurados para atuar em nome do servidor. Ao executar esta função, eles parecem ser o ponto em que as solicitações terminam e as respostas se originam. Esses proxies são conhecidos como proxies reversos. Aliás, os proxies HTTP podem atuar como proxies de encaminhamento ou proxies reversos, dependendo do local em que a configuração ocorre.
Então, o que é um servidor proxy HTTP? É um servidor proxy que roteia apenas o tráfego HTTP através de si mesmo. O proxy HTTP é um tipo de proxy baseado em protocolo junto com Proxies SOCKS5. No entanto, ao contrário do proxy SOCKS5, que visa essencialmente facilitar a comunicação através de um firewall, o proxy HTTP pretende atuar como um filtro de conteúdo de alto desempenho.
O proxy HTTP normalmente escuta o tráfego HTTP através das portas 80, 8080, 8008 e 3128. Ele também pode escutar o tráfego HTTPS via porta 3129. Embora seja usado principalmente de forma isolada, você pode conectá-lo a um proxy existente, principalmente se o aplicativo que você está configurando já estiver usando um servidor proxy. Esse arranjo cria um proxy encadeado.
Tipos de proxies HTTP
Existem dois tipos de proxies HTTP, a saber:
1. Proxy de cliente HTTP
Normalmente, um proxy de cliente HTTP encaminha solicitações para si mesmo (como intermediário) antes de encaminhá-las para um servidor ou destino de destino. Ela aparece, portanto, como originadora dos pedidos.
Um proxy de cliente HTTP roteia todas as solicitações HTTP de saída e respostas HTTP de entrada através dele mesmo. No processo, ele interpreta todo o conteúdo da solicitação e resposta HTTP. Ele também pode alterar determinados conteúdos da solicitação HTTP, desde que estejam em conformidade com o Diretrizes para Proxies de Transformação de Conteúdo da Web. Geralmente, os proxies do cliente HTTP alteram cabeçalhos HTTP específicos, incluindo agente do usuário, aceitar, aceitar-charset, aceitar-codificação, aceitar-linguagem, x-forwarded-for e via. Também pode converter o método de solicitação de HEAD para GET e vice-versa.
Configurar seu sistema e, por extensão, seu navegador da web para usar um proxy de cliente HTTP (mais sobre isso abaixo) faz algumas coisas. Primeiro, ele altera o endpoint TCP (porta e nome do host) nas URLs HTTP para aquele que pertence ao provedor de proxy HTTP. Como resultado, uma conexão TCP é feita primeiro para uma porta e host diferentes (a porta e o host do proxy) diferentes daqueles nas URLs HTTP antes de ser enviada para o host e a porta originais/reais. Isso ocorre porque o proxy não altera o conteúdo da mensagem, que contém o host e a porta reais. Como resultado, um proxy HTTP pode receber solicitações em uma única porta antes de encaminhar as solicitações e as mensagens contidas nela para diferentes servidores e sites com base nos dados de destino contidos nas mensagens HTTP.
2. Proxy do servidor HTTP
Em alguns casos, alguns aplicativos, como aqueles encontrados em um servidor web, não podem ser configurados como originadores e, em vez disso, precisam ser configurados como terminais. Como resultado, eles aparecem para os clientes web como o destino das solicitações. Quando esses aplicativos são configurados como terminais, eles são conhecidos como proxies de servidor HTTP.
Tipos de proxies HTTP classificados por anonimato
Os proxies HTTP diferem no grau de anonimato. Os seguintes tipos de proxies HTTP podem ser distinguidos:
- Proxies transparentes: Com proxies transparentes, o usuário geralmente não percebe que está usando uma conexão proxy. A conexão proxy só é visível para o operador do site ou provedor de serviços. A principal vantagem dos proxies transparentes é que eles aumentam a velocidade da conexão armazenando dados em cache.
- Proxies anônimos: Com proxies anônimos, seu endereço IP fica oculto. Nesse caso, o site de destino pode ver que você está usando um proxy, mas não o seu endereço IP real.
- Distorcendo proxies: um servidor proxy desse tipo pode ser identificado como proxy por um site de destino, mas comunicará um endereço IP incorreto.
- Proxies de elite: são proxies anônimos que excluem os dados do usuário antes que o proxy tente se conectar ao site de destino. Com esses tipos de proxies, o site de destino não consegue detectar que um proxy está sendo usado, nem consegue identificar o endereço IP do usuário.
Todos respeitáveis provedores de proxy que possuem proxies HTTP oferecem apenas proxies elite.
Como configurar um proxy HTTP
Esta seção se concentrará principalmente em como criar um proxy de cliente HTTP. Ele é criado configurando um cliente web (navegador) para rotear o tráfego HTTP através de um intermediário. No entanto, vale a pena notar que cromada, Safári, Mozilla Firefoxe outros navegadores populares não possuem configurações de servidor proxy no aplicativo (nativo).
Em vez disso, quando você clica nas configurações do programa e escolhe a opção de proxy, ele o redireciona para a janela de configuração de proxy do Windows, macOS ou Linux. Neste sentido, para criar um proxy HTTP, basta configurar o seu sistema operacional. Isso criará um proxy HTTP para todo o sistema que funciona com todos os outros aplicativos da web, não apenas com o seu navegador preferido.
Para configurar um proxy HTTP no Windows, siga o procedimento abaixo:
- Abra a janela' Configurações > Selecione Rede e Internet > Escolha o Proxy aba. Alternativamente, você pode usar seu navegador para abrir a guia Proxy.
- Vá para o Configuração manual de proxy seção
- No campo de endereço, insira o IP ou endereço do host proxy. Além disso, insira a porta proxy. Seu provedor de proxy deve fornecer os detalhes.
- Na caixa 'Usar o servidor proxy, exceto para endereços que começam com as seguintes entradas', insira o URL do seu provedor de serviços de proxy
- A seguir, verifique o Não use o servidor proxy para endereços locais (intranet)
- Clique Salvar
Para configurar um proxy HTTP no macOS, aqui estão as etapas a seguir:
- Clique Preferências do Sistema > Escolha Rede > Clique em Avançado > Selecione o Proxies aba. Alternativamente, você pode usar seu cliente web, que abrirá automaticamente o Proxies aba
- Em seguida, alterne o Proxy da Web (HTTP) opção
- Digite o IP e a porta do Proxy de servidor web (Proxy HTTP). Normalmente, você deve inserir o IP do seu provedor de serviços de proxy e as portas 80, 8080 ou 8008 no campo.
- Digite o nome de usuário e a senha do proxy HTTP. O nome de usuário e a senha devem ser iguais às credenciais que você usa para acessar a conta que possui com seu provedor de serviços.
- Clique OK.
Se a segurança for uma consideração central ao navegar na web, o proxy HTTP não é o ideal. O ideal é que você procure um proxy HTTPS.
O que é um proxy HTTPS?
Também conhecido como proxy SSL, um proxy HTTPS é um intermediário que escuta apenas o tráfego HTTPS na porta 443. Como resultado, ele roteia apenas o tráfego HTTPS através de si mesmo. Conforme afirmado acima, HTTPS criptografa os dados transmitidos através do protocolo. Isso significa efetivamente que todos os elementos das solicitações e respostas HTTP, incluindo os cabeçalhos e as mensagens, estão ocultos atrás de uma chave criptográfica. Portanto, eles só podem ser visualizados ou interpretados no ponto final ou ponto de terminação. Para que um intermediário, como um proxy HTTPS, interprete os dados, ele deve ser configurado como um terminal.
Nesse sentido, um proxy HTTPS é configurado para atuar como ponto final de uma conexão TLS ou SSL. Ele, portanto, descriptografa as solicitações, interpreta o conteúdo, altera determinados aspectos das solicitações, criptografa-as e, por fim, encaminha-as para o destino real contido na mensagem HTTP. Conforme afirmado anteriormente, o protocolo HTTPS usa certificados. Conseqüentemente, o proxy HTTPS deve criptografar o tráfego com o certificado correto (certificado de cliente ou servidor) antes de enviá-lo ao destino pretendido. Notavelmente, se o proxy HTTPS não estiver configurado como um endpoint, ele não deverá alterar o conteúdo do cabeçalho ou solicitação HTTP, conforme estipulado pelas Diretrizes para Proxies de Transformação de Conteúdo da Web.
Os proxies HTTPS geralmente são usados para proteger servidores ou clientes da Web, realizando criptografia.
Tipos de proxy HTTPS
Existem dois tipos de proxies HTTPS:
1. Proxy de cliente HTTPS
Um proxy de cliente HTTPS facilita conexões de um cliente web ou rede interna com a Internet. Para configurar um proxy de cliente HTTPS, você deve importar um certificado de cliente para uso pelo dispositivo no qual o proxy está instalado. Isso permite que o intermediário descriptografe e criptografe os dados como se fosse o originador das solicitações ou o finalizador das respostas.
2. Proxy de servidor HTTPS
Um proxy de servidor HTTPS permite conexões de clientes web externos a servidores web internos através da Internet. Um proxy de servidor HTTPS difere de um proxy de servidor HTTP porque o primeiro utiliza certificados, enquanto o último não. Para configurar um proxy de servidor HTTPS, é importante exportar o certificado padrão usado pelo seu servidor web para o proxy. O certificado permite que o proxy do servidor HTTPS criptografe e descriptografe os dados.
Como configurar um proxy HTTPS
A configuração de um proxy HTTPS segue os procedimentos detalhados acima, com apenas pequenas diferenças em torno das portas usadas. Sempre certifique-se de inserir 443 no campo da porta sempre que estiver criando um proxy HTTPS. Se você estiver usando um dispositivo macOS, observe que você deve selecionar o Proxy da Web Seguro (HTTPS) opção em vez de Proxy da Web (HTTP). Caso contrário, o procedimento é basicamente o mesmo.
Quão segura é uma conexão por meio de um proxy HTTPS?
Quando um usuário usando um proxy HTTPS abre uma página da web com um “ícone de cadeado” à esquerda da barra de endereço, toda a conexão entre o navegador do usuário e o servidor do site de destino é criptografada (criptografia SSL):
Isso significa que todos os dados inseridos pelo usuário no teclado (logins e senhas, números de cartão de crédito, etc.), imagens e vídeos baixados, carregados ou transmitidos permanecem absolutamente privados.
Navegador <-> HTTPS-Proxy <-> Página de destino
Isso significa que eles são conhecidos apenas pelo usuário e pelo proprietário do site de destino.
O serviço proxy pode “ouvir” o tráfego?
Não, isso é tecnicamente impossível. O provedor de proxy só pode adivinhar que o usuário está tentando hackear senhas de contas em qualquer site. Isso fica evidente pela frequência de acesso à página de login do site de destino. Isso ocorrerá se o usuário fizer isso com uma frequência de um milhão de vezes por minuto usando um programa de força bruta.
Proxies HTTP vs. Proxies HTTPS: Semelhanças e Diferenças
Semelhanças entre proxies HTTP e HTTPS
- Eles podem ser configurados no lado do cliente ou no lado do servidor
- Os proxies HTTP e HTTPS interpretam os dados transmitidos por meio deles
- Os proxies escutam o tráfego através das portas
- Os proxies do lado do cliente encaminham todas as solicitações para o destino alvo
- Proxies do lado do cliente podem ser usados para facilitar web scraping
Diferenças entre proxies HTTP e HTTPS
Proxies HTTP | Proxies HTTPS | |
Portas | Eles usam as portas 80, 8080, 8008, 3128 ou 3129 | Eles usam a porta 443 |
Segurança | Proxies HTTP roteiam dados não criptografados | Proxies HTTPS roteiam dados criptografados |
Protocolo | Eles usam principalmente o protocolo HTTP | Eles usam principalmente o protocolo HTTPS |
Tráfego | Eles podem ouvir tráfego HTTP (via portas 80, 8080, 8008, 3128) e HTTPS (via porta 3129) | Eles só podem ouvir o tráfego HTTPS através da porta 443 |
Usos de proxies HTTP e HTTPS
Usos de proxies de cliente HTTP e proxies de cliente HTTPS
1. Raspagem da web
Raspagem da web refere-se ao processo automatizado de extração de dados de sites usando bots conhecidos como web scrapers. Normalmente, esses bots são projetados para extrair grandes volumes de dados, o que pode sobrecarregar os servidores web ao usurpar recursos desnecessariamente. Por esta razão, a maioria dos grandes websites estão agora a implementar medidas anti-scraping destinadas a impedir quaisquer esforços de extracção de dados. Felizmente, você pode contornar esse problema usando proxies HTTP.
Os proxies HTTP são geralmente esquecidos quando se trata de extração de dados. Isso ocorre porque proxies residenciais, proxies móveis ou proxies de data center são preferidos, pois mascaram o endereço IP do computador no qual o scraper está sendo executado. Ele atribui simultaneamente um endereço IP diferente, proporcionando efetivamente anonimato online. Além disso, protege o endereço IP real contra bloqueio ou banimento. Se o endereço IP for alternado periodicamente, as chances de bloqueio serão ainda mais reduzidas. Mas este artigo não trata de proxies residenciais ou de data center. Então, como os proxies HTTP e HTTPS são usados no web scraping?
Conforme declarado, um proxy HTTP ou HTTPS pode alterar alguns cabeçalhos de solicitação HTTP. Isso inclui o agente do usuário, a linguagem de aceitação, a codificação de aceitação e a aceitação, apenas para mencionar alguns. O agente do usuário armazena informações sobre seu sistema operacional (tipo e versão), o aplicativo cliente em uso (navegador da web) e o mecanismo do navegador. Essas informações permitem que um servidor web identifique o tipo de dispositivo e software usado para acessá-lo. Em seguida, usa essas informações para criar uma identidade online associada ao usuário. Ao alterar o agente do usuário, um proxy HTTP e um proxy HTTPS podem fazer parecer que as solicitações são originadas de dispositivos diferentes. Isso aumenta a web scraping, pois as solicitações de extração de dados parecem ter sido enviadas por vários dispositivos.
2. Filtragem de conteúdo
Um proxy de cliente HTTP ou proxy de cliente HTTPS pode ser configurado para encaminhar apenas solicitações específicas – tais solicitações devem cumprir certas regras. Por exemplo, eles devem ser enviados através de portas específicas. O acesso será negado se o cliente HTTP usar uma porta diferente de 80, 8080, 8008, 3128 ou 3129.
Além disso, você deve especificar os tipos de conteúdo que o proxy HTTPS ou HTTP deve examinar ao examinar o tráfego de e para um cliente. O tráfego é bloqueado se o conteúdo não corresponder aos critérios especificados nas configurações. Por outro lado, se o conteúdo corresponder, ele poderá passar pelo intermediário.
3. Protegendo a comunicação
Um proxy HTTP pode ser configurado para converter os dados de entrada de texto simples em dados de saída criptografados e seguros que podem ser aceitos por servidores HTTPS. No entanto, esta configuração é incomum, mas envolve o uso da porta 3130, que é a porta que trata de texto simples para comunicação SSL.
Por outro lado, os proxies HTTPS protegem a comunicação criptografando-a. Dessa forma, os proxies HTTPS promovem a segurança cibernética, pois reduzem as chances de ataques cibernéticos.
4. Gerenciamento de mídias sociais
Até agora, é de conhecimento comum que os proxies HTTP modificam alguns aspectos do cabeçalho HTTP. Assim, ao alterar o agente-usuário, esses intermediários podem criar a ilusão de que as solicitações são originadas de dispositivos diferentes. Isso pode permitir que os usuários criem e gerenciem várias contas de mídia social.
Usos de proxies de servidor HTTP e proxies de servidor HTTPS
1. Limitando o tráfego para o servidor Web
Os proxies do lado do servidor podem ser configurados para aceitar tráfego que atenda a determinadas regras. Como tal, eles bloqueiam o tráfego que não está em conformidade com os requisitos. Dessa forma, protegem o servidor garantindo que ele não processe solicitações desnecessárias.
2. Protegendo o servidor web
Os proxies do lado do servidor podem descriptografar os dados dos clientes da web e posteriormente interpretá-los. Esta ação permite filtrar as solicitações, verificando-as em busca de malware ou outros arquivos maliciosos. Como resultado, eles protegem o servidor web contra ataques cibernéticos.
3. Cache de arquivos acessados com frequência
Os proxies de servidor HTTP e os proxies de servidor HTTPS podem armazenar arquivos acessados com frequência, como imagens e páginas. Isso libera o servidor web, permitindo-lhe dedicar recursos para outras operações menos comuns. Também aumenta a velocidade de carregamento das páginas da web.
Conclusão
Os proxies HTTP e os proxies HTTPS são intermediários úteis, principalmente do ponto de vista da segurança e da filtragem de conteúdo. Na verdade, eles são chamados de filtros de conteúdo de alto desempenho. Isso ocorre porque eles podem ser configurados para permitir a passagem apenas de tráfego específico da Internet. Esses proxies também atendem a inúmeras outras funções, incluindo proteção de servidores web, armazenamento de arquivos acessados com frequência, gerenciamento de mídia social, web scraping e muito mais.