← Område 1 Guide · Så växte webben fram Ordlistan

Guide · Webbutveckling område 1

Så växte webben fram

Guiden till område 1. Här står allt som prov 1 kan fråga om när det gäller webbens historia, funktion och terminologi. Den fungerar utan att du varit på lektionen.

Vad du kan efter guiden
  • Förklara skillnaden mellan internet och webben
  • Beskriva vad en klient och en server gör, och vem som frågar först
  • Peka ut delarna i en URL och säga vad var och en gör
  • Beskriva de fem stegen från enter till färdig sida
  • Tolka de vanligaste HTTP-statuskoderna
  • Använda ordlistans begrepp korrekt

1. Internet och webben är inte samma sak

Internet är infrastrukturen: kablar, fiber, radiolänkar och datorer som är sammankopplade och har kommit överens om hur de ska prata med varandra. Internet fanns i tjugo år innan webben.

Webben är en av tjänsterna som går ovanpå internet. E-post är en annan. Nätverksspel är en tredje. När ett spel säger "no internet connection" är det inte webben som saknas.

Det är därför du kan ha internet men inte komma åt en webbplats: ledningarna fungerar, men servern svarar inte.

2. Tidslinjen

ÅrVad händeVarför det spelar roll
1969ARPANET kopplar ihop fyra amerikanska universitetsdatorerNätet konstruerades för att fungera även när delar slutar svara. Därför finns ingen mittpunkt som kan stängas av
1983TCP/IP blir gemensam standardAlla nät kunde nu prata med varandra. Det är födelsen av internet som ett nät
1989Tim Berners-Lee föreslår webben på forskningscentret CERNIdén: dokument som länkar till varandra, oavsett vilken dator de ligger på
1991Den första webbsidan blir publikRen text med länkar. Den fungerar fortfarande i dagens webbläsare
1993Webbläsaren Mosaic visar bilder inuti textenWebben blir något för alla, inte bara forskare
1995–2000Webbläsarkriget mellan Netscape och Internet ExplorerTillverkarna hittade på egna lösningar. Sajter fungerade i en webbläsare men inte i en annan
1998W3C driver igenom gemensamma standarderGrunden till att kod som följer standard fungerar överallt
2007Telefonen får en fullvärdig webbläsareSedan dess är mobilen normalfallet, inte undantaget
2014HTML5 blir färdig standardDe element vi använder i kursen: header, nav, main, article

Två slutsatser att bära med sig:

Webben har ingen ägare. Ingen kan stänga av den, och ingen får ensam bestämma hur den ska fungera. Det är ovanligt. Nästan alla appar du använder ägs av ett företag som kan ändra reglerna imorgon.

Webbläsarkriget är anledningen till att vi validerar kod. När varje tillverkare gjorde som den ville slutade sajter fungera för halva publiken. Standarderna är lösningen, och validering är hur du kontrollerar att du följer dem.

3. Klient och server

  KLIENT                                      SERVER
  din webbläsare  ─────  förfrågan  ─────▶   dator som väntar
                  ◀─────   svar    ──────    på förfrågningar

Den sista punkten förklarar mycket. En sida med trettio bilder betyder trettio förfrågningar utöver dokumentet. Varje förfrågan tar tid, även när filen är liten. Det är därför tunga sajter känns långsamma på dålig uppkoppling.

Prova själv

Öppna DevTools med F12, välj fliken Nätverk, och ladda om en sida du använder ofta. Räkna raderna. Det är antalet förfrågningar. Jämför med en enkel sida – skillnaden brukar vara tiofaldig.

4. Adressen: URL:ens delar

URL står för Uniform Resource Locator: en unik adress till en resurs.

https://www.exempel.se/kurser/webb/index.html
└─┬──┘   └─────┬─────┘└──────┬───────┘└──┬───┘
protokoll   domännamn      sökväg     filnamn
DelVad den gör
https://Protokollet. Hur klient och server ska prata. S:et betyder att trafiken är krypterad
www.exempel.seDomännamnet. Vilken server. Läses bakifrån: .se är toppdomänen
/kurser/webb/Sökvägen. Var i servern filen ligger
index.htmlFilnamnet. Utelämnas det letar servern efter index.html av sig själv

Sista raden är hela anledningen till att startsidan ska heta index.html. Det är inte en regel din lärare hittat på – det är vad servern letar efter när ingen fil är angiven.

En URL kan också ha fler delar:

https://www.exempel.se/sok?q=webb&sida=2#resultat
                          └────┬───────┘└───┬───┘
                          frågesträng    ankare

5. DNS – från namn till nummer

Servrar har nummer, inte namn. Numret kallas IP-adress.

