akademin körs anonymt — inget sparas
skapa kontonummer →
Akademin / Nivå VI · Fundament / Lektion 25
lektion 25 · fundament

Vad är HTTP egentligen?

Varje gång du klickar på en länk skickar din webbläsare ett brev, och servern svarar med ett annat. Den här lektionen visar exakt hur breven ser ut — och varför det är hela grunden för webbens säkerhet.

Välj spår Hur tekniskt vill du ha det?

Tänk dig att webben är ett postkontor. Varje gång du klickar på en länk skickar din dator ett brev. Servern öppnar brevet, läser det, och skickar tillbaka ett svar. Hela internet bygger på det här — och brevet har ett namn: HTTP.

01Brevet du aldrig ser

Du skriver in säkerkoll.se i webbläsaren och trycker enter. På 0,2 sekunder skickar din dator ett brev till servern. Du ser aldrig brevet — webbläsaren skriver det åt dig — men det ser ungefär ut så här:

GET / HTTP/1.1
Host: säkerkoll.se
User-Agent: Mozilla/5.0...
Accept: text/html

Fyra rader. Det är hela frågan. GET betyder "ge mig", / är vad du vill ha (startsidan), Host är vilken sajt, User-Agent är din webbläsare som presenterar sig.

02Svaret kommer tillbaka

Servern läser brevet och skickar tillbaka sitt eget brev — svarsbrevet. Det ser ut så här:

HTTP/1.1 200 OK
Content-Type: text/html

<html><body>Hej!</body></html>

200 är koden för "allt gick bra, här har du". Andra vanliga koder du sett:

03GET och POST — två olika sorters brev

Det finns olika sorters brev (de kallas metoder). De två du måste känna till:

Varför det spelar roll: Om en sajt skickar ditt lösenord via GET hamnar det i URL:en — och då i webbserverns loggar, i browserns historik, och i alla referer-headers. Det är därför login-formulär alltid ska använda POST.

04Prova själv — bygg ett HTTP-request

Skriv en URL och välj metod. Du ser exakt vad webbläsaren skulle skicka. Detta körs helt lokalt — inget skickas någonstans.

GET
request som webbläsaren skickar
skriv en URL ovan
Längd: 0 tecken Metod: GET

05Vad det betyder för dig

Varje gång du laddar en sida på nätet skickas tio, hundra, ibland tusen sådana här brev fram och tillbaka. Bilder, typsnitt, scripts — varje del har sitt eget request. Att förstå hur ett HTTP-request ser ut är grundbulten för allt annat: cookies, login, sårbarheter, säkerhetsheaders, allt.

Nästa lektion (26) går djupare in i headers — det är där lösenord, sessioner, och Authorization-fält faktiskt skickas.

HTTP är ett textbaserat protokoll över TCP, port 80 (eller 443 för TLS). Ett HTTP-request är fyra delar: request-line, headers, en blankrad, och en valfri body. Hela protokollet är så enkelt att du kan skicka ett request med nc och en tangentbordsrad.

01Anatomy of a request

Ett request består alltid av:

Responsen ser identiskt likadan ut, fast med en status line istället för request line: HTTP/1.1 200 OK.

02Status codes — i klasser

Status codes är organiserade i fem klasser efter första siffran:

03HTTP-metoder och deras semantik

RFC 7231 definierar metoderna och hur de ska bete sig:

Säkerhetsimplikation: Sajter som ändrar tillstånd via GET (t.ex. /account/delete?id=123) är sårbara för CSRF — för en GET kan triggas från en bild-tag på en annan sajt utan användarens samtycke. Det är därför RFC förbjuder destructive GETs.

04HTTP/1.1 → HTTP/2 → HTTP/3

Protokollet har utvecklats men semantiken är densamma. Vad som ändras är transporten:

Säkerhetsfunktionerna (cookies, auth, CSP, CORS) är desamma — det är bara wiren under som ändrats.

05Prova själv — bygg ett komplett request

Skriv URL + metod. Med POST får du även en body. Notera Content-Length och Host-headern — den senare är obligatorisk i HTTP/1.1.

GET
raw HTTP/1.1 request
skriv en URL ovan
Bra reflektion: vilka headers saknas jämfört med en riktig browser-request?

06Varför det här är fundament

Allt — bokstavligen allt — vad gäller webbsäkerhet bygger på den här strukturen:

Resten av Fundament-sektionen bygger på den här lektionen. Sitt en stund med curl -v eller F12 → Network och titta på riktiga requests innan du går vidare. Du kommer inse hur ungt och fattigt protokollet faktiskt är — och det är därför så mycket av webbsäkerheten handlar om att skydda ovanpå det.

Snabb-koll — tre frågor

lektion 25 · klarad ✓ Nästa upp

Lektion 26 — HTTP-headers i detalj

User-Agent, Cookie, Authorization, Referer — vad varje header faktiskt avslöjar om dig.

Nästa lektion