Du skriver google.no i adressefeltet, trykker enter, og et brøkdels sekund senere er du der. Ingen lastelinje å snakke om, ingen ventetid du legger merke til. Det føles nesten som magi, som om siden bare var der og ventet på deg.
Bak kulissene skjer det derimot en hel reise. Flere stopp, flere systemer som snakker sammen, og en del arbeid som må gjøres riktig før du i det hele tatt får se en eneste bokstav på skjermen. La oss følge den reisen fra start til slutt. Vi bruker et postkort som analogi gjennom hele veien, for prinsippet ligner faktisk ganske mye på hvordan post fraktes fra en adresse til en annen.
Adressen mennesker forstår, ikke maskiner
Når du skriver google.no, skriver du en adresse laget for mennesker. Den er lett å huske, lett å skrive, og gir mening for oss. Problemet er at datamaskiner ikke navigerer internett med navn. De navigerer med tall, såkalte IP-adresser, noe sånt som 142.250.74.14.
Tenk på det som forskjellen mellom hvordan du beskriver hvor en venn bor, og hvordan posten faktisk finner fram dit. Du sier kanskje «huset med den blå døra i Storgata, rett over gata for bakeriet». Det gir deg mening fordi du kjenner nabolaget. Postbudet derimot trenger et konkret gate- og husnummer for å levere posten til riktig sted, uansett hvor godt de kjenner nabolaget fra før. Nettleseren din er akkurat som postbudet. Den trenger tallene, ikke navnet.
Grunnen til at vi mennesker fikk navn å skrive i stedet for tall, er rett og slett at ingen klarer å huske hundrevis av tallkombinasjoner utenat. Du husker google.no uten å tenke deg om, men neppe 142.250.74.14. Navnene finnes utelukkende for vår skyld. Maskinene klarte seg helt fint uten dem lenge før noen fant på systemet som knytter de to sammen.
Den lille notatboken din
Før nettleseren gjør noe som helst annet, sjekker den faktisk om den allerede vet svaret. Litt som om du har en liten notatbok hjemme med adresser du har sendt post til nylig. Har du besøkt google.no for noen minutter siden, har nettleseren ofte allerede notert hvilken IP-adresse den hørte til, og trenger ikke spørre noen på nytt.
Denne notatboken kalles en cache, og den finnes flere steder samtidig, i selve nettleseren, og noen ganger også i ruteren din hjemme. Er notatet fortsatt ferskt, hopper hele neste steg rett og slett over, og siden laster enda raskere. Er notatet borte eller for gammelt, må nettleseren spørre videre, akkurat som når du ikke husker adressen og må slå den opp på nytt.
Telefonkatalogen: DNS
Så hvem oversetter google.no til riktig tallkombinasjon når notatboken ikke har svaret klart? Det gjør et system som kalles DNS, Domain Name System. Tenk på det som internetts telefonkatalog. Du søker opp et navn og får ut et nummer.
Denne katalogen er ikke lagret ett sted, den er spredt utover tusenvis av servere verden over som kontinuerlig snakker sammen og oppdaterer hverandre. Forespørselen din går egentlig gjennom flere trinn før svaret er klart. Først spør nettleseren en type sentralbibliotek, kalt en resolver, som ofte driftes av internettleverandøren din. Vet ikke dette biblioteket svaret selv, sender det spørsmålet videre til et enda større arkiv som vet hvilke biblioteker som har ansvar for adresser som ender på .no, .com, eller andre endelser. Det arkivet peker videre til det spesifikke biblioteket som faktisk har ansvar for akkurat google.no, og først da kommer det endelige svaret tilbake, tallkombinasjonen nettleseren din trengte hele tiden.
Alt dette skjer normalt på noen få tiendels sekunder, ofte raskere, uten at du merker noe som helst av jobben som utføres i bakgrunnen. Det ligner litt på å ringe opplysningen, bli satt videre til riktig avdeling, som igjen setter deg videre til riktig person, alt i løpet av et par sekunder du knapt rekker å registrere.
Postkortet sendes
Med riktig IP-adresse i hånden kan nettleseren din nå sende en forespørsel direkte til serveren som huser google.no. Før selve meldingen kan sendes, banker nettleseren og serveren først på døren til hverandre tre ganger, en liten høflig utveksling som bekrefter at begge parter faktisk er klare til å snakke sammen. Denne utvekslingen kalles en handshake, et håndtrykk, og sikrer at ingen data går tapt fordi mottakeren ikke var tilstede.
Når håndtrykket er unnagjort, kan selve forespørselen sendes. Det ligner på å sende et postkort med riktig adresse påskrevet. Meldingen din reiser gjennom en rekke mellomstasjoner, rutere som videresender pakken nærmere målet, akkurat som et postkontor sender brevet ditt videre gjennom riktig sorteringssentral, som igjen sender det videre til neste sorteringssentral, helt til det når fram til riktig postkasse.
Den forseglede konvolutten
De fleste nettsider i dag bruker noe som heter HTTPS i stedet for det eldre HTTP. Forskjellen er akkurat den samme som mellom å sende et åpent postkort og et forseglet brev i en konvolutt. Med et vanlig postkort kan i prinsippet hvem som helst som håndterer forsendelsen underveis lese hva som står der. Med et forseglet brev derimot, kan bare avsender og mottaker lese innholdet, selv om brevet passerer gjennom mange hender på veien.
Det er derfor du ofte ser en liten hengelås ved siden av adressen i nettleseren. Den forteller deg at forbindelsen er forseglet, at ingen mellomstasjon på veien kan lese eller endre det som sendes, verken passordet du taster inn eller kortnummeret du skriver på et betalingsskjema.
Svaret kommer tilbake
Serveren mottar forespørselen, finner fram siden du ba om, og sender den tilbake samme vei. Men den sender sjelden alt i én pakke. Ofte kommer HTML-strukturen først, deretter stilarkene som bestemmer utseendet, så bildene, og gjerne litt kode som gjør siden interaktiv, hver del som sin egen liten forsendelse.
Nettleseren din tar imot alt dette etter hvert som det kommer, og begynner faktisk å bygge siden på skjermen mens resten fortsatt er underveis. Det er derfor du av og til ser teksten dukke opp før bildene, eller en side som først ser litt ustylet ut før fargene og formen faller på plass et øyeblikk senere. Er nettforbindelsen din treg, kan du iblant se hele denne oppbyggingen i sakte film, nesten som å se noen pakke ut esker etter en flytting, litt etter litt, i stedet for at hele rommet er ferdig innredet i det du åpner døra. Hele denne reisen, fra notatboken sjekkes, via telefonkatalogen, håndtrykket, den forseglede konvolutten, og selve utvekslingen av innhold, skjer over kabler og trådløse signaler i løpet av et par hundre millisekunder. Raskere enn du rekker å blunke.
Snarveier langs veien
Store nettsteder som besøkes av millioner mennesker daglig har som regel ikke bare én eneste server et sted i verden. De har kopier av innholdet sitt spredt utover mange forskjellige steder på kloden, noe som kalles et CDN, content delivery network. Tenk på det som postkontorer i flere byer i stedet for ett eneste sentrallager langt unna.
Sitter du i Norge og besøker en side med servere plassert både i Frankfurt og i Norge, sørger systemet automatisk for at postkortet ditt sendes til den nærmeste utgaven, ikke helt til den andre siden av kloden. Det er derfor store internasjonale tjenester som regel føles like raske uansett hvor i verden du befinner deg, mens en liten lokal nettside driftet fra én eneste server kan føles tregere jo lenger unna du sitter fysisk.
Når posten ikke kommer fram
Av og til går ikke reisen som planlagt. Kanskje telefonkatalogen ikke finner noe navn som stemmer, fordi du skrev feil adresse, eller fordi nettsiden faktisk ikke eksisterer lenger. Da får du en feilmelding om at siden ikke ble funnet, litt som å sende post til en adresse som ikke finnes.
Andre ganger finner telefonkatalogen riktig adresse, men selve postkortet kommer aldri fram, kanskje fordi serveren har for mye å gjøre akkurat da, eller fordi forbindelsen brytes underveis. Det er dette som skjuler seg bak meldinger som «tidsavbrudd» eller «kan ikke koble til serveren». Serveren fantes, adressen var riktig, men noe stoppet forsendelsen underveis, akkurat som et postkort som blir liggende igjen på et sorteringssentral som er overbelastet.
Hvorfor er dette nyttig å vite
Neste gang en side bruker lang tid på å laste, vet du at forsinkelsen sannsynligvis ligger et sted i denne reisen. Kanskje notatboken var tom og telefonkatalogen måtte spørres fra bunnen av. Kanskje håndtrykket tok tid fordi serveren var langt unna geografisk. Kanskje selve serveren hadde det travelt med å svare mange andre samtidig. Problemet ligger nesten aldri i skjermen din.
Forstår du samtidig hvert eneste klikk faktisk setter i gang en global reise fram og tilbake, gjennom telefonkataloger, forseglede konvolutter og sorteringssentraler spredt over hele kloden, blir internett plutselig litt mindre selvsagt og litt mer fascinerende. Det som føles som et øyeblikk, er faktisk en hel logistikkoperasjon som gjennomføres perfekt, om og om igjen, hver eneste gang du trykker enter. Systemene bak dette har blitt bygget og finpusset gjennom flere tiår nettopp for at du aldri skal måtte tenke på dem.