Hvordan internett fungerer

Image by an unknown artist

Image by an unknown artist

Ett overblikk over hvordan webben faktisk fungerer
Sist oppdatert 1. august 2021

I denne artikkelen skal jeg forsøke å gi et lite overblikk over hvordan internett fungerer. Dette er på ingen måte en komplett forklaring, men heller et overblikk før man graver dypere for å få bedre forståelse.

Det er mange grunner til å ønske å forstå hvordan internett fungerer, men hvis man vil utvikle nettsider, apper og spill som bruker internett til noe, må man skjønne i detalj hvordan internett fungerer, så man kan skrive kode som fungerer.

Klient og Server

Forskjellen

En nettleser som Chrome, Firefox, Safari osv. er såkalte web klienter. Disse fungerer slik at de sender en forespørsel til en server om å få lese en nettside. Når en server får en slik forespørsel sender den tilbake nettsiden som klienten ber om som et svar.

På mange nettsider er det slik at web serveren sender en forespørsel til en annen webserver om å få ett bilde, tekst og annet. Da fungerer webserveren som en klient til en annen webserver. En hvilken som helst datamaskin kan både fungere som server og klient. Forskjellen er hvilken rollen datamaskinen har i det forespørselen blir sendt.

En typisk webserver er en såkalt hodeløs datamaskin, altså en datamaskin uten skjerm som er plassert i et serverrom eller et datasenter. Dette er datamaskiner ingen normalt bruker på samme måte som en Hjemme PC, mobiltelefon eller pad. Webserveren har kun som oppgave svare på forespørsler og gjøre som den er programmert til å gjøre.

TCP/IP og HTTP

Transport og innhold.

IP (Internet Protocol). Dette er en standardisert måte å adressere hvor vi vil sende no over internett. IP sier hvem som er avsender og mottaker.

TCP (Transmission Control Protocol) er hvordan noe skal sendes over internett. TCP deler beskjeden inn i mange små pakker som sendes. Når alle pakkene har kommet frem til mottaker pakkes de ut og settes sammen i riktig rekkefølge til noe som er lesbart for en datamaskin. TCP holder styr på alle de små pakkene, og sier noe om hvilken port de skal inn på hos mottaker.

TCP/IP er kort forklart måten en beskjed blir sendt på. Skal det sendes med flypost, postbil eller brevdue? TCP/IP er et sett med regler for hvordan beskjeden skal sendes fra client til server, og hvordan et svar skal sendes fra server til client. TCP/IP sier hvilken IP-adressen beskjeden skal sendes til og Porten som beskjeden skal inn i. Akkurat som med brev og pakker i den fysiske verden, merkes en forespørsel med avsender, slik at serveren vet hvor den skal sende tilbake svaret på forespørselen.

HTTP er en av mange typer tjenester det kan bli bedt om. HTTP brukes til å be om å få tilsendt innholdet til en nettside fra en webserver. Protokollen har regler for hvordan man ber som innhold, og hvordan innholdet sendes tilbake.

IP adresser

Alle enheter som kobles til et nettverk har en unik IP-adresse. Dette kan sammenlignes med et telefonnummer. Hver datamaskin har en unik IP-adresse på det nettverket datamaskinen er en del av. Ruteren i huset eller leiligheten din er et knutepunkt alle datamaskinen på hjemmenettverket ditt har ut mot verden. En av de mange oppgavene ruteren har er å sørge for at den samme datamaskinen som ba om å få tilsendt en nettside fra en server får den tilbake. Internett “ser” ikke datamaskinene på hjemmenettverket ditt, det “ser” kun ruteren din. TCP/IP sørger for at beskjeden går fra en datamaskin til en annen internt på nettverket eller over internett.

DNS

Domener - Nettadresser:

En webserver er plassert på et fysisk sted. Dette stedet har en IP adresse. For eksempel er vg.no plassert i skrivende stund på IP addressen 195.88.54.16. Datamaskiner har ingen problemer med å huske slike tallrekker, men vi mennesker er ikke like gode til å huske tall. Siden vi har letter for å huske ord og setninger bruker vi domenenavn for å gjøre det lettere å finne nettsider. Disse domenenavnene lagres på DNS (domain name system) servere rundt om i verden. Disse fungerer som en slags telefonkatalog for IP adresser.

Når du skriver inn at du vil til vg.no i nettleseren din spør nettleseren din nærmeste DNS server om hvilken IP-adresse nettsiden du forsøker å nå ligger på. Den får tilbake et svar om at vg.no ligger på IP adressen 195.88.54.16. Da sender nettleseren en forespørsel til denne IP adressen, hvor den ber om å få siden. Etter at serveren har mottatt forespørselen, sender den innholdet på nettsiden som svar.

Port

Det er veldig mange tjenester en server kan yte. For at det skal gå så raskt som mulig for serveren å vite hvilke tjeneste som det blir bedt om knyttes hver enkelt tjeneste til en port. Litt på samme måte som døren inn til en butikk som selger klokker eller døren til en restaurant som serverer mat har hver tjenest sin egen port. Typisk ligger HTTP (hyper-text transfer protocol) som brukes til å levere websider på port 80. Hvis det er det er feil type tjeneste som det bes om på feil port, blir forespørselen avvis av serveren.

Host

En datamaskin som fungerer som webserver kan serve mange websider. I tillegg kan et datasenter ha mange slike datamaskiner. Siden alle disse ligger på et fysisk sted med kun en IP adresse må hver av disse nettsidene identifiseres med host navn.

Host navnet har kun som oppgave å skille de forskjellige websidene på webservere fra hverandre. Det er ikke uvanlig at en datamaskin som fungerer som webserver har ett titalls websider. På samme måte er det ikke uvanlig at det er mange domener som peker til samme IP adresse. Derfor er det viktig å si hvilken host det bes om innhold fra.

Oppsummert:

TCP/IP Fungerer som en innpakking av en forespørsel. TCP/IP frakter data fra en client, til server og tilbake fra serveren til klienten. TCP/IP sier noe om avsenders IP-adresse og port, og mottaker IP-adresse og port.

Når pakken med TCP/IP kommer frem til porten på riktig IP adresse pakkes den ut og innholdet blir sjekket av serveren. Hvis det er en HTTP forespørsel sendes den videre til riktig host. Hvis denne hosten godtar forespørselen sender den svar tilbake til klienten. HTTP sier noe om host navn, og sier noe om nøyaktig hva den vil ha fra serveren.