Um cliente não pode agir sobre o desafio de autenticação de um proxy enquanto não tiver uma resposta HTTP completa para analisar. Uma linha de status e um campo Proxy-Authenticate ainda precisam da linha em branco que termina a secção de cabeçalhos.

Uma resposta HTTP/1.1 mínima sem corpo tem esta estrutura:

HTTP/1.1 407 Proxy Authentication Required<CRLF>
Proxy-Authenticate: Basic realm="local-proxy"<CRLF>
Content-Length: 0<CRLF>
<CRLF>

Cada marcador CRLF representa bytes de retorno de carro e avanço de linha, não texto literal do marcador. A última linha de cabeçalho já termina com CRLF; o CRLF adicional cria a linha vazia. Content-Length indica que nenhum corpo se segue.

Envie ou descarregue a resposta completa antes de esperar por outro pedido. Num socket bruto, considere também escritas que enviam menos bytes do que o pedido.

Um 407 exige pelo menos um desafio Proxy-Authenticate aplicável. Se o cliente suportar o esquema oferecido e obtiver credenciais, pode tentar novamente com Proxy-Authorization. Os campos 401 e WWW-Authenticate de um site dizem respeito a um salto diferente.

Este desafio Basic é um exemplo de enquadramento, não um desenho de autenticação completo. As credenciais Basic precisam de uma ligação protegida quando a confidencialidade importa. Enviar o desafio também não implementa validação de palavra-passe, análise de pedidos nem túnel CONNECT.

Artigos relacionados