Mitä tapahtuu kun avaat verkkosivun?

20.01.2016

Kun kirjoitat verkkosivun osoitteen selaimen osoiteriville tai klikkaat linkkiä, alkaa prosessi johon osallistuu sinun tietokoneesi lisäksi kymmeniä tai jopa satoja muita tietokoneita. Heti ensimmäiseksi selain tarkistaa löytyykö sivu jo tietokoneen omasta välimuistista. Mikäli sivu löytyy välimuistista ja se on ajan tasalla voidaankin hypätä sivun tulkitsemiseen. Koska verkkosivustoja on olemassa noin miljardi [1] ja useimmilla sivustoilla on useampia sivuja [2], avaamaasi sivua ei todennäköisesti löydy välimuistista. Edes Google ei muista kaikkia verkkosivuja.

Useimpien verkkosivujen osoite kirjoitetaan käyttämällä verkkotunnuksia [3]. Verkkotunnukset ovat verkkosivustojen nimiä (esim. poutapilvi.fi), mutta verkkosivustojen varsinaiset osoitteet kirjoitetaan numeroin. Jotta selaimesi osaisi ladata verkkosivun sen pitää ensin löytää numeerinen IP-osoite [4] mihin verkkotunnuksella viitataan. Saadakseen selville tämän selain kysyy käyttöjärjestelmältä [5] tietääkö se mihin osoitteeseen tunnus osoittaa. Käyttöjärjestelmä joko kertoo välimuistissa olevan IP-osoitteen tai välittää kysymyksen nimipalvelimelle [6].

Saatuaan verkkosivun IP-osoitteen selville, selain avaa yhteyden palvelimelle missä verkkosivu sijaitsee. Yhteys muodostetaan lähettämällä palvelimelle synkronointipaketti (SYN) minkä palvelin kuittaa vastaanotetuksi ja lähettää oman synkronointipakettinsa (SYN-ACK) jonka selain taas kuittaa vastaanotetuksi (ACK). Tätä kutsutaan kolmivaiheiseksi kättelyksi ja sillä varmistetaan että siirretty tieto luetaan oikeassa järjestyksessä.

Nykyään huomattava osa verkkoliikenteestä tapahtuu käyttäen salattuja yhteyksiä. Yhteys salataan toisella kättelyllä. Ensin selain kertoo palvelimelle minkälaisia salausmenetelmiä se osaa käyttää. Palvelin vastaa tähän kertomalla mitä ehdotetuista salausmenetelmistä se haluaa käyttää ja antaa sertifikaatin joka sisältää palvelimen julkisen avaimen. Varmistettuaan sertifikaatin aitouden selain luo palvelimen lähettämällä julkisella avaimella yhteyskohtaisen avaimen ja lähettää sen palvelimelle. Loppuyhteyden ajan selaimen ja palvelimen väliset viestit salataan tällä yhteyskohtaisella avaimella. [7]

Kun yhteys on avattu ja mahdollinen salausavain muodostettu, selain pyytää palvelimelta sivua, saa palvelimelta vastauksen ja sulkee yhteyden tai jättää sen auki tulevia pyyntöjä varten. Saatuaan palvelimelta vastauksen selain tarkistaa minkä tyyppinen vastaus on. Mikäli vastaus on uudelleenohjaus, selain yrittää ladata sivua mihin on ohjattu. Jos vastaus on valtuutuspyyntö, selain kysyy käyttäjältä tunnusta ja salasanaa. Mikäli vastaus on virhe, näytetään virhesivu.

Jos vastaus on normaali selain tarkistaa saako sivun tallentaa välimuistiin, tulkitsee vastauksen ja käsittelee toimitetun tiedon sen tyypin mukaisella tavalla. Tunnistetut tiedostotyypit esitetään yleensä tiedostotyypin mukaisella tavalla ja tunnistamattomia tarjotaan tallennettaviksi.

Kun vastaus on HTML-sivu, se sisältää yleensä linkkejä tyylitiedostoihin, kuviin ja koodinpätkiin joita ladatessa koko tapahtumasarja toistuu enemmän tai vähemmän kokonaisuudessaan.

Kaikki tämä tapahtuu sekunnin murto-osassa, siihen osallistuu lukemattomia tietokoneita ympäri maailmaa ja lopputuloksena näet edessäsi esimerkiksi tämän tekstin.

Viitteet:

    1. http://www.internetlivestats.com/total-number-of-websites/
    2. http://www.worldwidewebsize.com/
    3. https://fi.wikipedia.org/wiki/Verkkotunnus
    4. https://fi.wikipedia.org/wiki/IP-osoite
    5. https://fi.wikipedia.org/wiki/Käyttöjärjestelmä
    6. https://fi.wikipedia.org/wiki/DNS
    7. https://fi.wikipedia.org/wiki/Julkisen_avaimen_salaus