Wednesday 15 November 2017

Content Disposition Binary Options


Es könnte auch erwähnenswert sein, dass inline versucht, Office-Dokumente (xls, doc usw.) direkt vom Server zu öffnen, was zu einer Benutzeranmeldeinformationen-Eingabeaufforderung führen könnte. Jemand versucht, einen Excel-Bericht von SSRS über ASP. Net liefern - der Benutzer wurde immer aufgefordert, die Anmeldeinformationen eingeben. Nach dem Klicken auf Abbrechen auf der Eingabeaufforderung würde es trotzdem geöffnet werden. Wenn die Content-Disposition als Attachment markiert ist, wird sie automatisch nach dem Öffnen in den temporären Ordner gespeichert und dann in Excel von der lokalen Kopie geöffnet. Beantwortet, um SaveAs in Browsern Es gibt Situationen (um eine Dokumentation im PDF-Format oder ein Finanzdokument speichern), wo Sie einen Hyperlink führen könnte Zu einer Datei, um ein SaveAs-Dialogfeld im Browser anzuzeigen. Wege zu tun, die existieren. Jedoch macht flockige Browser-Unterstützung seine Verwendung einen Spaziergang im Minenfeld. Erzwingen SaveAs mit Javascript in Internet Explorer Mit Javascript können Sie einen Dialog zum Speichern der Seite, die derzeit angezeigt wird (wenn der Benutzer sucht durch Internet Explorer auf Ihrer Seite, die ist). Dies geschieht über den folgenden Code: Diese Seite speichern / a Allerdings, in der Regel möchten Sie eine andere Datei zu speichern, führt die Datei ein Hyperlink führt. Zu tun, dass Javascript ist nicht genug (zumindest gibt es keine solche Standard-Weg) und etwas muss auf dem Server durchgeführt werden. Erzwingen von SaveAs mit dem HTTP-Header Um den Browser zum Anzeigen des SaveAs-Dialogs beim Klicken auf einen Hyperlink zu zwingen, müssen Sie den folgenden Header in die HTTP-Antwort der herunterzuladenden Datei einbeziehen: Content-Disposition: Anhang filenameltfile name. extgt Wo ltfile name. Extgt ist der Dateiname, der im SaveAs Dialog erscheinen soll (wie finances. xls oder mortgage. pdf) - ohne lt und gt Symbole. Sie müssen folgendes beachten: Der Dateiname sollte in US-ASCII-Zeichensatz enthalten sein und sollte keine Sonderzeichen enthalten: lt gt /. . Raum. Der Dateiname sollte keine Verzeichnispfadangaben enthalten. Der Dateiname sollte in doppelten Anführungszeichen eingeschlossen werden, aber die meisten Browser unterstützen Dateinamen ohne doppelte Anführungszeichen. Alten Browsern erforderten auch die folgenden (nicht benötigt heutzutage, aber für eine narrensichere Lösung könnte sich lohnen): Content-Type-Header sollte vor Content-Disposition sein. Content-Type-Header sollte sich auf einen unbekannten MIME-Typ beziehen (mindestens bis die älteren Browser verschwinden). Detaillierte Verwendung howto Content-Disposition Unterstützung in Internet Explorer Es scheint, dass Internet Explorer die schlechteste Erfolgsbilanz der Content-Disposition-Header-Unterstützung hat. Das Feature hatte viele Sicherheitslücken, und infolgedessen änderte Microsoft den Code oft, manchmal brechen sie ganz. Die Praxis hat gezeigt, dass der Download-Code einen anderen HTTP-Header-Parser verwendet. Und wenn dieser Parser bei der Handhabung aller Header-Zeilen nicht erfolgreich ist, wird IE die Datei überhaupt nicht herunterladen. Internet Explorer 9.0 Abhängig von der Datei "WinInet. dll" kann die Datei mit dem Dateinamen heruntergeladen werden, der die folgenden Sonderzeichen enthält: lt gt /. . Raum. Microsoft Knowledgebase-Artikel: 94919719 Anhänge 19.1 Internet-Medientyp message / http und application / http Zusätzlich zur Definition des HTTP / 1.1-Protokolls dient dieses Dokument als Spezifikation für die Internet-Medienart message / http und application / http. Der Message - / HTTP-Typ kann verwendet werden, um eine einzige HTTP-Anforderungs - oder Antwortnachricht einzuschließen, vorausgesetzt, dass sie den MIME-Beschränkungen für alle Nachrichtentypen hinsichtlich Zeilenlänge und Codierungen gehorcht. Der Anwendungs - / HTTP-Typ kann verwendet werden, um eine Pipeline einer oder mehrerer HTTP-Anforderungs - oder Antwortnachrichten (nicht gemischt) einzuschließen. Folgendes ist bei der IANA 17 einzutragen. 19.2 Internet Multipart / Byteranges Wenn eine HTTP 206 (Teilinhalt) Antwortnachricht den Inhalt mehrerer Bereiche enthält (Antwort auf eine Anforderung für mehrere nicht überlappende Bereiche), werden diese übertragen Als multipart Nachrichtenbotschaft. Der Medientyp wird hierzu multipart / byteranges genannt. Der Multipart / Byteranges-Medientyp enthält zwei oder mehr Teile mit jeweils eigenen Content-Type - und Content-Range-Feldern. Der erforderliche Boundary-Parameter gibt die Grenze an, die verwendet wird, um jedes Body-Part zu trennen. HTTP / 1.1 206 Teilinhalt Datum: Mi, 15 Nov 1995 06:25:24 GMT Zuletzt geändert: Mi, 15 Nov 1995 04:58:08 GMT Inhaltstyp: multipart / byteranges boundaryTHISSTRINGSEPARATES --THISSTRINGSEPARATES Inhaltstyp: application / Pdf Inhaltsbereich: Bytes 500-999 / 8000 der erste Bereich. --THISSTRINGSEPARATES Inhaltstyp: application / pdf Content-Bereich: Bytes 7000-7999 / 8000 der zweite Bereich --THISSTRINGSEPARATES - 19.3 Tolerante Applikationen Obwohl in diesem Dokument die Anforderungen für die Generierung von HTTP / 1.1-Meldungen festgelegt sind, werden nicht alle Applikationen verwendet In ihrer Umsetzung korrekt sein. Wir empfehlen daher, dass Betriebsanwendungen Abweichungen tolerieren, wenn diese Abweichungen eindeutig interpretiert werden können. Clients sollten Toleranz beim Analysieren der Statuszeile und Server tolerant beim Analysieren der Anforderungszeile sein. Insbesondere sollten sie akzeptieren, jede Menge von SP-oder HT-Zeichen zwischen den Feldern, obwohl nur eine einzige SP erforderlich ist. Der Zeilenabschluss für Nachrichten-Header-Felder ist die Sequenz CRLF. Wir empfehlen jedoch, dass Anwendungen beim Analysieren solcher Header eine einzelne LF als Zeilenabschluss erkennen und die führende CR ignorieren. Der Zeichensatz eines Entity-Körpers sollte als der kleinste gemeinsame Nenner der Zeichen-Codes in diesem Körper verwendet werden, mit der Ausnahme, dass nicht Etikettierung der Einheit ist vorzuziehen, über die Etikettierung der Einheit mit den Etiketten US-ASCII oder ISO-8859- 1 ist. Siehe Abschnitt 3.7.1 und 3.4.1. Zusätzliche Regeln für Anforderungen an das Parsing und die Codierung von Daten und andere potenzielle Probleme mit Datumskodierungen sind: 19.4 Unterschiede zwischen HTTP-Entitäten und RFC 2045 Entitäten HTTP / 1.1 verwendet viele der für Internet Mail (RFC 822 9) und die Multipurpose Internet Mail definierten Konstrukte Erweiterungen (MIME 7), um zu ermöglichen, dass Elemente in einer offenen Vielfalt von Darstellungen und mit erweiterbaren Mechanismen übertragen werden können. Allerdings diskutiert RFC 2045 Mail und HTTP hat ein paar Features, die sich von denen in RFC 2045 beschrieben sind. Diese Unterschiede wurden sorgfältig ausgewählt, um die Leistung über binäre Verbindungen zu optimieren, um größere Freiheit in der Verwendung von neuen Medien-Typen, um Datum zu machen Vergleiche einfacher, und die Praxis von einigen frühen HTTP-Servern und Clients zu bestätigen. Dieser Anhang beschreibt spezifische Bereiche, in denen HTTP unterscheidet sich von RFC 2045. Proxies und Gateways zu strengen MIME-Umgebungen sollten bewusst sein, diese Unterschiede und bieten die entsprechenden Konvertierungen, wenn nötig. Proxies und Gateways von MIME-Umgebungen zu HTTP müssen sich auch der Unterschiede bewusst sein, da einige Conversions erforderlich sein könnten. 19.4.1 MIME-Version HTTP ist kein MIME-kompatibles Protokoll. HTTP / 1.1-Nachrichten können jedoch ein einziges MIME-Version-General-Header-Feld enthalten, um anzuzeigen, welche Version des MIME-Protokolls für die Konstruktion der Nachricht verwendet wurde. Die Verwendung des MIME-Version-Header-Felds zeigt an, dass die Meldung vollständig dem MIME-Protokoll entspricht (wie in RFC 20457 definiert). Proxies / Gateways sind dafür verantwortlich, die vollständige Compliance (wenn möglich) beim Exportieren von HTTP-Nachrichten in strenge MIME-Umgebungen zu gewährleisten. MIME Version 1.0 ist die Standardeinstellung für HTTP / 1.1. HTTP / 1.1-Nachrichtenanalyse und Semantik werden jedoch durch dieses Dokument und nicht die MIME-Spezifikation definiert. 19.4.2 Umwandlung in kanonische Form RFC 2045 7 erfordert, dass eine Internet-Mail-Einheit in kanonische Form vor der Übertragung, wie in Abschnitt 4 von RFC 2049 48 beschrieben konvertiert werden. Abschnitt 3.7.1 dieses Dokuments beschreibt die Formen für Subtypen zulässig Der Textmedientyp, wenn er über HTTP übertragen wird. RFC 2046 erfordert, dass Inhalte mit einem Texttyp Zeilenumbrüche als CRLF darstellen und die Verwendung von CR oder LF außerhalb von Zeilenumbruchfolgen verbietet. HTTP erlaubt CRLF, nackten CR und nackten LF, um einen Zeilenumbruch im Textinhalt anzuzeigen, wenn eine Nachricht über HTTP übertragen wird. Wo es möglich ist, sollte ein Proxy oder Gateway von HTTP zu einer strengen MIME-Umgebung alle Zeilenumbrüche innerhalb der Textmedientypen, die in Abschnitt 3.7.1 dieses Dokuments beschrieben sind, in die kanonische Form von CRLF von RFC 2049 übersetzen. Man beachte jedoch, dass dies durch das Vorhandensein einer Content-Codierung und durch die Tatsache, dass HTTP die Verwendung von einigen Zeichensätzen erlaubt, die die Bytes 13 und 10 nicht zur Darstellung von CR und LF verwenden, kompliziert sein kann, wie dies bei einigen der Fall ist Multi-Byte-Zeichensätzen. Implementoren sollten beachten, dass die Konvertierung alle kryptografischen Prüfsummen, die auf den ursprünglichen Inhalt angewendet wird, brechen wird, es sei denn, der ursprüngliche Inhalt ist bereits in kanonischer Form. Daher wird die kanonische Form für alle Inhalte empfohlen, die solche Prüfsummen in HTTP verwenden. 19.4.3 Konvertierung von Datumsformaten HTTP / 1.1 verwendet einen eingeschränkten Satz von Datumsformaten (Abschnitt 3.3.1), um den Prozess des Datumsvergleichs zu vereinfachen. Proxies und Gateways aus anderen Protokollen SOLLTEN sicherstellen, dass jedes Datum Header-Feld in einer Nachricht entspricht einem der HTTP / 1.1-Formate und umschreiben das Datum, wenn nötig. 19.4.4 Einführung von Content-Encoding RFC 2045 enthält kein Konzept, das dem HTTP / 1.1s Content-Encoding-Header-Feld äquivalent ist. Da dies als Modifikator für den Medientyp fungiert, müssen Proxies und Gateways von HTTP zu MIME-kompatiblen Protokollen entweder den Wert des Content-Type-Header-Felds ändern oder den Entity-Body decodieren, bevor die Nachricht weitergeleitet wird. (Einige experimentelle Anwendungen von Content-Type für Internet-Mail haben einen medialen Parameter von conversionsltcontent-coding verwendet, um eine Funktion auszuführen, die mit Content-Encoding gleichwertig ist. Dieser Parameter ist jedoch nicht Teil von RFC 2045.) 19.4.5 Kein Content - Transfer-Encoding HTTP verwendet das Content-Transfer-Encoding (CTE) - Feld von RFC 2045 nicht. Proxies und Gateways von MIME-kompatiblen Protokollen zu HTTP MUSS vor der Bereitstellung der nicht-identifizierten CTE (quoted-printable oder base64) Codierung entfernt werden Antwort-Nachricht an einen HTTP-Client. Proxies und Gateways von HTTP zu MIME-kompatiblen Protokollen sind dafür verantwortlich, dass die Nachricht im richtigen Format und Codierung für einen sicheren Transport auf diesem Protokoll ist, wobei sicherer Transport durch die Beschränkungen des verwendeten Protokolls definiert wird. Solch ein Proxy oder Gateway sollte die Daten mit einer entsprechenden Content-Transfer-Encoding, wenn dies die Wahrscheinlichkeit eines sicheren Transport über das Ziel-Protokoll zu verbessern. 19.4.6 Einführung der Transfer-Encoding HTTP / 1.1 führt das Transfer-Encoding-Header-Feld ein (Abschnitt 14.41). Proxies / Gateways MÜSSEN jede Übertragungskodierung vor dem Weiterleiten einer Nachricht über ein MIME-kompatibles Protokoll entfernen. Ein Verfahren zum Decodieren der Chunked-Transfercodierung (Abschnitt 3.6) kann im Pseudocode dargestellt werden als: 19.4.7 MHTML - und Zeilenlängenbegrenzungen HTTP-Implementierungen, die Code mit MHTML 45-Implementierungen gemeinsam nutzen, müssen sich der MIME-Zeilenlängenbeschränkungen bewusst sein. Da HTTP diese Einschränkung nicht hat, faltet HTTP lange Zeilen nicht. MHTML-Nachrichten, die von HTTP transportiert werden, folgen allen Konventionen von MHTML, einschließlich Zeilenlängenbeschränkungen und Falten, Kanonisierung usw., da HTTP alle Nachrichtenobjekte als Nutzdaten transportiert (siehe Abschnitt 3.7.2) und den Inhalt oder keine MIME-Kopfzeilen interpretiert Die darin enthalten sein könnten. 19.5 Zusätzliche Funktionen RFC 1945 und RFC 2068 Dokument-Protokoll-Elemente, die von einigen bestehenden HTTP-Implementierungen, aber nicht konsequent und korrekt über die meisten HTTP / 1.1-Anwendungen. Die Implementierer werden darauf hingewiesen, diese Funktionen zu kennen, können sich aber nicht auf ihre Anwesenheit oder Interoperabilität mit anderen HTTP / 1.1-Anwendungen verlassen. Einige von ihnen beschreiben vorgeschlagene experimentelle Funktionen, und einige beschreiben Merkmale, die experimentelle Bereitstellung fehlt, die jetzt in der Basis-HTTP / 1.1-Spezifikation behandelt werden. Eine Reihe von anderen Headern, wie Content-Disposition und Titel, von SMTP und MIME sind auch oft implementiert (siehe RFC 2076 37). 19.5.1 Content-Disposition Das Content-Disposition-Antwort-Header-Feld wurde als Mittel für den Ursprungs-Server vorgeschlagen, um einen Standard-Dateinamen vorzuschlagen, wenn der Benutzer fordert, dass der Inhalt in einer Datei gespeichert wird. Diese Verwendung wird aus der Definition von Content-Disposition in RFC 1806 35 abgeleitet. Der empfangende Benutzeragent sollte keine Verzeichnispfadinformationen, die im Parameter filename-parm vorhanden sind, respektieren. Dies ist der einzige Parameter, der derzeit für HTTP-Implementierungen gilt. Der Dateiname sollte nur als Terminalkomponente behandelt werden. Wenn dieser Header in einer Antwort mit dem application / octetstream-Content-Type verwendet wird, ist der implizierte Vorschlag, dass der User-Agent die Antwort nicht anzeigen sollte, sondern direkt eine Save-Antwort eingeben. Dialog. Siehe Abschnitt 15.5 für Sicherheitsfragen bei der Content-Disposition. 19.6 Kompatibilität mit früheren Versionen Es liegt außerhalb des Umfangs einer Protokollspezifikation, um die Einhaltung früherer Versionen zu beauftragen. HTTP / 1.1 wurde bewusst entworfen, um die Unterstützung früherer Versionen einfach zu machen. Es ist erwähnenswert, dass wir zum Zeitpunkt der Erstellung dieser Spezifikation (1996) kommerzielle HTTP / 1.1-Server erwarten würden: Und wir würden HTTP / 1.1-Clients erwarten: Für die meisten Implementierungen von HTTP / 1.0 wird jede Verbindung hergestellt Den Client vor der Anfrage und schloss durch den Server nach dem Senden der Antwort. Einige Implementierungen implementieren die Keep-Alive Version von persistenten Verbindungen, die in Abschnitt 19.7.1 von RFC 2068 33 beschrieben sind. 19.6.1 Änderungen von HTTP / 1.0 Dieser Abschnitt fasst wichtige Unterschiede zwischen den Versionen HTTP / 1.0 und HTTP / 1.1 zusammen. 19.6.1.1 Änderungen bei der Vereinfachung von Multi-Homed Web Servern und Conserve IP Die Anforderungen, die Clients und Server den Host-Request-Header unterstützen, melden einen Fehler, wenn der Host-Request-Header (Abschnitt 14.23) aus einer HTTP / 1.1-Anforderung fehlt und Akzeptieren absolute URIs (Abschnitt 5.1.2) zählen zu den wichtigsten Änderungen, die in dieser Spezifikation definiert sind. Ältere HTTP / 1.0-Clients nahmen eine Eins-zu-eins-Beziehung von IP-Adressen und Servern auf, es gab keinen anderen etablierten Mechanismus zur Unterscheidung des beabsichtigten Servers einer Anforderung als die IP-Adresse, auf die diese Anforderung gerichtet war. Die oben beschriebenen Änderungen erlauben es dem Internet, sobald ältere HTTP-Clients nicht mehr üblich sind, mehrere Websites aus einer einzigen IP-Adresse zu unterstützen, wodurch große funktionierende Webserver stark vereinfacht werden, wo die Zuordnung vieler IP-Adressen zu einem einzelnen Host zu ernsthaften Problemen geführt hat . Das Internet wird auch in der Lage sein, die IP-Adressen wiederherzustellen, die zu dem alleinigen Zweck zugelassen wurden, dass Domänennamen für spezielle Zwecke in Root-Level-HTTP-URLs verwendet werden können. Angesichts der Wachstumsgeschwindigkeit des Web und der Anzahl der bereits implementierten Server ist es äußerst wichtig, dass alle Implementierungen von HTTP (einschließlich der Aktualisierungen bestehender HTTP / 1.0-Anwendungen) diese Anforderungen korrekt implementieren: 19.6.2 Kompatibilität mit HTTP / 1.0 Persistent Verbindungen Einige Clients und Server könnten möglicherweise mit einigen früheren Implementierungen von persistenten Verbindungen in HTTP / 1.0-Clients und - Servern kompatibel sein. Persistente Verbindungen in HTTP / 1.0 werden explizit ausgehandelt, da sie nicht das Standardverhalten sind. HTTP / 1.0 experimentelle Implementierungen von persistenten Verbindungen sind fehlerhaft, und die neuen Einrichtungen in HTTP / 1.1 wurden entwickelt, um diese Probleme zu beheben. Das Problem war, dass einige vorhandene 1.0 Clients Keep-Alive an einen Proxy-Server senden können, der Connection nicht versteht und dann irrtümlich an den nächsten Inbound-Server weiterleitet, der die Keep-Alive-Verbindung herstellen würde und in einem HTTP / 1.0 Proxy wartet auf den Abschluss der Antwort. Das Ergebnis ist, dass HTTP / 1.0-Clients daran gehindert werden müssen, Keep-Alive zu verwenden, wenn Sie mit Proxies sprechen. Allerdings ist das Sprechen mit Proxies die wichtigste Verwendung persistenter Verbindungen, so dass das Verbot eindeutig inakzeptabel ist. Daher benötigen wir einige andere Mechanismen für die Anzeige einer dauerhaften Verbindung erwünscht ist, die sicher ist, auch wenn Sie mit einem alten Proxy, die Verbindung ignoriert verwenden. Persistente Verbindungen sind der Standard für HTTP / 1.1-Nachrichten, die wir ein neues Schlüsselwort (Connection: close) einführen, um die Nicht-Persistenz zu deklarieren. Siehe Abschnitt 14.10. Die ursprüngliche HTTP / 1.0-Form der persistenten Verbindungen (die Verbindung: Keep-Alive und Keep-Alive-Header) ist in RFC 2068 dokumentiert. 33 19.6.3 Änderungen aus RFC 2068 Diese Spezifikation wurde sorgfältig geprüft, um Schlüsselwörter RFC zu korrigieren und zu disambiguieren 2068 hatte viele Probleme in Bezug auf die Konventionen, die in RFC 2119 34. Geklärt, welche Fehlercode sollte für eingehende Server-Ausfälle (zB DNS-Ausfälle) verwendet werden. (Abschnitt 10.5.5). CREATE hatte ein Rennen, dass ein Etag gesendet werden musste, wenn eine Ressource zuerst erstellt wird. (Abschnitt 10.2.2). Content-Base wurde aus der Spezifikation gelöscht: Es war nicht weit implementiert, und es gibt keine einfache, sichere Möglichkeit, es ohne einen robusten Erweiterungsmechanismus einzuführen. Darüber hinaus wird es in einer ähnlichen, aber nicht identischen Weise in MHTML 45 verwendet. Die Übertragungscodierungs - und Nachrichtenlängen interagieren in einer Weise, die eine genaue Anpassung erfordert, wenn eine Chunked-Codierung verwendet wird (um eine Übertragungscodierung zu ermöglichen, die nicht selbstbegrenzt sein kann) War es wichtig, genau herauszufinden, wie die Nachrichtenlängen berechnet werden. (Abschnitt 3.6, 4.4, 7.2.2, 13.5.2, 14.13, 14.16) Es wurde eine Inhaltscodierung der Identität eingeführt, um Probleme zu lösen, die beim Zwischenspeichern festgestellt wurden. (Abschnitt 3.5) Qualitätswerte von null sollten darauf hinweisen, dass ich nicht möchte, dass etwas den Kunden erlaubt, eine Darstellung abzulehnen. (Abschnitt 3.9) Die Verwendung und Interpretation von HTTP-Versionsnummern wurde durch RFC 2145 geklärt. Erfordern Sie Proxies, um Anforderungen auf die höchste Protokollversion zu aktualisieren, die sie unterstützen, um mit Problemen, die in HTTP / 1.0-Implementierungen entdeckt werden, umzugehen (Abschnitt 3.1) Explosion von Zeichensatznamen in Akzeptanzüberschriften. (Abschnitt 14.2) Ein Fall wurde im Cache-Control-Modell von HTTP / 1.1 verpasst. S-maxage wurde eingeführt, um diesen fehlenden Fall hinzuzufügen. (Abschnitte 13.4, 14.8, 14.9, 14.9.3) Die Cache-Control: Max-Age-Richtlinie wurde für Antworten nicht richtig definiert. (Abschnitt 14.9.3) Es gibt Situationen, in denen ein Server (insbesondere ein Proxy) die volle Länge einer Antwort nicht kennt, aber eine Byterange-Anforderung bedienen kann. Wir benötigen daher einen Mechanismus, der es ermöglicht, dass Byterange mit einem Inhaltsbereich, der nicht die volle Länge der Nachricht anzeigt, angezeigt werden. (Abschnitt 14.16) Range Request Responses würde sehr ausführlich, wenn alle Meta-Daten immer zurückgegeben wurden, indem der Server nur die benötigten Header in einer 206 Antwort senden, kann dieses Problem vermieden werden. (Abschnitt 10.2.7, 13.5.3 und 14.27) Problem mit unzufriedenen Bereichsanforderungen beheben gibt es zwei Fälle: syntaktische Probleme und Bereich nicht im Dokument vorhanden. Der 416-Statuscode wurde benötigt, um diese Mehrdeutigkeit zu lösen, die erforderlich ist, um einen Fehler für eine Bytebereichsanforderung anzugeben, die außerhalb des tatsächlichen Inhalts eines Dokuments liegt. (Abschnitt 10.4.17, 14.16) Umschreiben der Anforderungen an die Nachrichtenübermittlung, um es für die Implementierer viel schwieriger zu machen, es falsch zu machen, da die Folgen von Fehlern hier erhebliche Auswirkungen auf das Internet haben und mit den folgenden Problemen umgehen können: Diese Änderung fügt hinzu Den Expect-Header und den 417-Statuscode. Die Meldungsübermittlungsanforderungen sind in den Abschnitten 8.2, 10.4.18, 8.1.2.2. 13.11. Und 14,20. Proxies sollten in der Lage sein, Content-Länge hinzuzufügen, wenn dies angemessen ist. (Abschnitt 13.5.2) Beseitigen Sie Verwirrung zwischen 403 und 404 Antworten. (Abschnitt 10.4.4, 10.4.5 und 10.4.11) Warnungen könnten falsch zwischengespeichert oder nicht entsprechend aktualisiert werden. (Abschnitt 13.1.2, 13.2.4, 13.5.2, 13.5.3, 14.9.3 und 14.46) Warnung musste auch ein allgemeiner Header sein, da PUT oder andere Methoden sie in Anfragen benötigen können. Die Transfer-Codierung hatte erhebliche Probleme, insbesondere bei Interaktionen mit Chunk-Codierung. Die Lösung ist, dass Übertragungscodierungen so voll sind wie Inhaltscodierungen. Dazu gehört das Hinzufügen einer IANA-Registry für Transfercodes (getrennt von Content-Codierungen), ein neues Header-Feld (TE) und zukünftige Trailer-Header. Die Übertragungskodierung ist ein großer Leistungsfaktor, so dass es sich lohnt, 39 zu reparieren. TE löst auch ein anderes, dunkles, abwärts gerichtetes Interoperabilitätsproblem, das aufgrund von Interaktionen zwischen Authentifizierungs-Trailer, Chunked-Codierung und HTTP / 1.0-Clients aufgetreten sein könnte (Abschnitt 3.6. 1. und 14.39) Die Methoden PATCH, LINK, UNLINK wurden zwar in früheren Versionen dieser Spezifikation definiert, aber nicht allgemein implementiert. Siehe RFC 2068 33. In früheren Versionen dieser Spezifikation wurden die Felder "Alternates", "Content-Version", "Derived-From", "Link", "URI", "Public" und "Content-Base-Header" definiert, jedoch nicht häufig implementiert. Siehe RFC 2068 33.

No comments:

Post a Comment