HTTP
HTTP-reacties
Zoeken…
parameters
Status code | Reden-zin - beschrijving |
---|---|
100 | Doorgaan - de client moet het volgende deel van een meerdelig verzoek verzenden. |
101 | Schakelen tussen protocollen - de server verandert de versie of het type protocol dat in deze communicatie wordt gebruikt. |
200 | OK - de server heeft het verzoek van de client ontvangen en voltooid. |
201 | Gemaakt - de server heeft het verzoek geaccepteerd en een nieuwe bron gemaakt, die beschikbaar is onder de URI in de koptekst Location . |
202 | Geaccepteerd - de server heeft het verzoek van de client ontvangen en geaccepteerd, maar de verwerking is nog niet gestart of voltooid. |
203 | Niet-gezaghebbende informatie - de server retourneert gegevens die een sub- of superset kunnen zijn van de informatie die beschikbaar is op de oorspronkelijke server. Hoofdzakelijk gebruikt door proxy's. |
204 | Geen inhoud - gebruikt in plaats van 200 (OK) wanneer er geen hoofdgedeelte is van de reactie. |
205 | Reset inhoud - identiek aan 204 (geen inhoud), maar de client moet de actieve documentweergave opnieuw laden. |
206 | Gedeeltelijke inhoud - wordt gebruikt in plaats van 200 (OK) wanneer de client om een Range vroeg. |
300 | Meerdere keuzes - de gevraagde bron is beschikbaar op meerdere URI's en de client moet het verzoek omleiden naar een URI die is opgegeven in de lijst in de berichttekst. |
301 | Permanent verplaatst - de gevraagde bron is niet langer beschikbaar op deze URI, en de client moet deze en alle toekomstige verzoeken omleiden naar de URI die is opgegeven in de koptekst Location . |
302 | Gevonden - de bron bevindt zich tijdelijk onder een andere URI. Dit verzoek moet worden doorgestuurd op bevestiging van de gebruiker om de URI in de Location header, maar toekomstige verzoeken mag niet worden veranderd. |
303 | Zie Overige - zeer vergelijkbaar met 302 (gevonden), maar vereist geen gebruikersinvoer om door te verwijzen naar de opgegeven URI. De verstrekte URI moet worden opgehaald met een GET-verzoek. |
304 | Niet gewijzigd - de client heeft een If-Modified-Since of vergelijkbare header verzonden en de bron is sindsdien niet meer gewijzigd; de client moet een kopie in de cache van de bron weergeven. |
305 | Gebruik proxy - de aangevraagde bron moet opnieuw worden aangevraagd via de proxy die is opgegeven in het veld Location header. |
307 | Tijdelijke omleiding - identiek aan 302 (gevonden), maar HTTP 1.0-clients ondersteunen geen 307 antwoorden. |
400 | Onjuist verzoek - de client heeft een onjuist verzoek met syntaxisfouten verzonden en moet het verzoek wijzigen om dit te corrigeren voordat het wordt herhaald. |
401 | Niet geautoriseerd - de gevraagde bron is niet beschikbaar zonder authenticatie. De client kan het verzoek herhalen met behulp van een Authorization om verificatiegegevens te verstrekken. |
402 | Betaling vereist - gereserveerde, niet-gespecificeerde statuscode voor gebruik door applicaties die gebruikersabonnementen vereisen om inhoud te bekijken. |
403 | Verboden - de server begrijpt het verzoek, maar weigert het te vervullen vanwege bestaande toegangscontroles. Het verzoek mag niet worden herhaald. |
404 | Niet gevonden - er is geen bron beschikbaar op deze server die overeenkomt met de gevraagde URI. Kan worden gebruikt in plaats van 403 om te voorkomen dat details van toegangscontrole worden blootgesteld. |
405 | Methode niet toegestaan - de bron ondersteunt de aanvraagmethode (HTTP-werkwoord) niet; de kop Allow lijst met acceptabele verzoekmethoden. |
406 | Niet acceptabel - de resource heeft kenmerken die in strijd zijn met de accept-headers die in het verzoek zijn verzonden. |
407 | Proxy-authenticatie vereist - vergelijkbaar met 401 (ongeautoriseerd), maar geeft aan dat de client zich eerst moet verifiëren met de tussenliggende proxy. |
408 | Verzoek time-out - de server verwachtte een ander verzoek van de client, maar deze werd niet binnen een aanvaardbare termijn verstrekt. |
409 | Conflict - het verzoek kon niet worden voltooid omdat het conflicteerde met de huidige status van de bron. |
410 | Weg - vergelijkbaar met 404 (niet gevonden), maar geeft een permanente verwijdering aan. Er is geen doorstuuradres beschikbaar. |
411 | Vereiste lengte - de client heeft geen geldige header voor Content-Length opgegeven en moet dit doen voordat de server dit verzoek accepteert. |
412 | Voorwaarde mislukt - de resource is niet beschikbaar met alle voorwaarden die zijn opgegeven door de voorwaardelijke headers die door de client zijn verzonden. |
413 | Verzoekentiteit te groot - de server kan momenteel geen berichten met de lengte van de client verwerken. |
414 | Verzoek-URI te lang - de server weigert het verzoek omdat de verzoek-URI langer is dan de server bereid is te interpreteren. |
415 | Niet-ondersteund mediatype - de server ondersteunt het MIME- of mediatype dat door de client is opgegeven niet en kan deze aanvraag niet verwerken. |
416 | Gevraagd bereik niet bevredigend - de client heeft om een bereik van bytes gevraagd, maar de server kan geen inhoud aan die specificatie leveren. |
417 | Verwachting mislukt - de client heeft in de header Expect opgegeven beperkingen waaraan de server niet kan voldoen. |
500 | Interne serverfout - de server heeft een onverwachte voorwaarde of fout ondervonden waardoor deze aanvraag niet kon worden voltooid. |
501 | Niet geïmplementeerd - de server ondersteunt niet de functionaliteit die nodig is om het verzoek te voltooien. Meestal gebruikt om een aanvraagmethode aan te geven die door geen enkele bron wordt ondersteund. |
502 | Slechte gateway - de server is een proxy en ontving een ongeldige reactie van de upstream-server tijdens het verwerken van dit verzoek. |
503 | Service niet beschikbaar - de server wordt zwaar belast of onderhoudt momenteel niet de capaciteit om aan dit verzoek te voldoen. |
504 | Gateway Timeout - de server is een proxy en heeft niet tijdig een reactie van de upstream-server ontvangen. |
505 | HTTP-versie niet ondersteund - de server ondersteunt de versie van het HTTP-protocol niet waarmee de client zijn verzoek heeft ingediend. |
Standaard antwoordformaat
Wanneer een HTTP-server een goed gevormd HTTP-verzoek ontvangt, moet deze de informatie in dat verzoek verwerken en een reactie terugsturen naar de client. Een eenvoudige HTTP 1.1-reactie kan er als volgt uitzien, meestal gevolgd door een aantal koptekstvelden en mogelijk een antwoordtekst:
HTTP/1.1 200 OK \r\n
HTTP/1.1 404 Not Found \r\n
HTTP/1.1 503 Service Unavailable \r\n
Een eenvoudige HTTP 1.1-reactie heeft dit formaat:
HTTP-Version Status-Code Reason-Phrase CRLF
Net als bij een aanvraag geeft HTTP-Version
de gebruikte versie van het HTTP-protocol aan; voor HTTP 1.1 moet dit altijd de string HTTP/1.1
.
Status-Code
is een driecijferige code die de status van het verzoek van de klant aangeeft. Het eerste cijfer van deze code is de statusklasse , waarmee de statuscode in een van de 5 antwoordcategorieën wordt geplaatst [1] :
-
1xx
Informatief - de server heeft het verzoek ontvangen en de verwerking gaat door -
2xx
Succes - de server heeft aanvaard en verwerkt het verzoek -
3xx
omleiding - verdere actie van de klant is nodig om het verzoek te voltooien -
4xx
clientfouten - de client heeft een verzoek verzonden dat onjuist was of waaraan niet kan worden voldaan -
5xx
Server Fouten - het verzoek geldig was, maar de server kan niet voldoen aan het op dit moment
Reason-Phrase
is een korte beschrijving van de statuscode. Code 200
heeft bijvoorbeeld een redenzin van OK
; code 404
heeft een zin Not Found
. Een volledige lijst met redenzinnen is beschikbaar in Parameters, hieronder of in de HTTP-specificatie .
De regel eindigt met een regelterugloop - regelinvoerpaar, meestal voorgesteld door \r\n
.
Aanvullende kopteksten
Net als een HTTP-verzoek, kan een HTTP-antwoord extra headers bevatten om het antwoord te wijzigen of aan te vullen.
Een volledige lijst met beschikbare headers is gedefinieerd in §6.2 van de specificatie . De meest gebruikte headers zijn:
-
Server
, die functioneert als eenUser-Agent
aanvraagheader voor de server; -
Location
, die wordt gebruikt bij 201 en 3xx statusreacties om een URI aan te geven waarnaar moet worden omgeleid; en -
ETag
, een unieke identificatie voor deze versie van de geretourneerde bron om clients in staat te stellen het antwoord te cachen.
Reactiekopteksten komen na de statusregel en worden net als bij verzoekkopteksten als volgt gevormd:
Name: Value CRLF
Name
geeft de kopnaam, zoals ETag
of Location
, en Value
geeft de waarde die de server voor die koptekst instelt. De regel eindigt met een CRLF.
Een reactie met headers kan er zo uitzien:
HTTP/1.1 201 Created \r\n
Server: WEBrick/1.3.1 \r\n
Location: http://example.com/files/129742 \r\n
Message Bodies
Net als bij aanvraaglichamen kunnen HTTP-antwoorden een berichtlichaam bevatten. Dit levert extra gegevens op die de client zal verwerken. Met name moeten 200 OK-antwoorden op een goed gevormd GET-verzoek altijd een berichttekst bevatten met de gevraagde gegevens. (Als er geen is, is 204 Geen inhoud een geschikter antwoord).
Een berichttekst is opgenomen na alle headers en een dubbele CRLF. Wat aanvragen betreft, moet de lengte in bytes worden opgegeven met de kop Content-Length
. Een succesvol antwoord op een GET-verzoek kan er daarom als volgt uitzien:
HTTP/1.1 200 OK\r\n
Server: WEBrick/1.3.1\r\n
Content-Length: 39\r\n
ETag: 4f7e2ed02b836f60716a7a3227e2b5bda7ee12c53be282a5459d7851c2b4fdfd\r\n
\r\n
Nobody expects the Spanish Inquisition.