Un client ne peut pas réagir au challenge d'authentification d'un proxy tant qu'il n'a pas une réponse HTTP complète à analyser. Une ligne de statut et un champ Proxy-Authenticate ont encore besoin de la ligne vide qui termine la section d'en-têtes.

Une réponse HTTP/1.1 minimale sans corps a cette structure :

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

Chaque marqueur CRLF représente des octets de retour chariot et de saut de ligne, et non le texte littéral du marqueur. La dernière ligne d'en-tête se termine déjà par CRLF ; le CRLF supplémentaire crée la ligne vide. Content-Length indique qu'aucun corps ne suit.

Envoyez ou videz la réponse complète avant d'attendre une autre requête. Sur une socket brute, tenez compte aussi des écritures qui envoient moins d'octets que demandé.

Un 407 exige au moins un challenge Proxy-Authenticate applicable. Si le client prend en charge le schéma proposé et obtient des identifiants, il peut réessayer avec Proxy-Authorization. Les champs 401 et WWW-Authenticate d'un site web concernent un autre saut.

Ce challenge Basic est un exemple de cadrage, pas une conception d'authentification complète. Les identifiants Basic nécessitent une connexion protégée lorsque la confidentialité compte. Envoyer le challenge n'implémente pas non plus la validation du mot de passe, l'analyse des requêtes ni le tunnel CONNECT.

Articles similaires