Appendix B. Changes from RFC 2616 (Modifiche rispetto a RFC 2616)
Le principali modifiche in dieser Revision sind redaktioneller Natur: Extraktion der Nachrichtensyntax und Aufteilung der HTTP-Semantik in separate Dokumente für die Kernfunktionen, bedingte Anfragen, Teilanfragen, Caching und Authentifizierung. Die Konformitätssprache wurde überarbeitet, um Anforderungen klar zu zielen, und die Terminologie wurde verbessert, um Nutzlast von Darstellungen und Darstellungen von Ressourcen zu unterscheiden.
Eine neue Anforderung wurde hinzugefügt, dass in einem URI eingebettete Semantik deaktiviert werden muss, wenn diese Semantik mit der Anforderungsmethode inkonsistent ist, da dies eine häufige Ursache für Interoperabilitätsfehler ist. (Abschnitt 2)
Ein Algorithmus wurde hinzugefügt, um zu bestimmen, ob eine Nutzlast mit einem bestimmten Bezeichner verbunden ist. (Abschnitt 3.1.4.1)
Der Standard-Zeichensatz ISO-8859-1 für Textmedientypen wurde entfernt; der Standard ist jetzt das, was die Medientypdefinition angibt. Ebenso wurde die Sonderbehandlung von ISO-8859-1 aus dem Accept-Charset-Header-Feld entfernt. (Abschnitt 3.1.1.3 und Abschnitt 5.3.3)
Die Definition von Content-Location wurde geändert, um nicht mehr die Basis-URI zu beeinflussen, die zum Auflösen relativer URI-Referenzen verwendet wird, aufgrund schlechter Implementierungsunterstützung und des unerwünschten Effekts, potenziell relative Links in inhaltsverhandelten Ressourcen zu brechen. (Abschnitt 3.1.4.2)
Um mit dem methodenneutralen Parsing-Algorithmus von [RFC7230] konsistent zu sein, wurde die Definition von GET gelockert, sodass Anfragen einen Body haben können, auch wenn ein Body für GET keine Bedeutung hat. (Abschnitt 4.3.1)
Server müssen nicht mehr alle Content-*-Header-Felder verarbeiten, und die Verwendung von Content-Range wurde in PUT-Anfragen explizit verboten. (Abschnitt 4.3.4)
Die Definition der CONNECT-Methode wurde von [RFC2817] in diese Spezifikation verschoben. (Abschnitt 4.3.6)
Die OPTIONS- und TRACE-Anforderungsmethoden wurden als sicher definite. (Abschnitt 4.3.7 und Abschnitt 4.3.8)
Der Erweiterungsmechanismus des Expect-Header-Felds wurde aufgrund weit verbreiteter defekter Implementierungen entfernt. (Abschnitt 5.1.1)
Das Max-Forwards-Header-Feld wurde auf die OPTIONS- und TRACE-Methoden beschränkt; zuvor konnten auch Erweiterungsmethoden es verwenden. (Abschnitt 5.1.2)
Die "about:blank"-URI wurde als Wert für das Referer-Header-Feld vorgeschlagen, wenn keine verweisende URI anwendbar ist, was diesen Fall von anderen unterscheidet, bei denen das Referer-Feld nicht gesendet oder entfernt wurde. (Abschnitt 5.5.2)
Die folgenden Statuscodes sind jetzt cachebar (d.h. sie können von einem Cache ohne explizite Frische-Informationen gespeichert und wiederverwendet werden): 204, 404, 405, 414, 501. (Abschnitt 6)
Die Beschreibung des Status 201 (Created) wurde geändert, um die Möglichkeit zuzulassen, dass mehr als eine Ressource erstellt wurde. (Abschnitt 6.3.2)
Die Definition von 203 (Non-Authoritative Information) wurde erweitert, um auch Fälle von Nutzlasttransformationen einzuschließen. (Abschnitt 6.3.4)
Die Menge der Anforderungsmethoden, die sicher automatisch umgeleitet werden können, ist nicht mehr geschlossen; User Agents sind in der Lage, diese Bestimmung basierend auf der Semantik der Anforderungsmethode zu treffen. Die Umleitungsstatuscodes 301, 302 und 307 haben keine normativen Anforderungen mehr an Antwort-Nutzlasten und Benutzerinteraktion. (Abschnitt 6.4)
Die Statuscodes 301 und 302 wurden geändert, um User Agents zu erlauben, die Methode von POST zu GET umzuschreiben. (Abschnitte 6.4.2 und 6.4.3)
Die Beschreibung des Statuscodes 303 (See Other) wurde geändert, um das Caching zu erlauben, wenn explizite Frische-Informationen gegeben werden, und eine spezifische Definition wurde für eine 303-Antwort auf GET hinzugefügt. (Abschnitt 6.4.4)
Der Statuscode 305 (Use Proxy) wurde aufgrund von Sicherheitsbedenken bezüglich der In-Band-Konfiguration eines Proxys als veraltet markiert. (Abschnitt 6.4.5)
Der Statuscode 400 (Bad Request) wurde gelockert, sodass er nicht mehr auf Syntaxfehler beschränkt ist. (Abschnitt 6.5.1)
Der Statuscode 426 (Upgrade Required) wurde aus [RFC2817] aufgenommen. (Abschnitt 6.5.15)
Das Ziel der Anforderungen an HTTP-date und das Date-Header-Feld wurde auf Systeme reduziert, die das Datum generieren, anstatt auf alle Systeme, die ein Datum senden. (Abschnitt 7.1.1)
Die Syntax des Location-Header-Felds wurde geändert, um alle URI-Referenzen einschließlich relativer Referenzen und Fragmente zu erlauben, zusammen mit einigen Klarstellungen darüber, wann die Verwendung von Fragmenten nicht angemessen wäre. (Abschnitt 7.1.2)
Allow wurde als Antwort-Header-Feld neu klassifiziert, wodurch die Option entfernt wurde, es in einer PUT-Anfrage anzugeben. Die Anforderungen bezüglich des Inhalts von Allow wurden gelockert; entsprechend müssen Clients seinem Wert nicht immer vertrauen. (Abschnitt 7.4.1)
Eine Methodenregistrierung wurde definite. (Abschnitt 8.1)
Die Statuscode-Registrierung wurde durch diese Spezifikation neu definite; zuvor war sie in Abschnitt 7.1 von [RFC2817] definite. (Abschnitt 8.2)
Die Registrierung von Inhaltskodierungen wurde geändert, um IETF-Überprüfung zu erfordern. (Abschnitt 8.4)
Das Content-Disposition-Header-Feld wurde entfernt, da es jetzt durch [RFC6266] definite ist.
Das Content-MD5-Header-Feld wurde entfernt, da es in Bezug auf Teilantworten inkonsistent implementiert wurde.