Ist es akzeptabel für ein server zum senden einer HTTP-Antwort vor der gesamten Anfrage eingegangen ist?
Prüfen, eine große HTTP-request:
POST /upload HTTP/1.1
Content-Type: multipart/form-data
Content-Length: 1048576
...
Den client jetzt beginnt das hochladen eines megabyte an Daten, das kann eine Weile dauern. Der server wird jedoch bestimmt, dass die HTTP-Autorisierung erforderlich ist, so entscheidet es, die Antworten mit HTTP 401 Unauthorized
.
MUSS der server warten, bis Sie empfangen hat den gesamten request (IE, Kopf - + CRLF CRLF + Content-Length
bytes), bevor er reagieren kann?
In der Praxis wird ein solches Verhalten brechen sämtliche Browser? Tun Browser weiterhin das hochladen der Datei sowieso, oder werden Sie die übertragung stoppen, wenn Sie erhalten eine "vorzeitige" - Reaktion?
Wichtiger ist, in diesem Szenario, werden Sie in der Lage sein, um erfolgreich zu authentifizieren, und beginnen Sie das hochladen wieder (mit Anmeldeinformationen), oder ist es zu unzuverlässig, um schneiden Sie die laden wie diesem?
- So hast du die Antwort?
- Ja, es ist gültig für einen HTTP-server zu senden eine Antwort, bevor die gesamte Anforderung empfangen wurde. Leider, kein browser sehen die frühzeitige Reaktion und den Versand der Anfrage, die sich wahrscheinlich in Verletzung der RFC 2616 § 8.2.2.
- Danke, es ist gut zu wissen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick in RFC 2616 definiert das Protokoll, in Abschnitt 8.2.2 Überwachung von Verbindungen für die Fehler-Status-Nachrichten, die es Staaten
Also ich würde sagen verwenden, Sie können springen in einen send einen 401-Fehler. Und dann suchen auf 10.4.2 401 Unauthorized
Besagt, dass der client können versuchen, mit geeigneten Anmeldeinformationen.
Habe ich noch nicht durchgeführt, keine Experimente, um zu sehen, wie Browser tatsächlich ausgeführt jedoch.