Internettet: HTTP og HTML
Jeg er Jasmine, og jeg er programmerings-
chef på XBOX One-ingeniørholdet.
Et af vores største funktioner hedder
XBOX Live.
Det er en onlinetjeneste, der forbinder
spillere fra hele verden,
og for at det skal ske, er internettet en
nødvendighed.
Dette er ikke en let opgave, og der sker
meget bag kulisserne.
Internettet ændrer fuldkommen, hvordan
folk arbejder sammen og forbindes.
Men hvordan virker det?
Hvordan kommunikerer computere over hele
verden egentlig med hinanden?
Lad os tage et kig på webbrowsen.
Først åbner du en webbrowser. Det er
appen, du bruger til at tilgå websiderne.
Som det næste indtaster du webadressen,
eller URL'et, der står for
Uniform Resource Locator, for websiden,
som du vil besøge, såsom Tumblr.com.
Hej, jeg er David Karp, stifteren af
Tumblr, og I dag skal vi snakke om,
hvordan de webbrowsere, som vi bruger til
dagligt, faktisk virker.
Du har nok undret dig, om hvad der faktisk
sker, når du taster en adresse i din
webbrowser og trykker enter.
Og det er næsten lige så skørt, som du kan
forestille dig.
I det øjeblik, begynder din computer at
tale med en anden computer, der hedder en
server, og det er normalt tusindvis af
kilometer væk.
Og efter nogle millisekunder beder din
computeren serveren om en webside,
og den server begynder at besvare din
computer på et sprog, der hedder HTTP.
HTTP står for hypertext transfer protokol.
Tænk på det som værende sproget, som en
computer bruger til at bede en anden
computer om et dokument.
Og det er faktisk ret ligetil.
Hvis du opfangede samtalen mellem din
computer og en webserver på internettet,
så består det hovedsagligt af noget, der
hedder "GET"-anmodninger.
Disse er helt enkelt ordet "GET" (hent)
og navnet på det anmodede dokument.
Så hvis du prøver at logge på Tumblr og
indlæser vores loginside, er alt det,
du gør faktisk at sende en GET-anmodning
til Tumblrs server, der siger GET /login.
Og det fortæller Tumblrs server, at du vil
have al HTML-koden for Tumblr login-siden.
Så HTML står for hyper text markup
language,
og du kan opfatte det som
værende det sprog, du bruger til at
fortælle en webbrowser,
hvordan den skal vise en side.
Forestil dig en side som Wikipedia,
der virkelig bare er et stort enkelt
dokument, og HTML er sproget, som
du bruger til at gøre titlen stor og fed,
til at gøre skrifttypen til den rette, til
at linke til visse andre sider, til at
gøre nogen tekst fed, til at gøre nogen
tekst kursiv, til at sætte et billede i
midten af siden, til at justere billedet
til højre, til at justere den til venstre.
En websides tekst er inkluderet direkte i
HTML'en, men andre dele, såsom billeder
eller videoer er særskilte filer med deres
egne URL'er, der skal anmodes om.
Browseren sender separate HTTP-anmodninger
for hver af disse og viser dem,
når de ankommer.
Hvis en webside har en masse forskellige
billeder, udløser hver af dem en separat
HTTP-anmodning, og siden indlæses
langsommere.
Nogengange, når du browser internettet,
anmoder du ikke blot om sider med
GET-anmodninger.
Nogengange sender du information, såsom
når du udfylder en formular
eller indtaster en søgeforespørgsel.
Din browser sender denne information som
klartekst til webserveren
via en HTTP POST-anmodning.
Sig f.eks. at du logger på Tumblr.
Det første, du gør, er at lave en
POST-anmodning, som er en POST til
Tumblrs loginside, der har noget data
forbundet til det.
Den har din e-mailadresse, den har din
adgangskode.
Dette sendes til Tumblrs server.
Tumblrs server regner ud at, okay, du er
David.
Den sender en webside tilbage til din
browser, der siger:
"Tillykke! Logget på som David."
Men sammen med den webside sender den også
lidt usynlig cookie-data,
som din browser kan se,
og ved at den skal gemme.
Og det er virkelig vigtigt, da det er
faktisk den eneste måde, en webside kan
huske, hvem du er.
Al den cookie-data er faktisk blot et
ID-kort til Tumblr.
Det er et nummer, der identificerer dig
som David.
Og din webbrowser holder fast på det
nummer, og næste gang du opdaterer
Tumblr, næste gang du går på Tumblr.com,
ved din browser, at den skal automatisk
tilføje det ID-nummer til anmodningen, som
den sender til Tumblrs servere.
Så nu ser Tumblrs servere anmodningen fra
din browser, ser ID-nummeret og ved at
"OK, dette er en anmodning fra David."
Internettet er helt åbent.
Alle dets forbindelser er delte og
oplysninger sendes som klartekst.
Dette gør det muligt for hackere at snage
i enhver personlige information,
du sender over internettet.
Men sikre websider forhindrer dette ved at
bede din webbrowser om at kommunikere på
en sikker kanal, ved hjælp af noget, der
hedder secure socket layer og dets
efterfølger, transport layer security.
Forestil dig SSL og TLS som et
sikkerhedslag viklet omkring dine
kommunikationer for at beskytte dem mod
snagen og manipulation.
SSL og TLS er aktive, når du ser den lille
lås i din browsers addresselinje
ved siden af HTTPS.
HTTPS-protokollerne sørger for at dine
HTTP-anmodninger er sikre og beskyttet.
Når en webside beder din browser starte
en sikker forbindelse, fremlægger den
først et digitalt certifikat.
Det er ligesom et officielt ID-kort, der
beviser, at det er den webside,
den siger, den er.
Digitale certifikater udgives af
certifikat-myndigheder, der er betroede
organer, der bekræfter websiders identitet
og udsteder certifikater til dem.
På samme vis som en regering kan udstede
ID'er eller pas.
Hvis en webside nu prøver at starte en
sikker forbindelse uden et korrekt udstedt
digitalt certifikat, vil din browser
advare dig.
Det er det grundlæggende for webbrowsen!
Den del af internettet vi ser til dagligt.
For at opsummere, tager HTTP og DNS sig
af at sende og modtage HTML, medie-filer
eller alt, der er på internettet.
Det, der understøtter dette er TCP/IP og
router-netværk, der opdeler og
transporterer information i små pakker.
Disse pakker består af binær kode,
rækker af 1'er og 0'er, der fysisk
sendes gennem el-ledninger, fiberoptiske
kabler og trådløse netværk.
Når du har forstået, hvordan ét lag af
internettet virker, kan du heldigvis stole
på det uden at skulle huske alle
detaljerne.
Og vi kan stole på, at alle de lag vil
virke sammen for at levere
oplysninger på skalerbar og pålidelig vis.