Suche…


Parameter

HTTP-Methode Zweck
OPTIONS Rufen Sie Informationen zu den Kommunikationsoptionen (verfügbare Methoden und Header) ab, die für den angegebenen Anforderungs-URI verfügbar sind.
GET Rufen Sie die Daten ab, die durch den Anforderungs-URI identifiziert wurden, oder die Daten, die vom Skript erzeugt werden, das im Anforderungs-URI verfügbar ist.
HEAD Identisch mit GET außer dass vom Server kein Nachrichtentext zurückgegeben wird: nur Header.
POST Senden Sie einen (im Nachrichtentext angegebenen) Datenblock an den Server, um ihn der in der Anforderungs-URI angegebenen Ressource hinzuzufügen. Wird am häufigsten für die Formularverarbeitung verwendet.
PUT Speichern Sie die eingeschlossenen Informationen (im Nachrichtentext) als neue oder aktualisierte Ressource unter dem angegebenen Anforderungs-URI.
DELETE Löschen Sie die in der Anforderungs-URI angegebene Ressource, oder warten Sie sie zum Löschen.
TRACE Im Wesentlichen ein Echo-Befehl: Ein funktionsfähiger, kompatibler HTTP-Server muss die gesamte Anforderung als Hauptteil einer 200-Antwort (OK) zurücksenden.

Bemerkungen

Die CONNECT Methode wird durch die Methodendefinitionsspezifikation für die Verwendung mit Proxys reserviert , die zwischen Proxying- und Tunneling-Modus wechseln können (z. B. für SSL-Tunneling).

Manuelles Senden einer minimalen HTTP-Anforderung mithilfe von Telnet

Dieses Beispiel zeigt, dass HTTP ein textbasiertes Internetkommunikationsprotokoll ist und eine grundlegende HTTP-Anforderung und die entsprechende HTTP-Antwort zeigt.

Mit Telnet können Sie wie folgt manuell eine minimale HTTP-Anforderung über die Befehlszeile senden.

  1. Starten Sie eine Telnet-Sitzung mit dem Webserver www.example.org an Port 80:

    telnet www.example.org 80
    

    Telnet meldet, dass Sie mit dem Server verbunden sind:

    Connected to www.example.org.
    Escape character is '^]'.
    
  1. Geben Sie eine Anforderungszeile zum Senden eines GET-Anforderungs-URL-Pfads / über HTTP 1.1 ein

    GET / HTTP/1.1
    
  2. Geben Sie eine HTTP-Headerfeldzeile ein, um den Hostnamen-Teil der erforderlichen URL zu identifizieren, der in HTTP 1.1 erforderlich ist

    Host: www.example.org
    
  3. Geben Sie eine leere Zeile ein, um die Anfrage abzuschließen.

    Der Webserver sendet die HTTP-Antwort, die in der Telnet-Sitzung angezeigt wird.

Die komplette Sitzung ist wie folgt. Die erste Zeile der Antwort ist die HTTP-Statuszeile , die den Statuscode 200 und den Statustext OK enthält . Dies zeigt an, dass die Anforderung erfolgreich verarbeitet wurde. Darauf folgen eine Reihe von HTTP-Header-Feldern, eine Leerzeile und die HTML-Antwort.

$ telnet www.example.org 80
Trying 2606:2800:220:1:248:1893:25c8:1946...
Connected to www.example.org.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.example.org

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 21 Jul 2016 15:56:05 GMT
Etag: "359670651"
Expires: Thu, 28 Jul 2016 15:56:05 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (lga/1318)
Vary: Accept-Encoding
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

( style Element und Leerzeilen aus dem HTML reponse entfernt, der Kürze halber.)

Grundlegendes Anforderungsformat

In HTTP 1.1 besteht eine minimale HTTP-Anforderung aus einer Anforderungszeile und einem Host :

GET /search HTTP/1.1 \r\n
Host: google.com \r\n
\r\n

Die erste Zeile hat dieses Format:

Method Request-URI HTTP-Version CRLF