www.exempel.se   ──DNS──▶   93.184.216.34

DNS, Domain Name System, är internets telefonkatalog. Innan din webbläsare kan fråga servern måste den ta reda på vilket nummer domännamnet motsvarar. Den frågan går till en DNS-server, och det är den första av flera datorer som blandas in innan sidan visas.

Svaret sparas en stund i din dator, så nästa gång du besöker samma sajt hoppas steget över.

Varför namn alls? För att människor inte kommer ihåg siffror. Och för att servern kan bytas ut utan att adressen ändras – man pekar bara om namnet till ett nytt nummer.

6. HTTP: förfrågan och svar

HTTP är språket klienten och servern talar. En förfrågan säger i princip "ge mig den här filen", och svaret innehåller filen plus information om hur det gick.

Metoder

MetodBetyderNär du möter den
GETGe mig den här resursenVarje gång du besöker en sida
POSTHär kommer data, ta emot denNär du skickar ett formulär

Statuskoder

Servern svarar alltid med en kod som säger hur det gick.

KodGruppBetyderVanligast när
200LyckatOK, här är filenNästan alltid
301OmdirigeringHar flyttat permanentSajten bytt adress
302OmdirigeringHar flyttat tillfälligtInloggning, kampanjsidor
304OmdirigeringOförändrad, använd din sparade kopiaDu laddar om en sida du sett nyss
403KlientfelDu får inte se det härFel rättigheter på servern
404KlientfelFinns inteFelstavad sökväg till en bild eller sida
500ServerfelServern kraschadeFel i serverns egen kod. Inte ditt fel

Koderna grupperas efter första siffran: 2 betyder lyckat, 3 omdirigering, 4 klientens fel, 5 serverns fel.

404 kommer du att träffa på. I nio fall av tio beror det på ett felstavat filnamn, fel stor eller liten bokstav, eller en sökväg som börjar med snedstreck när den inte borde.

HTTPS

S:et står för secure. Trafiken krypteras, så att någon som lyssnar på nätverket bara ser brus. Det skyddar två saker: att ingen kan läsa vad du skickar, och att ingen kan ändra i sidan på vägen.

Alla sajter ska använda HTTPS idag, inte bara de som hanterar lösenord. GitHub Pages ger dig det automatiskt.

7. Vad som händer när du trycker enter

De fem stegen. De är innehållet i ditt första projekt, så kunna dem.

  1. Adressen tolkas. Webbläsaren delar upp URL:en i protokoll, domännamn och sökväg.
  2. DNS slår upp namnet. Domännamnet översätts till en IP-adress.
  3. Förfrågan skickas. Webbläsaren kopplar upp sig mot servern och ber om filen.
  4. Servern svarar. Statuskod plus innehållet, oftast ett HTML-dokument.
  5. Webbläsaren bygger sidan. HTML läses uppifrån och ner. Varje bild, stilmall och skript som nämns leder till en ny förfrågan. När allt kommit tillbaka ritas sidan upp.

Hela kedjan tar normalt mindre än en sekund, och inblandade datorer är minst tre: din, en DNS-server och webbservern.

Prova själv

Öppna DevTools → Nätverk, ladda om en sida och besvara:

  1. Hur många förfrågningar gjordes?
  2. Hur stor var sidan totalt i kilobyte?
  3. Vilken enskild fil var störst, och vilken typ var det?
  4. Fick någon förfrågan en annan status än 200? Vilken?

8. Webbens tre språk

SpråkAnsvarar förAnalogi
HTMLInnehållet och strukturenStommen i huset
CSSUtseendetFärg, tapeter, möblering
JavaScriptBeteendetDörrar som öppnas när man går emot dem

De ska hållas isär. En sida ska fungera med bara HTML, se bra ut när CSS läggs till, och bli smidigare när JavaScript kommer på plats. Det är därför du bygger ostilad HTML i område 2 innan du får röra CSS i område 3.

9. Standarder och varför de finns

En standard är en överenskommelse om hur något ska fungera. W3C och WHATWG skriver webbens standarder, och webbläsartillverkarna följer dem.

Vinsten: kod som följer standarden fungerar i alla webbläsare, på alla operativsystem, på alla enheter. Det kallas interoperabilitet och är ett av kursens centrala begrepp.

Validering är att låta ett program kontrollera att din kod följer standarden. Du kommer att göra det i varje uppgift från och med område 2. Det tar trettio sekunder och hittar fel som annars visar sig först hos någon annan.

Användaragenter

En användaragent är vad som helst som hämtar din sida. Inte bara webbläsare:

