9.2 OPTIONEN
Die OPTIONS-Methode stellt eine Anforderung von Informationen zu den Kommunikationsoptionen dar, die in der durch den Anforderungs-URI angegebenen Anforderungs- / Antwortkette verfügbar sind. Mit dieser Methode kann der Client die mit einer Ressource verbundenen Optionen und / oder Anforderungen oder die Funktionen eines Servers ermitteln, ohne eine Ressourcenaktion zu implizieren oder einen Ressourcenabruf zu initiieren.
Antworten auf diese Methode können nicht zwischengespeichert werden.
Wenn die OPTIONS-Anforderung einen Entity-Body enthält (wie durch das Vorhandensein von Content-Length oder Transfer-Encoding angezeigt), MUSS der Medientyp durch ein Content-Type-Feld angegeben werden. Obwohl diese Spezifikation keine Verwendung für einen solchen Body definiert, verwenden zukünftige Erweiterungen von HTTP möglicherweise den OPTIONS-Body, um detailliertere Abfragen auf dem Server durchzuführen. Ein Server, der eine solche Erweiterung nicht unterstützt, kann den Anforderungshauptteil verwerfen.
Wenn der Anforderungs-URI ein Sternchen ("*") ist, soll die OPTIONS-Anforderung auf den Server im Allgemeinen und nicht auf eine bestimmte Ressource angewendet werden. Da die Kommunikationsoptionen eines Servers normalerweise von der Ressource abhängen, ist die Anforderung "*" nur als Methode vom Typ "Ping" oder "No-Op" nützlich. Es ermöglicht dem Client nicht, die Funktionen des Servers zu testen. Dies kann beispielsweise verwendet werden, um einen Proxy auf HTTP / 1.1-Konformität (oder deren Fehlen) zu testen.
Wenn der Anforderungs-URI kein Sternchen ist, gilt die OPTIONS-Anforderung nur für die Optionen, die bei der Kommunikation mit dieser Ressource verfügbar sind.
Eine Antwort von 200 sollte alle Headerfelder enthalten, die optionale Funktionen angeben, die vom Server implementiert wurden und auf diese Ressource anwendbar sind (z. B. Zulassen), möglicherweise einschließlich Erweiterungen, die nicht durch diese Spezifikation definiert sind. Der Antworttext sollte, falls vorhanden, auch Informationen zu den Kommunikationsoptionen enthalten. Das Format für einen solchen Körper wird durch diese Spezifikation nicht definiert, kann jedoch durch zukünftige Erweiterungen von HTTP definiert werden. Die Inhaltsverhandlung kann verwendet werden, um das geeignete Antwortformat auszuwählen. Wenn kein Antworttext enthalten ist, MUSS die Antwort ein Feld für die Inhaltslänge mit dem Feldwert "0" enthalten.
Das Feld Max-Forwards-Anforderungsheader kann verwendet werden, um auf einen bestimmten Proxy in der Anforderungskette abzuzielen. Wenn ein Proxy eine OPTIONS-Anforderung auf einem AbsolutURI empfängt, für die die Weiterleitung von Anforderungen zulässig ist, MUSS der Proxy nach einem Max-Forwards-Feld suchen. Wenn der Feldwert Max-Forwards Null ist ("0"), darf der Proxy die Nachricht NICHT weiterleiten. Stattdessen sollte der Proxy mit seinen eigenen Kommunikationsoptionen antworten. Wenn der Feldwert Max-Forwards eine Ganzzahl größer als Null ist, MUSS der Proxy den Feldwert verringern, wenn er die Anforderung weiterleitet. Wenn in der Anforderung kein Max-Forwards-Feld vorhanden ist, darf die weitergeleitete Anforderung KEIN Max-Forwards-Feld enthalten.
9.4 KOPF
Die HEAD-Methode ist identisch mit GET, außer dass der Server in der Antwort KEINEN Nachrichtentext zurückgeben darf. Die in den HTTP-Headern als Antwort auf eine HEAD-Anforderung enthaltenen Metainformationen MÜSSEN mit den Informationen identisch sein, die als Antwort auf eine GET-Anforderung gesendet wurden. Diese Methode kann verwendet werden, um Metainformationen über die durch die Anforderung implizierte Entität zu erhalten, ohne den Entitätskörper selbst zu übertragen. Diese Methode wird häufig zum Testen von Hypertext-Links auf Gültigkeit, Zugänglichkeit und aktuelle Änderungen verwendet.
Die Antwort auf eine HEAD-Anforderung kann in dem Sinne zwischengespeichert werden, dass die in der Antwort enthaltenen Informationen verwendet werden können, um eine zuvor zwischengespeicherte Entität von dieser Ressource zu aktualisieren. Wenn die neuen Feldwerte anzeigen, dass sich die zwischengespeicherte Entität von der aktuellen Entität unterscheidet (wie dies durch eine Änderung von Content-Length, Content-MD5, ETag oder Last-Modified angezeigt wird), MUSS der Cache den Cache-Eintrag als veraltet behandeln.