HTTP
HTTP-förfrågningar
Sök…
parametrar
HTTP-metod | Ändamål |
---|---|
OPTIONS | Hämta information om kommunikationsalternativen (tillgängliga metoder och rubriker) tillgängliga på den angivna URI-begäran. |
GET | Hämta de data som identifierats av begäran URI, eller de data som produceras av skriptet tillgängligt på begäran URI. |
HEAD | Identisk med GET förutom att ingen meddelandekropp kommer att returneras av servern: endast rubriker. |
POST | Skicka ett block med data (specificerat i meddelandekroppen) till servern för tillägg till resouce som anges i begäran URI. Vanligtvis används för formbehandling. |
PUT | Lagra den bifogade informationen (i meddelandekroppen) som en ny eller uppdaterad resurs under den givna begäran URI. |
DELETE | Radera eller kö för att radera den resurs som identifierats av begäran URI. |
TRACE | I huvudsak ett ekokommando: en fungerande, kompatibel HTTP-server måste skicka hela förfrågan tillbaka som en del av ett 200 (OK) svar. |
Anmärkningar
CONNECT
metoden reserveras av specifikationerna för metoddefinitioner för användning med proxyer som kan växla mellan proxyerings- och tunnellägen (t.ex. för SSL-tunneling).
Skicka en minimal HTTP-förfrågan manuellt med Telnet
Detta exempel visar att HTTP är ett textbaserat Internet-kommunikationsprotokoll och visar en grundläggande HTTP-begäran och motsvarande HTTP-svar.
Du kan använda Telnet för att manuellt skicka en minimal HTTP-begäran från kommandoraden, enligt följande.
Starta en Telnet-session till webbservern
www.example.org
på port 80:telnet www.example.org 80
Telnet rapporterar att du har anslutit till servern:
Connected to www.example.org. Escape character is '^]'.
Ange en förfrågningsrad för att skicka en GET-förfrågan URL-sökväg
/
, med HTTP 1.1GET / HTTP/1.1
Ange en HTTP-huvudfältrad för att identifiera värdnamnsdelen av den URL som krävs, vilket krävs i HTTP 1.1
Host: www.example.org
Ange en tom rad för att slutföra begäran.
Webbservern skickar HTTP-svaret, som visas i Telnet-sessionen.
Hela sessionen är som följer. Den första raden i svaret är HTTP-statusraden , som inkluderar statuskoden 200 och statustexten OK , som indikerar att begäran har behandlats framgångsrikt. Detta följs av ett antal HTTP-huvudfält, en tom rad och HTML-svaret.
$ 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
elementet och tomma rader avlägsnas från HTML-respons, för korthets skull.)
Grundläggande förfrågningsformat
I HTTP 1.1 består en minimal HTTP-begäran av en förfrågningsrad och en Host
rubrik:
GET /search HTTP/1.1 \r\n
Host: google.com \r\n
\r\n
Den första raden har detta format:
Method Request-URI HTTP-Version CRLF
Method
bör vara en giltig HTTP-metod; en av [1] [2] :
-
OPTIONS
-
GET
-
HEAD
-
POST
-
PUT
-
DELETE
-
PATCH
-
TRACE
-
CONNECT
Request-URI
anger antingen URI eller sökvägen till resursen som klienten begär. Det kan vara antingen:
- en fullt kvalificerad URI, inklusive schema, värd, (valfri) port och väg; eller
- en väg, i vilket fall värden måste anges i
Host
HTTP-Version
anger vilken version av HTTP-protokollet klienten använder. För HTTP 1.1-förfrågningar måste detta alltid vara HTTP/1.1
.
Förfrågningsradet slutar med ett vagnretur - radmatningspar, vanligtvis representerat av \r\n
.
Begär rubrikfält
Rubrikfält (vanligtvis bara kallade "rubriker") kan läggas till i en HTTP-begäran för att ge ytterligare information med begäran. En rubrik har semantik som liknar parametrar som skickas till en metod på alla programmeringsspråk som stöder sådana saker.
En begäran med rubrikerna Host
, Referer
User-Agent
och Referer
kan se ut så här:
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
En fullständig lista över stöds HTTP 1.1-begärandesrubriker finns i specifikationen . De vanligaste är:
-
Host
- värdnamnsdelen av förfrågningsadressen (krävs i HTTP / 1.1) -
User-Agent
- en sträng som representerar den användaragent som begär; -
Referer
- URI som klienten hänvisades hit från; och -
If-Modified-Since
- ger ett datum som servern kan använda för att avgöra om en resurs har ändrats och indikerar att klienten kan använda en cache-kopia om den inte har gjort det.
En rubrik bör formas som Name: Value CRLF
. Name
är rubriknamnet, till exempel User-Agent
. Value
är de data som tilldelats den, och linjen bör slutas med en CRLF. Rubriknamn är okänsliga för versaler och får bara använda bokstäver, siffror och tecken !#$%&'*+-.^_`|~
(RFC7230 avsnitt 3.2.6 Fältvärdeskomponenter ).
Referer
är en skrivfel för 'referrer', som infördes av misstag i RFC1945 .
Meddelandeorgan
Vissa HTTP-förfrågningar kan innehålla ett meddelandeorgan. Detta är ytterligare data som servern kommer att använda för att behandla begäran. Meddelandekroppar används oftast i POST- eller PATCH- och PUT-förfrågningar för att tillhandahålla ny data som servern ska tillämpa på en resurs.
Förfrågningar som innehåller en meddelandekropp ska alltid inkludera dess längd i byte med Content-Length
.
Ett meddelandeorgan ingår efter alla rubriker och en dubbel CRLF. Ett exempel på PUT-förfrågan med en kropp kan se ut så här:
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
och TRACE
förfrågningar får inte innehålla ett meddelandeorgan.