Method sollte eine gültige HTTP-Methode sein. einer von [1] [2] :

  • OPTIONS
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • PATCH
  • TRACE
  • CONNECT

Request-URI gibt entweder den URI oder den Pfad zu der Ressource an, die der Client anfordert. Es kann entweder sein:

  • ein vollständig qualifizierter URI, einschließlich Schema, Host, (optionaler) Port und Pfad; oder
  • ein Pfad. In diesem Fall muss der Host Hostheader angegeben werden

HTTP-Version gibt die Version des HTTP-Protokolls an, das der Client verwendet. Für HTTP 1.1-Anforderungen muss dies immer HTTP/1.1 .

Die Anforderungszeile endet mit einem Wagenrücklauf-Zeilenvorschubpaar, normalerweise dargestellt durch \r\n .

Anforderungsheaderfelder

Header-Felder (normalerweise nur als "Header" bezeichnet) können einer HTTP-Anfrage hinzugefügt werden, um zusätzliche Informationen zur Anfrage bereitzustellen. Ein Header hat eine Semantik, die den Parametern ähnelt, die an eine Methode in einer beliebigen Programmiersprache übergeben werden, die solche Funktionen unterstützt.

Eine Anfrage mit Host , User-Agent und Referer Headern könnte folgendermaßen aussehen:

GET /search HTTP/1.1 \r\n
Host: google.com \r\n
User-Agent: Chrome/54.0.2803.1 \r\n
Referer: http://google.com/ \r\n
\r\n

Eine vollständige Liste der unterstützten HTTP 1.1-Anforderungsheader finden Sie in der Spezifikation . Die häufigsten sind:

  • Host - der Hostnamenteil der Anforderungs-URL (in HTTP / 1.1 erforderlich)
  • User-Agent - eine Zeichenfolge, die den anfordernden Benutzeragenten darstellt;
  • Referer - der URI, von dem aus der Client hierher Referer wurde; und
  • If-Modified-Since - gibt ein Datum an, an dem der Server feststellen kann, ob sich eine Ressource geändert hat, und gibt an, dass der Client eine zwischengespeicherte Kopie verwenden kann, falls dies nicht der Fall ist.

Ein Header sollte als Name: Value CRLF . Name ist der Name der Kopfzeile, z. B. User-Agent . Value ist die ihm zugewiesene Daten, und die Zeile sollte mit einer CRLF enden. Die Namen der Headern unterscheiden nicht zwischen Groß- und Kleinschreibung und dürfen nur Buchstaben, Ziffern und die Zeichen !#$%&'*+-.^_`|~ (RFC7230 Abschnitt 3.2.6 Feldwertkomponenten) verwenden.

Der Name des Referer Header-Feldes ist ein Tippfehler für 'Referrer', der versehentlich in RFC1945 eingeführt wurde .

Nachrichtenkörper

Einige HTTP-Anforderungen enthalten möglicherweise einen Nachrichtentext. Dies sind zusätzliche Daten, die der Server zur Verarbeitung der Anfrage verwendet. Nachrichtentexte werden am häufigsten in POST- oder PATCH- und PUT-Anforderungen verwendet, um neue Daten bereitzustellen, die der Server auf eine Ressource anwenden soll.

Anforderungen, die einen Nachrichtentext enthalten, sollten immer die Länge in Bytes mit Content-Length Header enthalten.

Ein Nachrichtentext ist nach allen Kopfzeilen und einer doppelten CRLF enthalten. Eine PUT-Beispielanforderung mit einem Body könnte folgendermaßen aussehen:

PUT /files/129742 HTTP/1.1\r\n
Host: example.com\r\n
User-Agent: Chrome/54.0.2803.1\r\n
Content-Length: 202\r\n
\r\n
This is a message body. All content in this message body should be stored under the 
/files/129742 path, as specified by the PUT specification. The message body does
not have to be terminated with CRLF.

HEAD und TRACE Anforderungen dürfen keinen Nachrichtentext enthalten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow