Hur går det till när en hemsida skickas till en webbläsare? I denna artikel skall jag försöka förklara det utan att förutsätta att du som läser kan några av de tekniska termerna. Låt oss försöka förstå processen genom en liknelse.
Att gå till apoteket och hämta ut ett recept kan vara enkelt, men tänk efter hur många steg det egentligen innebär. Du skall veta var det finns, ta dig dit, lämna in receptet, få medicinen, betala och ta dig hem igen. På ett liknande sätt sker kommunikationen mellan en webbläsare och en webbserver i flera steg.
Hitta apoteket
Det finns i huvudsak tre sätt att tala om för en webbläsare att man vill titta på en viss sida: Du kan skriva in dess adress manuellt, du kan hämta adressen från ett bokmärke och du kan klicka på en länk. Oavsett hur du gjort det, så består adressen av två delar. Den första är adressen till själva servern, den andra är vilken specifik sida du vill se.
Tills vidare jämför vi detta med att gå till Apoteket Kronan
och köpa astmamedicinen
Pulmicort
.
Man kan jämföra den första delen med webbadressen till apotekslokalen och den andra med namnet på den medicin man vill hämta ut. Exempelvis adressen http://keryx.se/diverse/kodarattexempelfil.php faller isär i dessa flera delar:
keryx.se
motsvararApoteket Kronan
diverse
motsvararhyllan för astmamedicin
kodarattexempelfil.php
motsvararmedlet Pulmicort
Tills vidare struntar vi bokstäverna http i början av adressen.
Apoteket Kronan är namnet på apoteket. På samma sätt är keryx.se
namnet på min webbserver. För
att ta sig till apoteket måste man veta dess gatuadress. På motsvarande vis måste man kunna veta
ip-adressen till servern med namnet keryx.se
. Allt på Internet har en ip-adress, och för att
matcha datornamn med ip-adresser så använder man DNS, som utläses Domain Name System
.
Vi kan jämföra detta med att man tar fram Gula Sidorna och letar efter Apoteket Kronan
för att
finna att det återfinns på adressen Storgatan 12
. Keryx byter under sommaren 2005 webbhotell
och det nya ip-numret blir 66.118.191.15.
Webbläsaren frågar alltså DNS-servern vad för ip-nummer som motsvarar keryx.se
och får svaret
66.118.191.15
.
Ta sig till apoteket
Vår fiktive astmatiker får nu sätta sig i bilen och börja köra till Storgatan 12
. På vägen dit
kommer han först att köra på sin egen garageuppfart, ut på den lilla gatan i villakvarteret, ut
på landsvägen, in på gatan som leder mot centrum, genom fler gator och korsningar tills han till
slut parkerar på Storgatan 12. Vid varje korsning har han bara ett fåtal alternativa vägar att
välja på. Tillsammans kan vägkorsningarna ta honom vart som helst i hela världen.
Detta motsvaras av att ett datapaket lämnar datorn via modem eller nätverksport, transporten till Internetleverantören motsvarar garageuppfarten, alla övriga korsningar motsvarar routrar på vägen till målet. Varje router behöver inte ha koll på så mycket, bara om datapaketet skall åt höger eller åt vänster. Ibland tar de fel, men då kan paketet ända ta sig fram via en annan väg.
Det är alltså en dators ip-nummer som gör att den kan hittas.
Rätt dörr
Storgatan 12 visade sig vara ett affärskomplex. Här finns affärer och restauranger och en massa annat. Vår fiktive astmatiker tar nu hjälp av det faktum att affärerna skyltar med sina namn, så att han på det viset går till rätt dörr.
Internetservrar erbjuder på ett motsvarande sätt ofta flera tjänster. Det kan vara mejl, FTP, SSH
eller något annat. IP-protokollet lämnar nu över ansvaret att hitta rätt dörr
till
TCP-protokollet. TCP utläses Transport Control Protocol
och i det finns olika s.k. portnummer.
Vanligtvis återfinns webbservern på port 80.
Lämna över receptet
OK, vi är inne på apoteket. Nu skall vi ha med oss medicinen hem. Tänk dig att webbservern är som
apotekaren man nu talar med. Man går fram och när apotekaren säger Vad får det lov att vara
, så
svarar man Hej, jag vill ha Pulmicort, tack
och räcker över receptet.
Webbservrar talar inte svenska. Deras språk
är http - Hyper Text Transport Protocol. Med http
så får servern reda på vad webbläsaren vill ha, men den talar också om för den exakt vad den
fått.
När man hämtar ut medicin på recept, så sätter klistras det ofta fast instruktioner på asken:
Mot andningsbesvär, intages två gånger dagligen eller vid behov
. Dessa instruktioner på asken
motsvaras i vår jämförelse av http-huvudet, i svaret.
http-huvudet föregår det egentliga svaret och säger alltså vad man fått och från vem man fått det och en del annat som kan vara bra att veta (om man är en webbläsare).
Dynamiska sidor
Min berättelse hittills kanske retat vän av apoteksordning. Det är sällan man får tala med en apotekare. I själva verket brukar det vara en receptarie man möter i kassan. Men förr i tiden var det ju ofta så att det recept man skulle hämta ut inte kunde expedieras innan medicinen gjorts i ordning manuellt.
Idag är de flesta webbsajter dynamiska, dvs. det man frågar efter framställs i samma
ögonblick som det efterfrågas. En webbserver hämtar ingredienserna
på olika ställen, såsom
databaser och XML-dokument, och sammanställer det som en hemsida.
Till sin hjälp har webbservern tilläggstekniker. Den vanligaste heter php, följt av asp och jsp. Detta är helt enkelt moduler som kan köra skript - en slags datorprogram - vars resultat är det som skall skickas.
Åk hem igen
När han fått sin medicin, så sätter sig vår fiktive astmatiker i bilen och åker hem. Den viktigaste skillnaden mellan att köra en bil fram och tillbaka och att skicka data över Internet, är att bilen har en förare som fattar beslut i korsningarna. På Internet är det korsningen som avgör vart fordonet tar vägen. Mer som en järnväg alltså. Tåget måste följa skenorna och det är inte lokföraren som ställer om växlarna.
En annan skillnad är att om det som skall skickas är så stort att det inte får plats i ett paket, så skickas varje paket ut för sig - i var sin egen bil så att säga - och det är inte säkert att de kommer fram i rätt ordning. Därför numreras paketen så att de kan sättas ihop rätt hos mottagaren.
TCP-protokollet står för denna numrering och andra kontroller. På den mottagande datorn skickas nu data vidare till webbläsaren. Den i sin tur granskar http-huvudet. Liksom en ask medicin kan innehålla instruktioner om hur medicinen skall tas (typ stolpiller skall inte sväljas), så är nu http-huvudet instruktioner till webbläsaren hur den skall behandla svaret.
En sak som den måste veta är exakt vad slags information den fått. Nollor och ettor kan ju utgöra bilder, ljud, video, animationer eller allt möjligt annat, såväl som html-kod.
