Código de status HTTP · Redirecionamento (3xx)
305 Use Proxy
O status 305 Use Proxy mandava o cliente repetir o pedido pelo proxy indicado no cabeçalho Location. Ele está obsoleto e os navegadores o ignoram; se aparecer hoje, foi enviado por um servidor muito antigo, um equipamento de rede ou um middleware feito à mão.
| Classe | 3xx, Redirecionamento |
|---|---|
| Definido em | RFC 9110 §15.4.6 |
| Pode ir para o cache por padrão | Só com Cache-Control ou Expires explícitos |
| Pode repetir o pedido | Não; clientes modernos não agem com base nele |
| Cabeçalhos relevantes |
|
| Situação | Obsoleto: Obsoleto desde a RFC 7231 (2014) pelo risco de segurança de configurar um proxy a partir de uma resposta. |
O que significa o 305
A RFC 2616 definiu o 305 para o servidor de origem dizer "me acesse por este proxy", e só servidores de origem podiam enviá-lo. A RFC 7231 o tornou obsoleto em 2014 porque deixar uma resposta reconfigurar o proxy do cliente é uma falha de segurança: um servidor malicioso ou invadido poderia desviar os pedidos seguintes da vítima para um atacante. Hoje a RFC 9110, seção 15.4.6, só registra que ele está obsoleto.
O vizinho dele é ainda mais curioso. O 306 foi o Switch Proxy num rascunho inicial do HTTP/1.1, saiu antes da publicação, e a RFC 9110 mantém o número reservado e sem uso. Nenhum dos dois deve ser enviado por software escrito hoje.
Causas comuns
Se você administra o servidor
- Uma aplicação legada, um dispositivo embarcado ou um proxy antigo que ainda emite 305.
- Middleware feito à mão que escolheu o 305 porque o nome parecia servir para "passe pelo gateway", normalmente como dica de roteamento.
Como resolver
Se você administra o servidor
- Configure o proxy do lado do cliente: configurações de proxy do sistema, um arquivo PAC ou as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY.
- Se o 305 era só uma dica de roteamento, troque por um 307 ou 308 para o host certo.
Como enviar um 305
Não envie 305. Os navegadores ignoram, e de propósito nenhum framework tem atalho para ele; use configuração de proxy no cliente ou um redirecionamento comum.
Costuma ser confundido com
- 305 vs 407
- O 407 Proxy Authentication Required é o código de proxy que continua em uso: o proxy que você já usa quer credenciais.
- 305 vs 307
- O 307 manda o mesmo pedido para outra URL em outro host, o que cobre quase tudo que se tentava fazer com o 305.
Perguntas frequentes
- Por que o 305 Use Proxy ficou obsoleto?
- Porque qualquer servidor poderia usá-lo para mandar o cliente passar o tráfego seguinte por um proxy escolhido por ele. A RFC 7231 o tornou obsoleto em 2014 por esse risco, e os navegadores pararam de obedecer.
- O que é o código de status HTTP 306?
- Hoje, nada. Ele foi o Switch Proxy num rascunho do HTTP/1.1, saiu antes da publicação da RFC, e a RFC 9110 mantém o 306 reservado e sem uso.
- O que usar no lugar do 305?
- Configure o proxy no cliente (configurações do sistema, arquivo PAC, variáveis HTTP_PROXY). Se só precisa mandar o cliente para outro host, use 307 para mudança temporária ou 308 para definitiva.
Revisado em por Arielton Oberek.