selitetty.com

Miten netti toimii

HTTP-tilakoodit: mitä 404, 403 ja 500 oikeasti tarkoittavat

Jokainen selaimen tekemä pyyntö saa vastaukseksi kolminumeroisen koodin. Kun tiedät mitä ensimmäinen numero tarkoittaa, tiedät heti kannattaako yrittää uudelleen, korjata osoite vai vain odottaa.

Lyhyt vastaus

HTTP-tilakoodi on palvelimen vastaus siihen, miten pyyntö meni. Ensimmäinen numero kertoo luokan: 2 tarkoittaa onnistumista, 3 siirtoa toiseen osoitteeseen, 4 sitä että pyyntö ei kelvannut sellaisenaan ja 5 sitä että palvelin ei suoriutunut tehtävästään. Käytännön sääntö on, että 4-alkuiset koodit korjataan pyynnön päässä ja 5-alkuiset ovat palvelimen ongelma, jolle käyttäjä ei voi tehdä muuta kuin odottaa.

Sisällys
  1. Ensimmäinen numero kertoo vastuunjaon
  2. 2xx: onnistuminen ei ole tae sisällöstä
  3. 3xx: sisältö on muualla
  4. 4xx: pyyntö ei kelvannut sellaisenaan
  5. 5xx: palvelin ei suoriutunut
  6. Tavallisimmat koodit ja mitä voit tehdä
  7. Missä koodin näkee, kun sivu ei kerro sitä
  8. Kun koodia ei tule ollenkaan
  9. Näin luet koodin muutamassa sekunnissa
  10. Usein kysytyt kysymykset
  11. Lähteet ja lisälukemista

Kun avaat sivun, selain lähettää palvelimelle pyynnön ja saa vastaukseksi kolminumeroisen luvun. Tavallisesti et näe sitä lainkaan, koska sivu vain aukeaa. Koodi tulee näkyviin vasta silloin, kun jokin menee pieleen, ja silloin se on käytännössä ainoa tieto, joka kertoo mistä on kysymys.

Yleisin virhearvio on lukea koodia vikailmoituksena, jonka syy on käyttäjässä. Näin ei ole. Koodi kertoo, kummalla puolella yhteyttä asia ratkaistaan, ja tästä syystä sen lukeminen säästää turhaa vaivannäköä. Sivun päivittäminen kaksikymmentä kertaa ei auta 403-koodiin, ja osoitteen tarkistaminen ei auta 503-koodiin.

Ensimmäinen numero kertoo vastuunjaon

Tilakoodit on ryhmitelty viiteen sarjaan, ja ryhmittely on osa protokollan määrittelyä. Ohjelmat käsittelevät koodeja nimenomaan ensimmäisen numeron perusteella, ja sama sääntö toimii ihmisellekin. Kun näet tuntemattoman koodin, sen luokka on jo tiedossa.

Sarja Merkitys Kenen puolella asia ratkaistaan
1xx Väliaikatieto, käsittely jatkuu Ei kummankaan, koodi ei näy käyttäjälle
2xx Pyyntö onnistui Ei kenenkään, kaikki meni hyvin
3xx Sisältö on muualla Selaimen, joka hakee sen automaattisesti
4xx Pyyntö ei kelvannut sellaisenaan Pyynnön lähettäjän puolella
5xx Palvelin ei suoriutunut Palvelimen ylläpitäjän puolella

Sanapari "asiakas" ja "palvelin" kannattaa tulkita väljästi. Asiakas on selain tai sovellus, joka lähetti pyynnön. 4-alkuinen koodi ei siis tarkoita, että olisit tehnyt jotain väärin. Se tarkoittaa, että pyyntö oli sellaisenaan hylättävä, ja hyvin usein syy on sivuston omassa vanhentuneessa linkissä. Vastuunjako on tekninen, ei moraalinen.

2xx: onnistuminen ei ole tae sisällöstä

Tavallisin koodi on 200, joka tarkoittaa yksinkertaisesti sitä, että pyyntö käsiteltiin ja vastaus on mukana. Sarjaan kuuluu muitakin koodeja: 201 kertoo, että jotain luotiin, ja 204 että pyyntö onnistui mutta vastauksessa ei ole sisältöä.

Tähän liittyy väärinkäsitys, joka kannattaa purkaa. Koodi 200 kertoo vain pyynnön ja vastauksen välisestä liikenteestä. Se ei kerro mitään sisällön oikeellisuudesta. Sivulla voi lukea suurella "Sivua ei löytynyt", ja koodi voi silti olla 200. Tätä kutsutaan pehmeäksi 404:ksi, ja se on ylläpitovirhe: hakukoneet ja seurantatyökalut eivät tunnista sivua puuttuvaksi, koska palvelin väittää kaiken olevan kunnossa.

Sama pätee luotettavuuteen. Huijaussivusto vastaa 200-koodilla aivan kuten oikeakin sivusto, ja sillä voi olla voimassa oleva varmenne. Koodi ja lukkosymboli kertovat yhteyden teknisestä kunnosta, eivät sivuston aikeista. Siksi kalasteluosoitteen tunnistus perustuu osoitteeseen ja asiayhteyteen eikä siihen, aukeaako sivu.

3xx: sisältö on muualla

Kolmossarja tarkoittaa, että pyydettyä sisältöä ei anneta tästä osoitteesta vaan toisesta. Palvelin kertoo vastauksessa uuden osoitteen, ja selain hakee sivun sieltä automaattisesti. Käyttäjä näkee vain sen, että osoiterivin sisältö vaihtuu.

Kaksi tavallisinta ovat 301 ja 302. Koodi 301 tarkoittaa pysyvää siirtoa: osoite on vaihtunut lopullisesti, ja selaimet sekä hakukoneet saavat päivittää tietonsa. Koodi 302 tarkoittaa väliaikaista siirtoa, jolloin alkuperäinen osoite jää voimaan. Ero on ylläpitäjälle merkittävä, koska pysyvä siirto siirtää myös osoitteen aseman hakukoneissa.

Kolmossarjassa on myös 304, joka tarkoittaa "ei muuttunut". Selain kysyy, onko sillä oleva kopio yhä ajan tasalla, ja palvelin vastaa lyhyesti että on. Silloin sisältöä ei siirretä uudestaan lainkaan, mikä on yksi syy siihen, että toinen käynti sivustolla on ensimmäistä nopeampi.

Uudelleenohjaus on myös se mekanismi, jolla lyhytosoitteet toimivat ja jolla julkisten verkkojen kirjautumissivut kaappaavat ensimmäisen pyynnön itselleen. Ohjausten lukeminen on osa osoitteen lukutaitoa, jota käsitellään URL-osoitteen osissa.

4xx: pyyntö ei kelvannut sellaisenaan

Neljässarja on se, jonka käyttäjä useimmiten näkee. Se tarkoittaa, että palvelin ymmärsi pyynnön mutta ei suostu tai kykene täyttämään sitä sellaisenaan.

404 ja 410

Koodi 404 tarkoittaa, että osoitteessa ei ole mitään. Se ei ole vika vaan täsmällinen ja rehellinen vastaus. Sivu on voitu poistaa, siirtää ilman uudelleenohjausta tai osoite on kirjoitettu väärin. Läheinen sukulainen 410 tarkoittaa, että sisältö oli olemassa mutta on poistettu tarkoituksella eikä palaa.

401 ja 403

Nämä kaksi sekoitetaan usein. Koodi 401 tarkoittaa, että pyyntö vaatii kirjautumisen eikä sitä ole tehty. Koodi 403 tarkoittaa, että palvelin tietää kuka olet, mutta sinulla ei ole oikeutta tähän sisältöön. Käytännössä 403 tulee vastaan myös silloin, kun sivusto rajoittaa pääsyä maantieteellisesti tai kun suojausjärjestelmä pitää liikennettäsi epäilyttävänä.

429

Koodi 429 tarkoittaa, että olet lähettänyt liikaa pyyntöjä lyhyessä ajassa. Rajoitus suojaa palvelinta kuormitukselta. Vastauksessa voi olla mukana tieto siitä, milloin kannattaa yrittää uudelleen. Tavallisella selailulla tämä on harvinaista, mutta se osuu kohdalle esimerkiksi silloin, kun päivität sivua toistuvasti tai kun samasta verkosta on paljon liikennettä.

Neljässarjan koodit kannattaa lukea ohjeena siitä, mitä kannattaa yrittää seuraavaksi. Jos kyse on 404-koodista, osoitteen korjaaminen tai sivuston oma haku on ainoa järkevä liike. Jos kyse on 401- tai 403-koodista, kyse on käyttöoikeudesta, ja korjaus tapahtuu kirjautumisessa tai yhteydenotossa palveluun. Jos kyse on 429-koodista, ainoa oikea toimenpide on lopettaa yrittäminen hetkeksi.

Neljässarjassa on myös 451, joka tarkoittaa että sisältö on estetty oikeudellisesta syystä. Se on harvinainen mutta hyödyllinen, koska se erottaa oikeudellisen eston teknisestä viasta.

5xx: palvelin ei suoriutunut

Viitossarja tarkoittaa, että pyynnössä ei ollut vikaa mutta palvelin ei kyennyt tuottamaan vastausta. Tämä on käyttäjälle helpoin sarja, koska se on samalla lupa lopettaa vianetsintä.

