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:
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:
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:
- 404 — finns inte (du skrev fel adress)
- 403 — du får inte titta (inte inloggad)
- 500 — servern kraschade
- 301 — sidan har flyttat dit istället
03GET och POST — två olika sorters brev
Det finns olika sorters brev (de kallas metoder). De två du måste känna till:
- GET — "ge mig". Används när du hämtar något: en webbsida, en bild, en sökresultat-sida. Det du frågar efter syns i URL:en:
/sök?q=katter - POST — "här har du". Används när du skickar in något: ett inloggningsformulär, en kommentar, ett kontaktformulär. Det du skickar är gömt i kroppen av brevet, inte i URL:en.
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.
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.