HTTP
HTTP-statuskoder
Sök…
Introduktion
I HTTP är statuskoder en maskinläsbar mekanism som indikerar resultatet av en tidigare utfärdad begäran. Från RFC 7231, sek. 6 : "Statuskodelementet är en tresiffrig heltalskod som ger resultatet av försöket att förstå och uppfylla begäran."
Den formella grammatiken tillåter koder att vara allt mellan 000
och 999
. Men bara intervallet 100
till 599
har tilldelat betydelse.
Anmärkningar
HTTP / 1.1 definierar ett antal numeriska HTTP-statuskoder som visas i statusraden - den första raden i ett HTTP-svar - för att sammanfatta vad klienten ska göra med svaret.
Den första siffran i en statuskod definierar svarets klass:
-
1xx
informativ -
2xx
klientförfrågan lyckades -
3xx
Begäran omdirigerad - ytterligare åtgärder krävs, till exempel en ny begäran -
4xx
klient fel - inte upprepa samma begäran -
5xx
Serverfel - kanske försöka igen
I praktiken är det inte alltid lätt att välja den mest lämpliga statuskoden.
500 Internt serverfel
Ett HTTP 500 internt serverfel är ett allmänt meddelande som betyder att servern stötte på något oväntat. Program (eller den övergripande webbservern) bör använda en 500 när det finns ett fel vid bearbetning av begäran - dvs ett undantag kastas, eller ett resursvillkor förhindrar att processen slutförs.
Exempel på statusrad:
HTTP/1.1 500 Internal Server Error
404 Ej Hittad
HTTP 404 Not Found betyder att servern inte kunde hitta sökvägen med den URI som klienten begärde.
HTTP/1.1 404 Not Found
Oftast raderades den begärda filen, men ibland kan det vara en felkonfiguration av dokumentrotten eller brist på behörigheter (även om behörigheter saknas oftare utlöser HTTP 403 förbjuden).
Till exempel skriver Microsofts IIS 404.0 (0 är delstatus) till sina loggfiler när den begärda filen raderades. Men när den inkommande begäran blockeras av reglerna för begäran filtrerar den 404.5-404.19 för att logga filer enligt vilken regel som blockerar begäran. En mer detaljerad felkodreferens finns på Microsofts support .
Neka åtkomst till skyddade filer
Använd 403 Forbidden när en klient har begärt en resurs som är otillgänglig på grund av befintliga åtkomstkontroller. Om din app till exempel har en /admin
rutt som bara ska vara tillgänglig för användare med administrativa rättigheter, kan du använda 403 när en normal användare begär sidan.
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
Framgångsrik begäran
Skicka ett HTTP-svar med statuskod 200
att indikera en framgångsrik begäran. HTTP-svarstatusrad är då:
HTTP/1.1 200 OK
Statustexten OK
är bara informativ. Svarorganet (meddelande nyttolast) bör innehålla en representation av den begärda resursen. Om det inte finns någon representation, bör inget innehåll användas.
Svara på en villkorlig begäran om cache-innehåll
Skicka en 304 Not Modified svarstatus från servern skicka som svar på en klientbegäran som innehåller rubriker If-Modified-Since
och If-None-Match
, om begäringsresursen inte har ändrats.
Om till exempel en klientbegäran för en webbsida innehåller rubriken If-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
och sidan inte har ändrats sedan dess, svara med statusraden HTTP/1.1 304 Not Modified
.
Topp 10 HTTP-statuskod
2xx framgång
- 200 OK - Standardsvar för framgångsrika HTTP-förfrågningar.
- 201 Skapad - Begäran har uppfyllts, vilket resulterar i skapandet av en ny resurs.
- 204 Inget innehåll - Servern har behandlat begäran och returnerar inget innehåll.
3xx omdirigering
- 304 Not Modified - Indikerar att resursen inte har ändrats sedan den version som anges av förfrågningsrubrikerna
If-Modified-Since
ellerIf-None-Match
.
4xx-klientfel
- 400 dålig begäran - servern kan inte eller kommer inte att behandla begäran på grund av ett uppenbart klientfel (t.ex. felformad begärtsyntax, för stor storlek, ogiltig inramning av begäran eller med vilseledande begäran).
- 401 Obehörig - Liknar 403 förbjuden , men specifikt för användning när autentisering krävs och har misslyckats eller ännu inte har tillhandahållits. Svaret måste innehålla ett
WWW-Authenticate
rubrikfält som innehåller en utmaning som är tillämplig på den begärda resursen. - 403 Forbidden - Begäran var en giltig begäran, men servern vägrar att svara på den. Användaren kan vara inloggad men har inte nödvändiga behörigheter för resursen.
- 404 Not Found - Den begärda resursen kunde inte hittas men kan vara tillgänglig i framtiden. Efterföljande begäranden från klienten är tillåtna.
- 409 Konflikt - Indikerar att begäran inte kunde behandlas på grund av konflikt i begäran, till exempel en redigeringskonflikt mellan flera samtidiga uppdateringar.
5xx serverfel
- 500 Internt serverfel - Ett generiskt felmeddelande som ges när ett oväntat tillstånd inträffade och inget mer specifikt meddelande är lämpligt.