Ein Client kann auf die Authentifizierungs-Challenge eines Proxys erst reagieren, wenn er eine vollständige HTTP-Antwort zum Parsen hat. Eine Statuszeile und ein Proxy-Authenticate-Feld benötigen weiterhin die Leerzeile, die den Header-Abschnitt beendet.

Eine minimale HTTP/1.1-Antwort ohne Body hat diese Struktur:

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

Jede CRLF-Markierung steht für Wagenrücklauf- und Zeilenvorschub-Bytes, nicht für wörtlichen Markierungstext. Die letzte Header-Zeile endet bereits mit CRLF; das zusätzliche CRLF erzeugt die Leerzeile. Content-Length gibt an, dass kein Body folgt.

Senden oder flushen Sie die vollständige Antwort, bevor Sie auf eine weitere Anfrage warten. Bei einem Raw-Socket müssen Sie auch Schreibvorgänge berücksichtigen, die weniger Bytes senden als angefordert.

Ein 407 erfordert mindestens eine anwendbare Proxy-Authenticate-Challenge. Wenn der Client das angebotene Schema unterstützt und Anmeldedaten erhält, kann er es mit Proxy-Authorization erneut versuchen. Die Felder 401 und WWW-Authenticate einer Website betreffen einen anderen Hop.

Diese Basic-Challenge ist ein Framing-Beispiel, kein vollständiges Authentifizierungsdesign. Basic-Anmeldedaten benötigen eine geschützte Verbindung, wenn Vertraulichkeit wichtig ist. Das Senden der Challenge implementiert auch keine Passwortprüfung, kein Request-Parsing und kein CONNECT-Tunneling.

Ähnliche Artikel