Senden von Inhalten (Nachrichtentext) zusammen mit 304 Nicht geändertem Header


7

Wenn bei statischen HTML-Seiten der Antwortheader vom Server 304 nicht geändert ist , liegt es nicht in der Verantwortung des Servers, nur die Header und nicht den Nachrichtentext (HTML-Inhalt) zusammen mit diesem zurückzusenden?

Was bringt es, 304 Not Modified zu senden, wenn es auch mit dem HTML-Inhalt einhergeht?

Antworten:


12

Es macht keinen Sinn, einen Nachrichtentext mit einer 304-Antwort zu senden. Tatsächlich besagt die HTTP-Spezifikation , dass der Server dies nicht tun darf. Wenn Sie eine haben, verhält sie sich gemäß der Spezifikation schlecht.

Aus der HTTP-Spezifikation:

Die Antwort 304 DARF KEINEN Nachrichtentext enthalten und wird daher immer durch die erste leere Zeile nach den Headerfeldern beendet.


Meine HTML-Datei befindet sich auf einem Nginx-Server. Wenn Sie F5 drücken und die Netzaktivität mithilfe von FireBug überwachen, sind die zurückgegebenen Bytes dieselben. Die Antwort enthält auch den Nachrichtentext.
Anjanesh

Was in Ihrer Situation wahrscheinlich passiert, ist, dass Ihr Browser die korrekt geformte 304-Antwort von nginx erhält und dann die Seite aus dem Cache zieht und an FireBug weiterleitet. Haben Sie ein Tool, das Ihnen das gesamte Gespräch zeigt? Fiddler oder WebScarab würden Ihnen das Gespräch zeigen.
Squillman

Vielen Dank. Ich habe dies nur mit Curl überprüft. curl --dump-header header.txt --header "If-Modified-Since: So, 08. August 2010, 17:43:07 GMT" myurl.com/page.html cat header.txt HTTP / 1.1 304 Nicht geänderter Server: nginx Datum: Mo, 09. August 2010, 23:14:26 GMT Verbindung: Keep-Alive ETag: "16f8016-43c-48d536ec440c0" Kein Nachrichtentext!
Anjanesh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.