Skip to content

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.

Dados sobre este código de status
Classe3xx, Redirecionamento
Definido emRFC 9110 §15.4.6
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos
Pode repetir o pedidoNão; clientes modernos não agem com base nele
Cabeçalhos relevantes
  • Location: trazia a URI do proxy a usar, não um novo endereço do recurso
SituaçãoObsoleto: 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.