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.

  1. 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 '^]'.
    
  1. Ange en förfrågningsrad för att skicka en GET-förfrågan URL-sökväg / , med HTTP 1.1

    GET / HTTP/1.1
    
  2. 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
    
  3. 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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow