Internetissä usein kohdattu "404 Not Found" -virhekoodin luku 404 ei ole satunnaisesti valittu numero, vaan osa HTTP-protokollan asiakasohjelman virheitä luokittelevaa 4xx-ryhmää. Yleisestä CERN-huonelegendasta poiketen koodi syntyi HTTP-standardien määrittelemänä standardina tilakoodina "Not Found" -vastaukselle.
Käyttäjät kohtaavat usein internetissä "404 Not Found" -varoituksen, kun he yrittävät avata sivua, jota ei ole olemassa. Varoituksessa näkyvä luku 404 ei ole satunnaisesti valittu numero. Lähteen mukaan tämä koodi syntyi osana HTTP-protokollan systemaattista tilakoodirakennetta ja on vuosien varrella muodostunut tunnetuksi internet-kulttuurin symboliksi.
Käyttäjät kohtaavat tämän koodin yleensä silloin, kun he syöttävät väärin kirjoitetun osoitteen, napsauttavat vanhaa linkkiä tai kun haluttu sisältö on poistettu. 404:stä on tullut niin yleinen, että monet yritykset ovat alkaneet lisätä omille virhesivuilleen erityissuunnitteluja, pelejä ja vitsejä.
Mitä 404 Not Found itse asiassa tarkoittaa?
Kun internet-osoite avataan, selain lähettää palvelimelle pyynnön HTTP:n välityksellä. Palvelin käsittelee pyynnön ja palauttaa selaimelle vastauksen, joka sisältää kolminumeroisen tilakoodin.
Kun toimenpide onnistuu, käytetään yleensä koodia 200. Uudelleenohjauksissa tai palvelimesta johtuvissa ongelmissa voidaan kohdata erilaisia koodeja.
Koodi 404 ilmaisee tilanteen, jossa asiakasohjelma tavoittaa palvelimen, mutta palvelin ei löydä pyydettyä resurssia. Siksi 404:n nähdessään ei pidä ajatella, että internet-yhteys olisi kokonaan katkennut; palvelin on vastannut, mutta pyydettyä sivua ei ole olemassa kyseisessä osoitteessa.
Syynä voi olla väärin kirjoitettu URL-osoite. Aiemmin olemassa ollut sivu on saatettu poistaa, linkkiä muuttaa tai sisältö siirtää toiseen osoitteeseen.
Mitä 404:n ensimmäinen 4 tarkoittaa?
HTTP-tilakoodeissa numeroita ei valita sattumanvaraisesti; koodit jaetaan ensimmäisten numeroidensa perusteella tiettyihin luokkiin. 404:n alussa oleva 4 osoittaa asiakasohjelman virheisiin liittyvien tilakoodien ryhmän.
Tähän ryhmään kuuluvat myös muun muassa koodit 400 Bad Request, 401 Unauthorized, 403 Forbidden ja 429 Too Many Requests. Niiden välinen ero johtuu ongelman tyypistä.
Koodissa 403 palvelin ymmärtää pyynnön, mutta ei välttämättä salli pääsyä resurssiin. Koodissa 404 pyydettyä resurssia ei ole löydetty. Koodia 429 puolestaan käytetään ilmaisemaan, että lyhyen ajan sisällä on lähetetty liian monta pyyntöä.
Palvelimesta johtuvissa ongelmissa tulevat puolestaan käyttöön koodit, jotka alkavat numerolla 5. Esimerkkeinä tästä ryhmästä voidaan mainita 500 Internal Server Error ja 503 Service Unavailable.
Näin ollen 404:tä ei pidetä yksinään valittuna salaperäisenä numerona, vaan osana HTTP:n systemaattista tilakoodirakennetta.
Miksi juuri 404 valittiin?
HTTP:n varhaisessa vaiheessa tilakoodit järjesteltiin, jotta protokollan eri tulokset voitiin ilmaista standardoidusti. 4xx-väli varattiin asiakasohjelmaan liittyville virhetilanteille, ja tässä ryhmässä määriteltiin koodeja, joilla oli eri merkityksiä.
Lähteen mukaan HTTP/1.0:n vuonna 1996 julkaistussa RFC 1945 -dokumentissa 404 määriteltiin selvästi "Not Found" -tilakoodiksi. Myöhemmissä HTTP-standardeissa koodia on edelleen käytetty.
Tässä 404-luvun jokaiselle numerolle ei ole erillistä sanaa tai piilotettua merkitystä. Ensimmäinen numero määrittää koodin yleisen luokan, kun taas loput numerot ilmaisevat kyseisessä luokassa määritellyn koodin.
Samankaltainen logiikka näkyy myös muissa HTTP-koodeissa. Onnistuneet vastaukset ryhmitellään 2xx-, uudelleenohjaukset 3xx-, asiakasohjelman virheet 4xx- ja palvelinvirheet 5xx-ryhmiin. Tämä järjestely mahdollistaa sen, että kehittäjät voivat arvioida palvelimen antamaa vastausta ohjelmallisesti pelkän viestitekstin varassa pysymättä.
Onko tarina CERNin huoneesta numero 404 totta?
Internetissä leviävän yleisimmän tarinan mukaan World Wide Webin parissa työskennellyt tiimi sijaitsi CERNissä huoneessa numero 404. Kertomuksen eri versioissa väitetään, että verkkopalvelimet sijaitsivat tässä huoneessa tai että käyttäjät kääntyivät tämän huoneen puoleen saadakseen haluamansa tiedostot.
Lähteen mukaan tätä väitettä tukevaa luotettavaa historiallista todistusaineistoa ei kuitenkaan ole. Vaikka Tim Berners-Lee, joka kehitti World Wide Webin CERNissä, onkin HTTP:n syntymän keskiössä, väitettä siitä, että "404 Not Found" -koodi olisi peräisin CERNin huoneesta numero 404, ei ole vahvistettu verkkohistorian lähteissä.
Itse asiassa CERNin tätä tarinaa käsittelevissä selvityksissä on lähteen mukaan huomautettu, että kyseinen huonekertomus on myytti.
Syyt tällaisten tarinoiden leviämiseen vaikuttavat kuitenkin ymmärrettäviltä. Teknisten standardien luomisprosessit voivat tuntua useimmista käyttäjistä tylsiltä, kun taas salaperäinen huone ja sen numero, joka leviää koko internetiin, voivat olla paljon mieleenpainuvampia.
Miten HTTP-virhekoodit syntyivät?
HTTP:n tarina ulottuu World Wide Webin ensimmäisiin vuosiin. Tim Berners-Lee työskenteli CERNissä tietojärjestelmän parissa, jossa eri tietokoneilla olevia asiakirjoja voitiin yhdistää toisiinsa linkkien kautta.
Jotta web voisi toimia, ei riittänyt pelkkä HTML ja URL; tarvittiin myös protokolla, joka määrittäisi, miten selain ja palvelin kommunikoivat keskenään. HTTP otti tämän tehtävän hoitaakseen.
HTTP:n ensimmäiset versiot olivat paljon nykyistä protokollaa yksinkertaisempia. Verkon kehittyessä selaimen ja palvelimen välinen viestintä tuli yksityiskohtaisemmaksi, ja oli tarpeen ilmaista standardoidusti, oliko pyyntö onnistunut, ohjattu toiseen osoitteeseen vai epäonnistunut.
Kolminumeroisen rakenteen ansiosta ohjelmistot pystyivät tulkitsemaan tuloksen nopeasti. Numerolla 2 alkavat koodit edustivat yleisesti onnistuneiden vastausten luokkaa, numerolla 3 alkavat uudelleenohjauksia, numerolla 4 alkavat asiakasohjelmaan liittyviä virhetilanteita ja numerolla 5 alkavat palvelinvirheitä.
Tämä järjestelmä on säilynyt nykypäivään asti yhtenä verkon perusosista. Käyttäjät eivät näe suurinta osaa näistä koodeista, koska selain suorittaa toimenpiteet taustalla. 404:llä oli kuitenkin erilainen kohtalo; koska tilanne, jossa pyydettyä sivua ei löydy, heijastuu suoraan käyttäjälle, siitä tuli teknisestä protokollakoodista kaikkien tuntema ilmaus.
Miksi emme näe 404:ää jokaisella poistetulla sivulla?
Kun internetsivu ei ole enää olemassa, ei aina välttämättä kohdata koodia 404. Syynä on se, että verkkosivustot voivat käyttää eri tilanteisiin muita HTTP-koodeja.
Jos sisältö on siirretty uuteen osoitteeseen, palvelin voi ohjata käyttäjän automaattisesti uudelle sivulle. Pysyvissä uudelleenohjauksissa käytetään tähän tarkoitukseen esimerkiksi koodia 301, ja koska selain tekee toimenpiteen automaattisesti, käyttäjä ei useimmiten näe itse koodia.
Pysyvästi poistetulle resurssille voidaan käyttää myös koodia 410 Gone. Ero 404:ään on hienovarainen mutta merkityksellinen; 404 ilmaisee, että palvelin ei löydä pyydettyä resurssia, kun taas 410 ilmaisee selvemmin, että resurssin tiedetään poistetun.
Todellisilla verkkosivustoilla kaikki järjestelmät eivät sovella tätä erottelua yhtä huolellisesti, ja monet poistetut sisällöt palauttavat suoraan 404:n.
Lisäksi on olemassa niin kutsuttu "soft 404" -tilanne. Sivu voi näyttää käyttäjälle viestin "sisältöä ei löytynyt", mutta palvelin voi teknisesti antaa vastauksen 200 OK. Käyttäjän näkökulmasta sivua ei ole, mutta HTTP:n näkökulmasta pyyntö näyttää onnistuneen. Tämä voi vaikuttaa myös siihen, miten hakukoneet tulkitsevat sivun.
Eli se, että näytöllä lukee "Sivua ei löytynyt", ja se, että palvelin todella palauttaa HTTP 404 -koodin, eivät aina tarkoita samaa asiaa.
Miten 404:stä tuli osa internet-kulttuuria?
HTTP sisältää satoja eri tilakoodeja, mutta tavallisen internet-käyttäjän ei tarvitse tuntea suurinta osaa niistä. 404 erottuu tässä suhteessa suurena poikkeuksena.
Perussyynä on se, että käyttäjät kohtaavat tämän koodin suoraan ja usein. Internet-sivustojen kasvaessa linkit muuttuvat, vanhoja sisältöjä poistetaan ja vääriä osoitteita jaetaan. Lopputuloksena 404-sivuista tulee yksi verkkokokemuksen väistämättömistä osista.
Web-suunnittelijat alkoivat ajan myötä käyttää standardia virheviestiä luovemmin. Jotkut sivustot lisäsivät 404-sivuilleen pieniä pelejä, jotkut käyttivät humoristisia kuvia ja jotkut ohjasivat vierailijan hakukentän tai etusivulinkin avulla oikeaan sisältöön.
Näin ilmaus "404" siirtyi teknisen merkityksensä ulkopuolelle ja muuttui jopa vitsiksi, jota käytetään internet-kulttuurissa kuvaamaan kadonnutta, löytymätöntä tai poissa olevaa asiaa.
Kiinnostavaa on, että näin tunnetun luvun taustalla ei ole salaperäistä huonetta tai unohdettua CERN-tarinaa. 404:n todellinen tarina on paljon teknisempi; koodi syntyi tarpeesta luokitella verkon eri tulokset järjestelmällisesti ja koneiden ymmärtämällä tavalla.