Obs obs! Dagens leksjon er veldig TBF-tung. Altså tre-bokstavs-forkortelser. Og noen litt kortere og lengre forkortelser. Så generelt forkortelses-tung. De fleste blir forklart og tror jeg har fått lagt inn <abbr> på de fleste så om du ikke husker forklaringen så pek på ordet så får du se forklaringen. Sorry, men tech-verden elsker å bruke forkortelser på alt.
Så i god forkortelsesånd, TL;DR:
Nettleseren bruker URL'en for å gjøre DNS-oppslag for å
finne riktig IP. IP brukes så får å kontakte serveren ved hjelp av HTTP standarden som ligger som et lag over
TCP/IP og overfører informasjonen tilbake til klienten. Nå om dagen blir som
regel denne overføringen kryptert og man bruker da HTTP som bruker SSL/TLS.
Hvis du orker lese alt her så får du også prøve deg litt i kommandolinje vinduet og da begynner du å se ut som en ekte nerd/hacker.
Nettadressen du skriver inn kalles en URL (Uniform Resource Locator), en
enhetlig ressurslokator. For å gjøre livet enklere for oss så hjelper
nettleseren oss langt på vei med å skrive inn riktig URL, vi slipper ofte å legge til enkelte ting siden nettleseren gjør det for
oss. En URL ser typisk slik
ut: https://www.task.no. Den starter med skjemanavn, navn på
protkollen vi skal bruke, og det pleier å være http eller https når vi bruker nettleseren. Men for filvoerføring via FTP så starter URL'en med ftp og når vi kobler oss opp mot en database kan den f.eks starte med jdbc:postgresql. Siden nettleseren antar at vi skal bruke HTTP så slipper vi skrive inn det. Vi slipper også å skrive inn ://
og hopper rett på resten av adressen. Nå kommer domenenavnet, og i
eksempelet her består det av tre deler: subdomenet, domenet, topp-nivå
domenet (TLD). Det finnes omtrent
1600 TLD'er og opprettelsen av de
styres av IANA.
Alle land i verden har fått hver sin TLD og disse kalles ccTLD. Norge har f.eks: no.
Denne URL bruker så
nettleseren for å slå opp i internett sin adressekatalog som heter DNS
(Domain Name System). Det er et slags globalt databasesystem hvor du ber
om å få vite hvilken IP adresse du
skal bruke hvis du skal kontakte en server som hører til URL'en du har skrevet inn. Nettleseren sender altså URL'en inn og får en IP adresse
tilbake. Denne IP adressen er den
som så brukes for å kontakte serveren. Oppslag mot DNS kan også gjøres direkte fra ett terminalvindu. Så da er det på tide med
litt blandet læring her, nå skal du faktisk gjøre noe aktivt :)
Hvis
du har en Mac, åpne terminalen ved å trykke på CMD+Space og skriv inn terminal og trykk Enter. Hvis du
har en Windows maskin så trykker du på Windows-tasten og skriver inn cmd og trykker Enter.
På Mac: Skriv inn dig +short www.task.no og trykk på Enter
På Windows: Skriv inn nslookup www.task.no og trykk på Enter
Og du ser da at domenet task.no har IP adressen 68.183.214.46. Denne adressen er en IPv4 adresse og består av fire sekvenser med tall. Hver sekvens kan ha tall fra 0 til 255. Noen spesielle sekvenser er holdt av til spesielle formål. F.eks er adresser som starter på 10, 172 og 192 satt av til intern bruk i et nettverk, som f.eks internt på kontoret. Vil du vite hvilken IP adress din maskin har internt på kontoret så kan du finne det ved å åpne terminalen igjen og skrive:
Mac: ipconfig getifaddr en0
og trykk på Enter
Windows: ipconfig og trykk på Enter
iPhone: Innstillinger -> Wi-Fi -> trykk på ⓘ ved siden av nettverket du er koblet til. Scroll litt nedover så ser du din IP adresse.
Tilbake til DNS, når nettleseren prøver å få IP adressen så går dette via flere ulike ledd. Først kontaktes topp-nivå navneserveren, den vet hvilken navneserver som kan svare på domener som hører til det spesifikke TLD'et. Så kontaktes den navneserveren som har anvaret for .no domenet i vårt tilfelle. Den serveren svarer igjen med hvilken navneserver som faktisk vet svaret på hvilken IP task.no egentlig hører til. Og først der får vi endelig vite hvilken IP adresse vi skal bruke.
Heldigvis går alt dette ganske fort, og siden operativsystemet, nettleseren og flere av serverne mellomlagrer denne informasjonen når den først er hentet så trenger nettleseren ikke hente alt dette på nytt hver gang. Hvor lenge nettleseren skal vente før den henter IP på nytt styres av hvilken TTL som er satt for et domene. For task.no har vi satt den til å være 5 minutter.
Da har vi endelig en IP adresse og nettleseren bruker den for å kontakte serveren. Denne kommunikasjonen foregår via en standard som heter TCP/IP. Denne standarden definerer hvordan informasjonen skal brytes ned i små pakker som kan sendes frem og tilbake. Det å dele det opp i mange små pakker er med på å sikre bedre kapasitet, bedre feilhåndtering og så videre. Oppå det transportlaget så ligger et et lag til som er HTTP - HyperText Transfer Protocol. Hvis du er veldig interessert kan du evt lese selve spesifikasjonen for HTTP som er lenket til nedenfor her. Til slutt så får nettleseren et HTML dokument som den kan begynne å gå gjennom for å hente flere ressurser som f.eks bilder, fonter, styling, javascript osv fra serveren. Men vi sparer det til neste uke en gang.