O proxy HTTP transparente normalmente tem pouco ou nenhum impacto nas sessões do usuário na minha experiência.
Sua estratégia e o que você realmente pretende realizar parece incerto para mim, no entanto. Eu acho que a realidade de como o HTTP funciona vai apresentar um problema para você. Talvez você possa falar mais sobre o que você realmente está tentando realizar a partir de uma perspectiva de resultado final. Não estou dizendo que é uma "ideia horrível", mas não está claro o que você espera ganhar. De uma perspectiva de protocolo HTTP, sua estratégia tem um grande problema. Seu firewall da camada 7 não pode saber, por definição, o tipo MIME de um recurso que está sendo solicitado até que a solicitação seja feita. Você pode fazer uma correspondência no nome do arquivo (ver se termina em ".html", etc), mas qualquer URL pode retornar um tipo MIME arbitrário. Este arquivo .b0rk é text/html
, mas uma regra de correspondência em seu firewall em .html
ou .htm
não "saberia" isso. A solicitação deve ser feita no servidor remoto e o servidor remoto deve responder antes que o tipo MIME seja conhecido.
Por que você acha que outros tipos de arquivos (CSS, Javascript, imagens, etc) são "estáticos"? Eles certamente não precisam ser. O objeto ao qual qualquer URL se refere pode ser "dinâmico".
Se você está preocupado com os custos de largura de banda, por que não apenas hospedar um proxy transparente localmente? Um proxy local não teria uma décima segunda latência para que as solicitações atingissem o proxy, e você não teria os possíveis custos de largura de banda associados ao envio de todos os seus dados de um datacenter de terceiros. Você também veria alguma melhora na sua utilização de largura de banda local quando o proxy armazena objetos em cache e você poderia deixá-los armazenar em cache tudo (que o cna).
Eu gerenciei uma rede educacional de mil lugares através de uma instância de cache do Squid em execução no hardware que, hoje, pareceria lamentável. A menos que você esteja falando sobre uma rede muito grande, uma máquina muito modesta poderia lidar com a carga para você. Se você está preocupado com um único ponto de falha, pode usar o Protocolo de Comunicação de Cache da Web (WCCP), se o seu dispositivo de borda suporta, para fazer failover entre um par de caches.
Se você está procurando fazer isso para escanear HTML em busca de código "malicioso", acho que você está olhando para trás. Eu ficaria mais preocupado com códigos maliciosos em JavaScript e application/octet-stream
de objetos do que sobre text/html
objects. Tenho dúvidas de que a digitalização, de qualquer forma, pode ser suficientemente ofuscada para escanear (veja o problema de Interrupção ). A menos que você esteja indo para a interceptação SSL, você também vai perder qualquer coisa entregue via HTTPS, também. A varredura pode capturar exploits conhecidos e eu a vejo como uma parte válida de uma arquitetura de segurança de TI, mas o dia 0 quase sempre vai passar.