Alla besökare är inte människor med ögon. Det är därför strukturen i HTML spelar roll, och varför en bild utan alt är osynlig för en del av din publik.

10. Webbens samhällspåverkan

Webben ändrade fyra saker i grunden. Du behöver kunna resonera om dem, inte rabbla dem.

Tillgång. Saker som krävde en resa eller ett telefonsamtal görs på trettio sekunder. Samtidigt försvann alternativen: när blanketten och kassan togs bort blev det digitala vägen inte en väg utan enda vägen.

Makt. Webben har ingen ägare, men de flesta går genom ett fåtal företags tjänster varje dag. När ett av dem ändrar sina regler ändras villkoren för miljoner människor utan att någon röstat om det.

Digitalt utanförskap. En del av befolkningen klarar inte av att göra ärendet på nätet. Det handlar sällan om ålder i sig, utan om syn, motorik, språk, uppkoppling, ekonomi eller att gränssnittet helt enkelt är illa gjort. Det sista bestämmer du över.

Att lita på det man ser. Vem som helst kan publicera vad som helst. Källkritik gick från att vara en färdighet för journalister till att vara vardagsarbete för alla.

Allt du bygger i den här kursen kommer någon annan att använda. En del av dem ser dåligt, har långsam uppkoppling eller är stressade. Du bestämmer om det går för dem.

11. Ta det längre

Titta på en riktig HTTP-förfrågan. I DevTools → Nätverk, klicka på en rad och välj fliken Headers. Du ser vad din webbläsare skickade och vad servern svarade, rad för rad.

Sidan från 1991 finns kvar. Sök upp den första webbsidan på CERN:s webbplats. Notera att den fungerar i din webbläsare trettiofem år senare. Bakåtkompatibilitet är en av webbens grundprinciper: gammal kod slutar inte fungera.

Ta reda på var en server står. Kommandot ping exempel.se i terminalen visar IP-adressen och hur lång tid svaret tog. Ju längre bort servern står, desto längre tid.

Cachning. Webbläsaren sparar filer den redan hämtat. Därför går andra besöket fortare, och därför ser du ibland en gammal version av din egen sida. Ctrl+F5 tvingar fram en riktig omladdning.

12. Felsökning

7 rader

SymptomTrolig orsakÅtgärd
Nätverksfliken är tomDu öppnade DevTools efter att sidan laddatsLadda om med DevTools öppet
Andra laddningen ser mycket lättare utFilerna hämtas ur cachenLadda om med Ctrl+F5
Bilden ger 404Fel sökväg eller fel skiftläge i filnamnetJämför filnamnet tecken för tecken
Sidan laddar men ser konstig utStilmallen fick 404Kolla link-elementets href i nätverksfliken
Sidan är långsamMånga eller stora förfrågningarKolla antal rader och kolumnen Storlek
Adressen fungerar inte allsFel i domännamnet, eller servern nereTesta en annan sajt. Fungerar den är det inte din uppkoppling
Webbläsaren varnar för osäker anslutningSajten kör HTTP utan SSkicka aldrig lösenord eller personuppgifter dit

13. Ordlistan

Alla ord här kan komma på prov 1.

Ordträning

24 rader

OrdBetyder
InternetInfrastrukturen: de sammankopplade näten
WebbenEn tjänst ovanpå internet: länkade dokument
KlientProgrammet som frågar. Din webbläsare
ServerDatorn som svarar på förfrågningar
WebbläsareProgram som hämtar, tolkar och visar webbsidor
AnvändaragentSamlingsnamn för allt som hämtar en sida: webbläsare, skärmläsare, sökrobot
HTTPProtokollet klient och server talar
HTTPSSamma sak, krypterat
ProtokollÖverenskommelse om hur två parter ska prata
URLAdressen till en resurs
DomännamnDen läsbara delen av adressen, till exempel exempel.se
ToppdomänSista delen: .se, .com, .org
SökvägVar i servern filen ligger
IP-adressServerns nummer
DNSSystemet som översätter domännamn till IP-adress
StatuskodServerns svar på hur det gick: 200, 404, 500
HTMLInnehållet och strukturen
CSSUtseendet
JavaScriptBeteendet
StandardÖverenskommelse om hur webbtekniken ska fungera
ValideringKontroll av att koden följer standarden
InteroperabilitetAtt det fungerar oavsett webbläsare, system och enhet
CacheSparad kopia som gör nästa besök snabbare
PubliceringAtt lägga upp sajten så att den är åtkomlig för andra

Statuskoderna i korthet

KodMinnesregel
2xxDet gick bra
3xxGå någon annanstans
4xxDu frågade fel
5xxServern gjorde fel