Koodi 500 on yleiskoodi: palvelimen ohjelmistossa tapahtui virhe eikä sitä osata kertoa tarkemmin. Koodi 502 tarkoittaa, että pyyntö kulki välipalvelimen läpi mutta varsinainen taustapalvelin vastasi kelvottomasti tai ei lainkaan. Koodi 503 tarkoittaa, että palvelu on tilapäisesti pois käytöstä, esimerkiksi huollon tai ylikuormituksen takia. Koodi 504 tarkoittaa, että taustapalvelin ei vastannut ajoissa.

Näissä koodeissa on yksi hyödyllinen vivahde. Koodi 503 on tarkoituksellinen: joku on päättänyt, että palvelu ei nyt vastaa, ja vastaukseen voidaan liittää arvio siitä milloin kannattaa palata. Koodi 500 taas on odottamaton: palvelimen ohjelmisto törmäsi tilanteeseen, jota ei ollut varauduttu käsittelemään. Ensimmäinen viittaa hallittuun tilanteeseen, jälkimmäinen yllätykseen, ja siksi 500 voi jatkua pidempään.

Käyttäjän kannalta erot ovat pieniä. Kaikissa tapauksissa toimenpide on sama: odota ja yritä myöhemmin. Jos koodi toistuu pitkään ja palvelu on sinulle tärkeä, ilmoitus palvelun ylläpitäjälle on ainoa hyödyllinen teko.

Tavallisimmat koodit ja mitä voit tehdä

Koodi Mitä se tarkoittaa Mitä voit itse tehdä
301 Osoite on vaihtunut pysyvästi Päivitä kirjanmerkki uuteen osoitteeseen
403 Ei oikeutta tähän sisältöön Tarkista kirjautuminen, kokeile ilman VPN-yhteyttä
404 Osoitteessa ei ole mitään Tarkista kirjoitusasu, etsi sivu sivuston omalla haulla
429 Liikaa pyyntöjä lyhyessä ajassa Lopeta päivittäminen ja odota rauhassa
500 Palvelimen ohjelmistovirhe Ei mitään, yritä myöhemmin uudelleen
503 Palvelu tilapäisesti pois käytöstä Odota, tarkista palvelun tiedotekanava

Yksi lisäohje kannattaa muistaa. Jos 4-alkuinen koodi tulee vastaan vain sinulla mutta ei muilla, syy on todennäköisesti omassa selaimessa: vanhentunut kirjautuminen, evästeet tai laajennus. Jos koodi tulee kaikille, se on sivuston oma virhe riippumatta siitä, alkaako se nelosella vai vitosella.

Missä koodin näkee, kun sivu ei kerro sitä

Tilakoodi kulkee vastauksen alussa, ei sivun sisällössä. Siksi sivusto voi näyttää minkä tahansa näköisen sivun millä tahansa koodilla, ja käyttäjä näkee vain sen mitä sivustolle on suunniteltu.

Käytännössä koodi tulee näkyviin kolmella tavalla. Yleisin on sivuston oma virhesivu, johon numero on kirjoitettu näkyviin: monella sivustolla 404-sivu kertoo numeron suoraan. Toinen on selaimen oma virhesivu, jota käytetään silloin kun sivusto ei ole tehnyt omaansa. Kolmas on selaimen kehittäjätyökalu, jossa verkkoliikennettä esittävä välilehti listaa jokaisen pyynnön ja sen koodin. Työkalu löytyy kaikista tavallisista selaimista valikon kehittäjä- tai lisätyökalut-osiosta, ja se on hyödyllinen myös maallikolle: siitä näkee, onko sivun jokin osa epäonnistunut, vaikka sivu muuten aukeaisi.

Tästä seuraa kaksi asiaa, jotka kannattaa pitää mielessä. Ensinnäkin kaunis virhesivu ei tarkoita, että koodi olisi oikea, ja päinvastoin. Toiseksi yksi sivu koostuu tavallisesti kymmenistä erillisistä pyynnöistä, joilla kaikilla on oma koodinsa. Sivu voi siis olla pääosin kunnossa, vaikka kuvat tai tyylit epäonnistuisivat. Tavallinen oire tästä on sivu, joka aukeaa mutta näyttää muotoilemattomalta tekstiluettelolta.

Kun koodia ei tule ollenkaan

Kaikki selaimen virheilmoitukset eivät ole tilakoodeja. Osa vioista tapahtuu ennen kuin yhtään pyyntöä ehditään lähettää, jolloin mitään koodia ei ole olemassa. Tämä ero on vianetsinnän kannalta tärkeä.

  • Nimeä ei löydy. Selain ei saanut selvitettyä osoitetta nimipalvelusta. Ilmoitus puhuu palvelimen löytymisestä, ei sivusta.
  • Yhteyttä ei saada. Palvelin ei vastannut lainkaan tai yhteys torjuttiin. Kyse voi olla palvelimen katkoksesta, palomuurista tai omasta verkosta.
  • Varmennevirhe. Yhteys avautui mutta salatun yhteyden alkukättely epäonnistui, koska varmenteessa on vikaa. Selain pysäyttää yhteyden ennen sisällön hakemista.

Näissä tapauksissa palvelin ei ole sanonut mitään, joten koodia ei kannata etsiä. Vianetsinnän järjestys on tällöin toinen, ja se käydään läpi yksittäisen sivun aukeamattomuutta koskevassa artikkelissa. Tilakoodit sen sijaan syntyvät vasta, kun yhteys toimii ja osapuolet keskustelevat sovitulla tavalla, mikä on hyvä esimerkki siitä, miten verkon kerrokset rakentuvat toistensa päälle.

Näin luet koodin muutamassa sekunnissa

  1. Katso ensimmäistä numeroa. Se ratkaisee, kannattaako sinun tehdä mitään. Nelonen tarkoittaa että pyyntöä voi yrittää korjata, vitonen että vika on palvelimessa.
  2. Tarkista näkyykö koodi muillakin. Kokeile toisella laitteella tai mobiiliverkossa. Jos koodi katoaa, ongelma on omassa selaimessa tai verkossa.
  3. Erota koodi ja koodittomat virheet. Jos ilmoitus puhuu palvelimen löytymisestä, yhteydestä tai varmenteesta, kyse ei ole tilakoodista lainkaan.
  4. Älä toista pyyntöä 429-koodin jälkeen. Toistaminen pidentää rajoitusta. Odota ja yritä kerran.
  5. Ilmoita toistuvasta viasta. Jos 5-alkuinen koodi jatkuu tunteja tärkeässä palvelussa, ylläpitäjä ei välttämättä tiedä asiasta.

Koodi ei ratkaise ongelmaa, mutta se kertoo kenelle ongelma kuuluu. Se on useimmissa tilanteissa juuri se tieto, jonka takia lopetat oikeaan aikaan.

Usein kysytyt kysymykset

Mitä 404 tarkoittaa ja onko se minun vikani?

Se tarkoittaa, että palvelin toimii mutta osoitteessa ei ole sisältöä. Yleensä syy on poistettu tai siirretty sivu taikka vanhentunut linkki, eli sivuston oma asia. Tarkista silti kirjoitusasu ja kokeile sivuston omaa hakua ennen kuin luovutat.

Miksi näen 403-koodin sivulla, joka toimii muilla?

Palvelin tunnistaa pyyntösi mutta ei salli sitä. Tavallisia syitä ovat vanhentunut kirjautuminen, maantieteellinen rajoitus tai suojausjärjestelmä, joka pitää liikennettäsi epäilyttävänä. Kokeile kirjautua uudelleen ja poistaa VPN-yhteys tai selainlaajennus käytöstä.

Kannattaako sivua päivittää, jos näen 500- tai 503-koodin?

Yksi uudelleenyritys on järkevä, mutta jatkuva päivittäminen ei auta. Koodi kertoo, että vika on palvelimessa, eikä sinun päässäsi ole mitään korjattavaa. Ylikuormitustilanteessa toistuvat pyynnöt pahentavat tilannetta.

Mitä 429-koodi tarkoittaa käytännössä?

Palvelin on rajoittanut sinulta tulevien pyyntöjen määrää, koska niitä tuli liian tiheästi. Rajoitus poistuu itsestään, kun odotat hetken. Jos käytät jaettua verkkoa tai VPN-yhteyttä, raja on voinut täyttyä muidenkin liikenteestä.

Onko 200-koodi merkki siitä, että sivu on turvallinen?

Ei ole. Koodi 200 kertoo vain, että palvelin vastasi pyyntöön onnistuneesti. Huijaussivusto vastaa täsmälleen samalla koodilla. Turvallisuuden arviointi perustuu osoitteeseen ja asiayhteyteen, ei vastauskoodiin tai lukkosymboliin.

Miksi selain sanoo, ettei sivustoon saada yhteyttä, eikä anna mitään numeroa?

Koska yhteyttä ei ehtinyt syntyä, eikä palvelin siksi ehtinyt vastata millään koodilla. Vika on tavallisesti nimipalvelussa, verkkoyhteydessä tai palvelimen saavutettavuudessa. Tällöin vianetsintä alkaa omasta yhteydestä eikä osoitteesta.

Takaisin ylös