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?

anjanesh
quelle

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.

Squillman
quelle
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