Yn 'e wrâld fan webûntwikkeling spylje HTTP-flaterkoades in fitale rol by it beynfloedzjen fan de brûkersûnderfining en reputaasje fan in webside. Yn dit artikel sille wy in folsleine list mei serverflaterkoades beskôgje, har betsjuttingen analysearje en learje hoe't jo serverantwurdkoades effektyf kinne ynterpretearje om problemen op te lossen en de prestaasjes fan webapps te optimalisearjen.
Wat is in HTTP-antwurdkoade
HTTP-antwurdkoade is de taal fan webservers dy't browseroanfragen oerset yn begryplike ynstruksjes. It is as in dichter dy't firtuele fragen beantwurdet, har betsjutting en rjochting jout. Antwurdkoades binne net altyd HTTP-flaterkoades. Bygelyks, "200 OK" betsjut dat alles OK is, mar HTTP-flater "404 net fûn" betsjut as de side ferlern is yn 'e firtuele romte. Elke koade is in unike útdrukking fan 'e serverstatus, wêrfan de dekodearring ús kin begripe wat der bart oan' e oare kant fan 'e firtuele wrâld.
1xx koades (ynformaasje)
1xx-statuskoades yn it HTTP-protokol binne in soarte fan earste keppeling yn 'e dialooch tusken de tsjinner en de kliïnt. Yn stee fan in folslein antwurd op in fersyk, jouwe se ynformaasje oer de hjoeddeistige status, wêrtroch gegevensútwikseling effisjinter makket. Litte wy se in tichterby besjen:
100 Trochgean . HTTP-antwurdkoade wêryn't de tsjinner grien ljocht jout oan de brûker, wêrtroch't hy feilich trochgean kin mei it ferstjoeren fan in grutte oanfraach.
101 Protokollen wikselje . De server fertelt de kliïnt dat it de regels fan it spul feroaret, bygelyks troch oer te gean fan HTTP nei it feiliger HTTPS. Yn dit gefal wurdt de "Upgrade"-header brûkt foar de protokolwiziging.
102 Ferwurkjen . Dizze koade is as in berjocht dat de tsjinner it fersyk akseptearre hat, mar noch dwaande is mei in komplekse operaasje.
103 Iere hints . Hjir stjoert de tsjinner ferskate yndikative kopteksten nei de kliïnt foar it haadantwurd, en warskôget foar eat dat yn 'e neie takomst relevant wêze kin.
2xx-koade (suksesfol)
HTTP-flaterkoades yn 'e groep 2xx jouwe in suksesfol fersyk fan de tsjinner oan. Se fungearje yn wêzen as in "grien ljocht" yn 'e omfang fan webkommunikaasje, befêstigje dat alles neffens plan giet en mei súkses foltôge is.
200 OK . Dizze status wurdt brûkt as de tsjinner in fersyk sûnder problemen ferwurket mei de GET-metoade en de oanfrege gegevens as antwurd weromjout. De koptekst "Content-Type" rapportearret it ynhâldstype yn it antwurd. It ynformearret de kliïnt allinich dat it fersyk slagge wie.
201 Oanmakke . Hjir kundiget de tsjinner it oanmeitsjen fan in nije boarne oan.
202 Akseptearre . De tsjinner lit de brûker witte dat it fersyk akseptearre is, mar it sil tiid duorje foardat it reagearret.
203 Net-autoritative ynformaasje . Dizze koade jout de kliïnt gegevens dy't miskien net offisjeel binne, mar kinne brûkt wurde foar fergeliking.
204 Gjin ynhâld . De tsjinner hat it fersyk ferwurke, mar jout gjin ekstra ynhâld werom.
205 Ynhâld weromsette . Hjir wurdt de kliïnt ynstruearre om de hjoeddeiske werjefte of gegevens nei it ferstjoeren werom te setten.
206 Partiële ynhâld . Dit gefal jout oan dat it antwurd mar in diel fan 'e oanfrege ynhâld befettet. De koptekst "Content-Range" jout it dielde ynhâldberik oan.
207 Meardere status. De tsjinner hat in fersyk foar meardere operaasjes fan 'e kliïnt mei súkses foltôge, en it antwurd befettet ynformaasje oer de status fan elk fan 'e operaasjes.
226 IM brûkt . Dizze koade jout oan dat de tsjinner de Incremental Metadata (IM) metoade brûkte en reagearre troch allinich de oanpaste boarnedielen oan 'e kliïnt troch te jaan.
3xx-koades (trochferwizings)
3xx-koades yn it HTTP-protokol binne as oanwizers dy't de brûker liede nei in nije boarne lokaasje. Se ynformearje de klant dat ferfolchstappen moatte wurde nommen om de frege ynhâld te krijen of om te wurde omlaat nei in oare boarne. Lit ús ferdjipje yn 'e details fan elk fan har:
300 Meardere Keuzes . De kliïnt krijt in sinjaal dat der ferskate mooglike lokaasjes binne foar de boarne en krijt as antwurd in kar. Yn 'e hjoeddeiske omstannichheden kin de koptekst "Lokaasje" alternative opsjes foar de boarne oanjaan.
301 Permanint ferpleatst. De server rapportearret werom oan de brûker dat de boarne permanint nei in oare lokaasje ferpleatst is.
302 Fûn . Dizze HTTP-koade is fergelykber mei in tydlike trochferwizing. De server ynformearret de konsumint dat de boarne tydlik beskikber is op in oare URL. De koptekst "Lokaasje" wiist nei de nije URL foar de tydlike trochferwizing.
303 Sjoch Oar . De kliïnt wurdt ferteld dat de boarne beskikber is op in oare URL en moat in GET-fersyk nei dit nije adres dwaan.
304 Net oanpast . Dizze status fertelt de kliïnt dat de boarne net feroare is sûnt it lêste fersyk en net opnij ynladen hoecht te wurden. By it meitsjen fan in fersyk wurdt de header "If-Modified-Since" brûkt om te kontrolearjen oft de boarne oanpast is.
305 Proxy brûke. As antwurd meldt de tsjinner dat it de oantsjutte proxy brûke moat om tagong te krijen ta de oanfrege boarne.
306 (reservearre) - De koade is reservearre, mar wurdt eins net brûkt.
307 Tydlike trochferwizing . Dizze koade is fergelykber mei 302 Fûn, mar fereasket dat de kliïnt yn 'e oanfraachmetoade bliuwt dy't brûkt waard yn it orizjinele fersyk.
308 Permaninte trochferwizing . Jout oan dat de boarne permanint nei in nije URI ferhuze is en dat de kliïnt de nije URI brûke moat foar alle takomstige oanfragen.
4xx HTTP-flater (klantfouten)
HTTP 4xx flater koades jouwe client flaters. Dit betsjut dat it probleem oan 'e brûkerskant leit, lykas de webbrowser of app.
400 Minne oanfraach . De tsjinner kin de oanfraach net ferwurkje fanwegen syntaksisflaters, ûnjildige gegevens of oare flaters oan 'e kliïntkant.
401 Net autorisearre. De tsjinner kin it fersyk net ferwurkje fanwegen syntaksisflaters, ûnjildige gegevens of oare flaters oan 'e kliïntkant.
402 Betelling fereaske . De koade is op it stuit net aktyf en is reservearre foar takomstich gebrûk. It kin oanjaan dat jo moatte betelje foardat jo yn 'e takomst tagong krije ta de boarne.
HTTP-flater 403 ferbean. De kliïnt hat net genôch rjochten om tagong te krijen ta de oanfrege boarne.
404 Net fûn. De oanfrege boarne bestiet net op 'e tsjinner. Dit is ien fan 'e meast foarkommende brûkersflaters.
405 Metoade net tastien . De tsjinner stipet de oantsjutte oanfraachmetoade net yn dizze boarne. De koptekst "Tastean" jout de tastiene metoaden oan foar de boarne. Mei dizze koade,
406 Net akseptabel. De server kin gjin gegevens leverje yn in formaat dat akseptearre wurde kin troch de kliïnt.
407 Proxy-autentikaasje fereaske . Autentikaasje op proxytsjinner is fereaske foar tagong ta de oanfrege boarne.
408 Time-out foar oanfraach . De tsjinner wachte op in oanfraach fan 'e kliïnt, mar de tiid rûn op. De koptekst "Retry-After" kin de tiid oanjaan wêrnei't it fersyk opnij besocht wurde kin.
409 Konflikt. It fersyk kin net foltôge wurde fanwegen in konflikt mei de hjoeddeiske boarnestatus.
410 Fuort . De oanfrege boarne bestie earder, mar is no wiske en it werombringen dêrfan wurdt net ferwachte.
411 Fereaske lingte . De server freget om de ynhâldslingte yn it fersyk op te jaan; it ûntbrekken fan dizze ynformaasje wurdt beskôge as in flater.
412 Foarôfgeande betingst mislearre . In foarôfgeande betingst yn it fersyk wurdt net foldien, wêrtroch't it net útfierd wurde kin.
413 Payload te grut . De grutte fan 'e oanfraachgegevens is grutter as de serverlimiten.
414 URI te lang . De URI-lingte yn it fersyk giet fierder as akseptabele limiten.
415 Net stipe mediatype . De tsjinner kin it gegevenstype dat yn it fersyk opjûn is net ferwurkje.
416 Berik net tefredenstellend . HTTP-flater wêrby't it oanfrege berik net oerienkomt mei de hjoeddeiske servergegevens.
417 Ferwachting mislearre . De ferwachte betingst yn 'e "Ferwachtsje"-header waard net foldien.
418 Ik bin in teepot . Dizze koade is opnommen as in grap en ymplisearret gjin echte aksje foar de brûker of server, en is gjin folsleine flater. It jout oan dat de server in teepot is en gjin kofje meitsje kin.
421 Ferkeard rjochte fersyk . De tsjinner ferwurket it fersyk net fanwegen in flater yn it fersyk of de tsjinnerkonfiguraasje.
422 Net-ferwurkbere entiteit . De tsjinner begrypt it fersyk, mar ferwurket it net fanwegen gegevensflaters.
423 Fêst. De boarne is blokkearre en kin net ferwurke wurde.
424 Mislearre ôfhinklikens . It fersyk is ôfhinklik fan in oar net-útfierd fersyk.
425 Te betiid. De tsjinner is net klear om it fersyk te ferwurkjen fanwegen syn te betiid oankomst.
426 Upgrade fereaske . De server fereasket it gebrûk fan in mear avansearre protokol om it fersyk te ferwurkjen.
428 Foarôfgeande betingst fereaske . De tsjinner fereasket dat bepaalde foarôfgeande betingsten yn it fersyk wurde oantsjutte.
429 Tefolle oanfragen . De kliïnt hat tefolle oanfragen yn in koarte tiid ferstjoerd, wêrtroch't de limiten fan 'e server oerskreaun wurde.
431 Oanfraachkoptekstfjilden te grut . Oanfraachkopteksten binne grutter as de maksimaal tastiene grutte.
449 Opnij besykje mei. Jout oan dat it fersyk net troch de hjoeddeiske server útfierd wurde kin, mar mei súkses ferwurke wurde kin troch in oare server, en de kliïnt moat it fersyk opnij besykje mei in nije URI.
451 Net beskikber om juridyske redenen . De boarne is net beskikber om juridyske redenen.
499 Kliïnt sletten fersyk . De tsjinner ûntfong it fersyk, mar de ferbining waard troch de kliïnt sletten foardat de ferwurking foltôge wie.
HTTP 5xx flater (tsjinner flaters)
HTTP 5xx-flaterkoades jouwe de serverproblemen oan. Dizze koades jouwe problemen oan dy't bard binne oan 'e serverkant, wêrtroch't de server it fersyk fan 'e brûker net op in goeie manier kin ferwurkje. Litte wy se in tichterby besjen:
HTTP-flater 500 Ynterne serverflater . De server komt ûnferwachte omstannichheden tsjin dy't foarkomme dat it fersyk foltôge wurdt. De header "Server" kin oanjaan op hokker server de flater barde.
501 Net ymplementearre . De server stipet de funksjonaliteit net dy't nedich is om it fersyk fan 'e kliïnt te ferwurkjen. De "Via"-header kin de proxyserver oanjaan wêrtroch't de flater bard is.
502 Bad Gateway . Dizze koade betsjut dat de server dy't as proxy fungearret in ferkeard antwurd fan in oare server ûntfongen hat.
HTTP- flater 503-tsjinst net beskikber . De server kin tydlik gjin oanfragen ferwurkje.
504 Gateway Timeout . De tsjinner, dy't as proxy fungearret, krige gjin tydlike reaksje fan in oare tsjinner.
505 HTTP-ferzje net stipe . De tsjinner stipet de HTTP-protokolferzje dy't yn it fersyk oantsjutte is net. As reservekopy kin de koptekst "Upgrade" stipe protokollen oanjaan.
506 Fariant ûnderhannelet ek . Dizze status wurdt net brûkt yn HTTP/1.1; as de server lykwols in ynterne konfiguraasje detektearret dy't resulteart yn dûbelsinnigens by ynhâldsûnderhanneling, kin it dit antwurd brûke.
507 Unfoldwaande opslach . De tsjinner kin it fersyk net ferfolje fanwegen ûnfoldwaande opslachromte op 'e tsjinner.
508 Loop ûntdutsen . De tsjinner hat in lus ûntdutsen by it ferwurkjen fan it fersyk, en wegeret it fersyk te foltôgjen om in ûneinige lus te foarkommen.
509 Bânbreedtelimyt oerskreden . De flater komt foar as de bânbreedte fan 'e server oerskreden wurdt fanwegen in hege hoemannichte oanfragen of ferkear.
510 Net útwreide . De kliïnt moat ekstra útwreidings oerdrage om it fersyk troch te setten.
511 Netwurkautentikaasje fereaske . De kliïnt moat himsels autentisearje om tagong te krijen ta it netwurk.
Hoe kinne jo de sidestatuskoade kontrolearje
Yn dizze seksje sille wy beskôgje trije haadmanieren om de sidestatuskoade te kontrolearjen: fia de kommandorigel, mei in webblêder, en it brûken fan ûnôfhinklike online tsjinsten. Elk fan dizze metoaden hat syn eigen foardielen en kin nuttich wêze yn ferskate situaasjes.
Kontrolearje tsjinner antwurd fia kommandorigel
De kommandorigel biedt in handige manier om de sidestatuskoade te kontrolearjen sûnder in webblêder te brûken. Foar dizze metoade moatte jo de kommandorigel iepenje en it kommando brûke:
curl -I http://page-address
Dit kommando stjoert in HEAD-fersyk (allinich kopteksten fersyk) nei de opjûne URL en toant ynformaasje ynklusyf de HTTP-statuskoade:
It hjirboppe foarbyld lit in suksesfolle antwurdkoade sjen. Yn it gefal fan in antwurd dy't in flaterkoade befettet, lykas 404 Net fûn HTTP-flater, sil it resultaat lykje:
Kontrolearje de tsjinner antwurd fia de browser konsole
De webbrowser-ûntwikkelderskonsole biedt ark foar it útfieren fan ferskate operaasjes, ynklusyf it kontrolearjen fan de sidestatuskoade. Om de HTTP-koade te sjen yn 'e serverantwurd, moatte jo de ûntwikkelderskonsole iepenje (Ctrl+Shift+K) of (Ctrl+Shift+J) ôfhinklik fan de brûkte browser. Selektearje dan de seksje "netwurk" en lade de winske side:
Kontrolearje de tsjinner antwurd mei help fan ûnôfhinklike ark
Der binne in grut tal ûnôfhinklike online tsjinsten dy't ark leverje om de statuskoade fan 'e websideside te kontrolearjen. Dizze tsjinsten jouwe jo meastentiids de mooglikheid om fluch in oersjoch te krijen fan 'e beskikberens en prestaasjes fan jo boarne. Se wurkje allegear neffens itselde prinsipe. As foarbyld sille wy de populêrste boarne beskôgje - httpstatus.io
Alderearst moatte jo de tsjinst sels iepenje, dan it adres fan 'e side ynfiere wêrmei jo it antwurd moatte fine, en ferifikaasje oanfreegje:
It resultaat sil ûnderoan de side werjûn wurde:
Konklúzje
As konklúzje moat it beklamme wurde dat it begripen en kinne HTTP-flaterkoades lêze in kaaifeardigens is foar elkenien dy't belutsen is by webûntwikkeling en serverûnderhâld. Wylst wy elke flater útfine en de ark ferkenne om se te ûntdekken, sjogge wy redenen wêrom't it sa wichtich is om dizze aspekten fan webtsjinsten effektyf te behearjen.