Mitä HTTP-koodit ovat ja mitä ne kertovat sisällön laadusta?
Tässä oppaassa kerron, mitä eri HTTP-koodit tarkoittavat ja mitä ne kertovat sivustosi kunnosta.
Mitä HTTP-koodit ovat?
HTTP-koodit (Hypertext Transfer Protocol) kertovat jokaisen yksittäisen sisällön kunnosta: mikä toimii ja mikä ei toimi. Suuri määrä virhekoodeja voi vaikuttaa negatiivisesti Google-näkyvyyteen, minkä vuoksi koodien ajoittainen tarkistus ja huolto on tärkeä osa hakukoneoptimoinnin toimenpiteitä.
Näistä yleisin ja varmasti tutuin on 404-virhesivu, mutta todellisuudessa niitä on paljon enemmän. Ja vaikka 499 ei virallinen HTTP-koodi olekaan, siihenkin kannattaa tutustua.
Verrataan näitä kivijalkamyymälään:
- 200 = Lämpimästi tervetuloa! (yleisin koodi toimivalle sisällölle)
- 301 = Olemme muuttaneet uuteen osoitteeseen.
- 302 = Olemme muuttaneet uuteen osoitteeseen, mutta palaamme takaisin jossain vaiheessa.
- 404 = Tule vain, mutta meillä ei ole mitään tarjottavaa.
- 403 = VIP, sisäänpääsy vain salasanalla.
- Soft 404 = Tule sisään, ovi on auki, mutta kukaan ei palvele sinua!
- 400 = Miksi yrität tulla tänne?
- 404 = Meitä ei enää ole.
- 408 = Sori, palvellaan liian hitaasti.
- 410 = “Ollako vai eikö, siinä pulma.”
- 413 = Ovi on sinulle liian pieni.
- 418 = Tarjoamme vain teetä.
- 423 = Ovi on lukossa.
- 500 = Avain on hukassa.
- 501 = Ovi on hukassa.
- 508 = Tässä on ovi, jonka takana on ovi, jonka takana on ovi, josta pääset ensimmäiselle ovelle.
- 530 = Kauppa on jäätynyt kiinni.
HTTP-tilakoodien viisi luokkaa
HTTP-tilakoodit on jaoteltu viiteen luokkaan, joista kukin alkaa numerolla, joka ilmaisee vastauksen tyypin.
1xx-tiedotusvastaukset
Tiedotusluokan tilakoodit osoittavat, että palvelin on vastaanottanut pyynnön ja käsittelee sitä. Näitä koodeja esiintyy harvoin tavallisissa API-vuorovaikutuksissa, mutta niillä on tärkeä rooli protokollatason viestinnässä.
- 100 Continue ilmoittaa, että pyynnön alkuosa on vastaanotettu ja asiakkaan tulisi jatkaa lopun lähettämistä. Tämä on hyödyllistä suurten tiedostojen lähettämisessä, koska se antaa palvelimelle mahdollisuuden hylätä pyynnöt varhaisessa vaiheessa, jos otsikoissa on ongelmia.
- 101 Switching Protocols kertoo asiakkaalle, että palvelin vaihtaa protokollia pyydetysti, kuten päivittää HTTP:stä WebSocketiin reaaliaikaista viestintää varten.
- 102 Processing on väliaikainen vastaus, joka osoittaa, että palvelin käsittelee pyyntöä edelleen, mutta ei ole vielä saanut sitä valmiiksi. Tämä estää asiakkaita menettämästä yhteyttä pitkien toimintojen aikana.
2xx-menestysvastaukset
Menestyskoodit vahvistavat, että asiakkaan pyyntö on vastaanotettu, ymmärretty ja käsitelty onnistuneesti. Nämä ovat vastauksia, joita haluat nähdä testatessasi API:ta.
- 200 OK ilmaisee, että pyyntö onnistui ja palvelin palautti pyydetyt tiedot.
- 201 Created tarkoittaa, että pyyntö onnistui ja uusi resurssi luotiin. POST-pyynnöt palauttavat tyypillisesti tämän koodin yhdessä Location-otsikon kanssa, joka osoittaa juuri luotuun resurssiin.
- 202 Accepted tarkoittaa, että pyyntö on hyväksytty käsiteltäväksi, mutta sitä ei ole vielä suoritettu loppuun. Tämä tila on yleinen asynkronisissa toiminnoissa, joissa välitön käsittely ei ole mahdollista.
- 204 No Content vahvistaa, että pyyntö onnistui, mutta palvelin ei palauttanut tietoja. Tämä on tyypillistä onnistuneille DELETE-toiminnoille tai PUT-pyynnöille, joiden ei tarvitse palauttaa tietoja.
3xx-uudelleenohjausvastaukset
Uudelleenohjauskoodit ilmoittavat asiakkaalle, että pyynnön loppuun saattamiseksi tarvitaan lisätoimenpiteitä, joihin yleensä liittyy siirtyminen eri URL-osoitteeseen.
- 301 Siirretty pysyvästi ilmaisee, että pyydetty resurssi on siirretty pysyvästi uuteen URL-osoitteeseen. Asiakkaiden tulisi päivittää kirjanmerkkinsä ja tulevat pyyntönsä osoittamaan uuteen URL-osoitteeseen, joka on annettu Location-otsikossa.
- 302 Found ilmaisee väliaikaisen uudelleenohjauksen. Resurssi on väliaikaisesti saatavilla eri URL-osoitteessa, mutta tulevissa pyynnöissä tulisi jatkaa alkuperäisen sijainnin käyttöä.
- 303 See Other ohjaa asiakkaan hakemaan vastauksen GET-pyynnöllä Location-otsikossa määritettyyn URL-osoitteeseen. Tätä käytetään yleisesti POST-pyyntöjen jälkeen estämään päällekkäisiä lähetyksiä.
- 304 Not Modified kertoo asiakkaalle, että välimuistissa oleva versio on edelleen voimassa. Kun asiakas lähettää ehdollisen GET-pyynnön, jossa on otsikoita kuten If-Modified-Since, tämä vastaus osoittaa, ettei latausta tarvita.
- 307 Temporary Redirect on samanlainen kuin 302, mutta takaa, että HTTP-menetelmä ei muutu uudelleenohjauksen jälkeen. Jos alkuperäinen pyyntö oli POST, myös uudelleenohjattu pyyntö on oltava POST.
- 308 Permanent Redirect yhdistää 301:n pysyvyyden ja 307:n menetelmän säilyttämisen, mikä varmistaa, että sekä URL-osoite että HTTP-menetelmä pysyvät samana uudelleenohjauksissa.
4xx-asiakaspuolen virhevasteet
Nämä koodit osoittavat, että asiakkaan pyynnössä oli ongelma, kuten väärin kirjoitettu URL-osoite tai virheelliset tunnistetiedot. Nämä virheet edellyttävät muutoksia asiakkaan puolelta, ennen kuin pyyntö voi onnistua.
- 400 Bad Request tarkoittaa, että palvelin ei ymmärtänyt pyyntöä virheellisen syntaksin, virheellisen JSON-muodon tai puuttuvien pakollisten kenttien vuoksi. Tämä on yleiskoodi pyynnöille, jotka eivät täytä API:n vaatimuksia.
- 401 Unauthorized ilmaisee, että todennus vaaditaan, mutta sitä ei annettu tai se oli virheellinen. Nimestään huolimatta tämä koodi liittyy nimenomaan todennukseen, ei valtuutukseen.
- 403 Forbidden ilmaisee, että asiakas on todennettu, mutta sillä ei ole lupaa käyttää pyydettyä resurssia. Tämä on oikea koodi valtuutusvirheille.
- 404 Not Found tarkoittaa, että pyydettyä resurssia ei ole määritellyssä URL-osoitteessa. Tämä voi johtua siitä, että resurssi on poistettu, sitä ei ole koskaan ollut olemassa tai URL-osoite on virheellinen.
- 405 Method Not Allowed kertoo asiakkaalle, että käytettyä HTTP-menetelmää ei tueta tässä päätepisteessä. Esimerkiksi yritys lähettää POST-pyyntöä vain luku -resurssiin laukaisisi tämän virheen.
- 408 Request Timeout tarkoittaa, että palvelimen aikakatkaisu on umpeutunut odotettaessa asiakkaan lähettävän täydellisen pyynnön. Tämä voi tapahtua hitaiden verkkoyhteyksien yhteydessä tai ladattaessa suuria tiedostoja.
- 409 Conflict ilmoittaa, että pyyntö on ristiriidassa palvelimen nykytilan kanssa. Tämä tapahtuu yleisesti yritettäessä luoda resurssia, joka on jo olemassa, tai kun samanaikaiset päivitykset aiheuttavat ristiriitoja.
- 410 Gone tarkoittaa, että resurssi on aiemmin ollut olemassa, mutta se on poistettu pysyvästi eikä se ole enää käytettävissä. Toisin kuin 404, tämä osoittaa nimenomaisesti, että resurssi on poistettu tarkoituksella.
- 429 Too Many Requests tarkoittaa, että asiakas on ylittänyt pyyntörajoitukset. API:t käyttävät tätä koodia väärinkäytön estämiseen ja palvelimen kuormituksen hallintaan, ja siihen sisältyy usein otsikoita, jotka määrittelevät, milloin asiakas voi yrittää uudelleen.
5xx-palvelinvirhevasteet
5xx-palvelinvirhevasteet
Palvelinvirhekoodit viittaavat palvelinpuolen ongelmiin. Nämä virheet tarkoittavat, että pyyntö itsessään oli kelvollinen, mutta palvelin ei pystynyt käsittelemään sitä sisäisen ongelman vuoksi.
- 500 Internal Server Error on yleinen virhe, joka osoittaa, että palvelimella on tapahtunut jokin virhe. Tämä yleiskattava tilakoodi ei anna tarkempia tietoja, mutta viittaa odottamattomaan tilanteeseen, joka esti pyynnön käsittelyn.
- 502 Bad Gateway ilmenee, kun yhdyskäytävänä tai välityspalvelimena toimiva palvelin saa virheellisen vastauksen ylävirran palvelimelta. Tämä tapahtuu usein kuormituksen tasapainottamisympäristöissä tai kun käytetään käänteisiä välityspalvelimia.
- 503 Service Unavailable tarkoittaa, että palvelin ei pysty väliaikaisesti käsittelemään pyyntöjä, usein huoltotöiden tai ylikuormituksen vuoksi. Retry-After-otsikko voi ilmoittaa, milloin asiakkaan tulisi yrittää uudelleen.
- 504 Gateway Timeout tarkoittaa, että yhdyskäytävä- tai välityspalvelin ei saanut ajoissa vastausta ylävirran palvelimelta. Tämä on yleistä mikropalveluarkkitehtuureissa, joissa palvelut ovat riippuvaisia toisistaan.