Poglavje 1 D1.1 Delovanje svetovnega spleta in spletne strani skozi čas

D1.1
Trenutno je na svetu približno 3,7 milijarde internetnih uporabnikov, kar predstavlja skoraj 50% vseh prebivalcev na Zemlji (Internet World Stats 2017). Če upoštevamo vse naprave, ki so povezljive v internet, potem se ta številka po nekaterih ocenah giblje okrog 30 milijard naprav (P. Deitel, Deitel, and Deitel 2011).
1.1 Internet vs. (svetovni) splet
Internet je globalna mreža omrežij računalnikov in dejansko predstavlja omrežno infrastrukturo. Globalno povezuje ogromno količino računalnikov in tvori omrežje, kjer lahko poljuben računalnik komunicira s katerimkoli drugim računalnikom, če sta oba povezana v internet. Informacije, ki se prenašajo po internetu so v različnih jezikih oz. protokolih.
Svetovni splet1 oz. poenostavljeno splet je način dostopa do informacij preko interneta, ki ga uporablja kot medij. Predstavlja model za izmenjavo informacij, ki temelji na internetu. Splet uporablja za prenos podatkov protokol HTTP, ki je zgolj eden izmed jezikov, prisotnih na internetu. Spletne storitve, ki uporabljajo HTTP za medsebojno komuniciranje poslovne logike, uporabljajo splet za izmenjavo informacij. Splet uporabljajo odjemalci, spletni brskalniki, kot je npr. Chrome, Safari, Firefox, Edge, Opera idr., za dostop do spletnih dokumentov oz. spletnih strani, ki so med seboj povezani preko spletnih povezav. Spletni dokumenti lahko vsebujejo grafiko, zvok, besedilo in video.
Splet je le eden od načinov izmenjave informacij preko interneta. Internet, ne splet, se uporablja tudi za elektronsko pošto, ki temelji na protokolu SMTP, takojšnje sporočanje, prenos datotek s protokolom FTP idr. Splet je le del interneta, čeprav predstavlja velik del njega, pa je potrebno izpostaviti, da pri teh pojmih ne gre za sinonima in jih ne smemo zamenjevati.
1.1.1 Praktični primer
- Internet ≄ splet,
- internet je omrežje cest,
- brskalnik je avto,
- spletni iskalnik je GPS v avtomobilu,
- spletne strani predstavljajo domove ljudi in organizacij, kjer ima vsaka enoličen naslov,
- svetovni splet je mesto.
1.2 Razvoj (svetovnega) spleta
Svetovni splet omogoča računalnikom na internetu izvajanje spletnih aplikacij in iskanje ter pregled dokumentov s poljubno vsebino. Leta 1989 je Tim Berners-Lee iz CERN-a začel z razvojem tehnologije za izmenjavo informacij s pomočjo dokumentov, ki so povezani s hiperpovezavami. Ta njegova novost se je imenovala HTML2, prav tako pa je pripravil komunikacijske protokole, ki so osnova svetovnega spleta. Najbolj pomembna sta komunikacijski protokol HTTP3 za pošiljanje informacij po spletu in URL4, ki opredeljujejo naslov (t.j. lokacijo) spletne strani, prikazane v spletnem brskalniku. Vsaka spletna stran na internetu je povezana z enoličnim URL naslovom, ki se običajno začne s http://
.
Prva spletna stran je bila objavljena 6. avgusta 1991 in sicer jo je izdelal Tim Berners-Lee. Ker ta prvotna stran ni več dosegljiva so v CERN-u poiskali najstarejšo dostopno različico spletne strani iz leta 1992 (glej sliko 1.1), ki je dostopna na spletnem naslovu http://info.cern.ch/hypertext/WWW/TheProject.html.

Slika 1.1: Najstarejša dostopna različica spletne strani iz leta 1992
URL naslovi spletnih strani, kjer se prenašajo zasebni podatki (npr. številke kreditnih kartic) se pogosto začnejo s https://
, ki predstavlja HTTPS5 protokol in je standard za prenos šifriranih podatkov na spletu.
Uporaba svetovnega spleta se je eksponentno razširila leta 1993 z brskalnikom Mosaic, ki je že imel grafični uporabniški vmesnik. Razvojna ekipa, ki je sodelovala pri nastanku brskalnika Mosaic, je nato nadaljevala in ustanovila podjetje Netscape, ki je v času eksplozivne rasti internetne ekonomije v poznih 1990 odigralo ključno vlogo. Po “dot com” zlomu v letih 2000, se je stanje zopet začeli izboljševati nekje okrog leta 2004 z obdobjem, imenovanim Splet 2.0. Ključna internetna podjetja tega obdobja so Google, YouTube (souporaba video posnetkov), Facebook (družabno omrežje), Twitter (mikrobloganje), Groupon (družabno trgovanje), Foursquare (mobilna prijava), Salesforce (poslovna programska oprema v obliki storitev v oblaku), Craigslist, Flickr (souporaba slika), Skype (internetna telefonija in videoklici) in Wikipedia (brezplačna spletna enciklopedija).
1.3 Delovanje (svetovnega) spleta
Osnovna interakcija na spletu je med odjemalcem (spletnim brskalnikom) in spletnim strežnikom. V najbolj preprosti obliki, je spletna stran zgolj enostaven HTML dokument (s končnico .html
ali .htm
), ki brskalniku opisuje vsebino in strukturo dokumenta.
HTML dokumenti v večini primerov vsebujejo spletne povezave oz. hiperpovezave, ki ob kliku, zahtevajo nalaganje določenega spletnega dokumenta. S hiperpovezavo lahko referenciramo tako slike kot besedilo. Hiperpovezave se preprosto uporabljajo za referenciranje virov oz. strani, ki imajo o določeni problemski domeni na voljo več podatkov. Ravno s pomočjo hiperpovezav smo dosegli to eksponentno rast oz. učinek interneta.
Ob kliku uporabnika na spletno povezavo, spletni strežnik poišče zahtevano spletno stran in jo posreduje uporabnikovemu spletnemu brskalniku. Podobno lahko uporabnik tudi neposredno vnese naslov spletne strani v brskalnikovo naslovno vrstico in zahteva prikaz.
Spletne povezave lahko referencirajo druge spletne strani, elektronske naslove (npr. mailto:elektronskiNaslov
, kjer se ob kliku odpre privzeti program za pošiljanje elektronske pošte), datoteke (če brskalnik datoteke ne zna prikazati, jo preprosto prenese na lokalni računalnik) in mnoge druge.
URI6 je mehanizem za enolično identifikacijo virov na internetu. URI naslovi, ki se začnejo s http://
se imenujejo URL7. Osnovna vloga URL-jev je referenciranje datotek, map ali programske kode na strežniku, ki izvaja funkcionalnosti poizvedovanja po podatkovni bazi, poizvedovanja po internetu in procesiranje v okviru poslovnih aplikacij. Če poznamo URL naslov javno dostopnega vira nekje na spletu, lahko z vnosom URL naslova v spletni brskalnik le-tega prikažemo.
URL vsebuje informacije, ki spletni brskalnik usmerijo na pravilno lokacijo za prikaz vira. Takšne vire uporabnikom omogočajo spletni strežniki (npr. Apache HTTP Server, Microsoft Internet Information Services, Ngnix idr.).
Primer URL naslova je prikaz spodaj in v nadaljevanju bomo predstavili posamezne dele.
https://teaching.lavbic.net:443/UST/index.html
Zgornji primer URL naslova se začne z besedilom https://
, ki nam pove, da se naj za dostop do vira uporabi HTTPS protokol. Naslednji podatek URL naslova je ime gostitelja8 (npr. teaching.lavbic.net
), ki predstavlja računalnik, na katerem je nameščen spletni strežnik za strežbo zahtevanega vira. Ime gostitelja teaching.lavbic.net
se nato prevede v IP naslov (numerična vrednost, ki enolično določa strežnik na internetu). Za to funkcionalnost se uporabi DNS9 strežnik, ki vsebuje preslikovalne tabele imen gostiteljev in njihovih IP naslovov ter transformacijo izvede samodejno. Nato sledijo opcijska vrata10, ki nam povedo, kje strežnik posluša za zahteve. V našem primeru je številka vrat 443, kar je privzeta vrednost za HTTPS protokol, medtem ko so vrata 80 privzeta za protokol HTTP. Preostanek URL naslova /UST/index.html
predstavlja lokacijo /UST
in ime vira index.html
na spletnem strežniku. Naslov vira lahko predstavlja dejansko mapo na datotečnem sistemu spletnega strežnika, vendar zaradi varnostnih razlogov je lokacija vira ponavadi virtualna mapa oz. naslov. Spletni strežnik nato pretvori virtualno mapo v dejansko lokacijo na strežniku in na ta način prikrije dejansko lokacijo vira.
1.3.1 Posredovanje zahteve in prejem odgovora
Ko ima uporabnik na voljo URL naslov spletne strani, njegov spletni brskalnik s pomočjo HTTP protokola posreduje zahtevo spletnemu strežniku, kot je to prikazano na sliki 1.2.

Slika 1.2: Spletni odjemalec zahteva vir na spletnem strežniku
Zahteva v našem enostavnem primeru je naslednje oblike:
GET /UST/index.html HTTP/1.1
Beseda GET predstavlja HTTP metodo s katero zahtevamo vir na spletnem strežniku. Preostanek zahteve predstavlja pot do vira (npr. HTML5 dokument) ter ime protokola in njegova verzija (HTTP/1.1
). V zahtevo lahko vključimo tudi obvezne in opcijske podatke v glavi11.
Vsak strežnik, ki razume HTTP protokol (v našem primeru verzijo 1.1), lahko sprocesira zahtevo in odgovor, kot je prikazano na sliki 1.3.

Slika 1.3: Spletni odjemalec dobi odgovor od spletnega strežnika
Strežnik nato odgovori odjemalcu z vrstico besedila, ki vsebuje verzijo protokola in numerično kodo ter rezervirano besedo za opis statusa zahteve. V primeru uspešnega statusa je primer odgovora naslednji:
HTTP/1.1 200 OK
če pa pride do napake (npr. vira ni mogoče najti), je primer odgovora spodaj:
HTTP/1.1 404 Not found
Celoten seznam numeričnih kod, ki predstavljajo HTTP status transakcije, je na voljo na (W3C 1999).
V nadaljevanju strežnik posreduje eno ali več glav HTTP za dodaten opis podatkov, ki jih bo strežnik posredoval. V našem primeru strežnik posreduje HTML5 tekstovni dokument, zato bi bila glava HTTP v našem primeru naslednja:
Content-type: text/html
Podatke v tej glavi HTTP opredeljuje tip MIME12, ki nam pove kakšnega tipa je vsebina, ki jo strežnik posreduje kot odgovor odjemalcu. MIME standard opredeljuje podatkovne formate, ki so v pomoč programom pri pravilni interpretaciji vsebine. Npr. tip MIME text/plain
daje brskalniku navodilo naj vsebino interpretira kot navadno besedilo in ga preprosto prikaže. Podobno, tip MIME image/jpeg
predstavlja vsebino, ki predstavlja sliko v JPEG formatu. Brskalnik ob prejemu takšne vsebine, le-to prikaže kot sliko. Po posredovanju enega ali več tipov MIME sledi prazna vrstica, kar je potrditev, da ni več tipov MIME in bo sledila vsebina zahtevanega dokumenta (npr. index.html
). Brskalnik na strani odjemalca nato prikaže dokument, ki lahko vsebuje še več dodatnih zahtev za pridobitev povezanih stilov CSS in slik.
Najbolj pogosti HTTP metodi oz. tipa zahtev HTTP sta get
in post
. Z get
metodo zahtevamo informacije s strani strežnika, kot je npr. HTML dokument, slika ali rezultati iskanja na podlagi uporabniške poizvedbe preko spletnega obrazca. S post
metodo posredujemo podatke na strežnik in se večinoma uporablja pri pošiljanju podatkov spletnega obrazca. Za posredovanje podatkov na strežnik lahko uporabimo tako get
kot post metodo
, vendar je način posredovanja podatkov pri vsaki izmed metod drugačen.
Pri get
metodi podatke dodamo kot del URL naslova, npr. www.google.com/search?q=SP
. V tem primeru je search
ime funkcionalnosti na strani Google strežnikov, ki sprejema iskalne zahteve, q
je ime spremenljivke v spletnem obrazcu in SP
ključna beseda iskanja. Znak ?
v URL zahtevi loči poizvedovalni niz od preostanka URL naslova v zahtevi. Par ime/vrednost
se posreduje na strežnik, kjer sta ime
in vrednost
ločena z znakom =
. Če želimo vključiti več parov ime/vrednost
, potem pare med seboj ločimo z znakom &
. Strežnik prejme posredovane podatke s strani odjemalca, jih razčleni in s tem pridobi ustrezen vir na strežniku in ga posreduje v odgovoru nazaj odjemalcu.
Pri post
zahtevi se podatki posredujejo kot del sporočila HTTP in ne kot del URL naslova. get
zahteva je ponavadi tudi omejena z dolžino poizvedovalnega niza (t.j. dolžina niza desno od znaka ?
), tako da je potrebno, v primeru pošiljanja večje količine podatkov, le-te posredovati s post
metodo. Prav tako uporabljamo post
metodo takrat, ko želimo določene podatke uporabniku skriti, tako da jih samodejno vključimo v sporočilo HTTP. V primeru spletnih obrazcev imamo to funkcionalnost podprto v obliki skritih polj, ki se ob pošiljanju potem tudi posredujejo na strežnik.
Namig: Podatki, poslani s pomočjo
post
metode, niso del URL naslova, zato jih uporabnik privzeto ne vidi. Kljub temu so na voljo orodja, ki nam omogočajo prikaz teh podatkov, zato ne smemo predvidevati, da so poslani podatki varni pred zlorabo samo zato, če uporabimopost
zahtevo.
Spletni brskalniki pogosto predpomnijo13 zadnje prikazane spletne strani, zaradi hitrejšega ponovnega prikaza. Če med zadnjim ogledom strani ni bilo nobene spremembe na strežniku, potem to zagotovo izboljša uporabniško izkušnjo. Pri posredovanju HTTP odgovora imamo možnost opredeliti čas, za katerega se smatra, da je vsebina še vedno aktualna. Če ta čas še ni pretekel, potem spletni brskalnik ne bo izvedel dostopa do strežnika in bo preprosto prikazal lokalno kopijo. Ponavadi spletni brskalniki ne prepomnijo post
zahtev, saj pogosto vsaka naslednja takšna zahteva vrača drugačen odgovor.
1.4 Spletne strani skozi čas
S pomočjo spletne strani Wayback Machine lahko preverimo, kako so se spreminjale spletne strani skozi čas. Na spodnjih slikah 1.4, 1.5, 1.6 in 1.7 je prikazan primer priljubljene slovenske strani RTV Slovenija.

Slika 1.4: Izgled spletne strani RTV Slovenija na dan 2. 8. 1999

Slika 1.5: Izgled spletne strani RTV Slovenija na dan 18. 7. 2005

Slika 1.6: Izgled spletne strani RTV Slovenija na dan 28. 7. 2011

Slika 1.7: Izgled spletne strani RTV Slovenija na dan 21. 9. 2018
1.5 Primer izvorne kode spletne strani
Izvorno kodo vsake spletne strani, ki jo pregledujemo v izbranem spletnem brskalniku (npr. Google Chrome) lahko enostavno pogledamo. V brskalniku Google Chrome z desnim klikom kliknemo na stran in izberemo Preglej (glej sliko 1.8). Spodaj ali ob strani se nam pojavi nov del okna s številnimi zavihki. Če izberemo Elements, dobimo prikaz izvorne kode strani, ki se osvetli, ko izberemo želeni element.

Slika 1.8: Izvorna koda spletne strani RTV Slovenija
Literatura
Internet World Stats. 2017. “Usage and Population Statistics.” http://www.internetworldstats.com/stats.htm.
Deitel, Paul, Harvey Deitel, and Abbey Deitel. 2011. Internet & World Wide Web: How to Program. 5th ed. Pearson. https://www.amazon.com/Internet-World-Wide-Web-Program/dp/0132151006.
W3C. 1999. “RFC 2616, Status Codes Definitions.” https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
angl. World Wide Web (WWW)↩
angl. HyperText Markup Language↩
angl. Hypertext Transfer Protocol↩
angl. Uniform Resource Locator↩
angl. HyperText Transfer Protocol Secure↩
angl. Uniform Resource Identifiers↩
angl. Uniform Resource Locator↩
angl. hostname↩
angl. Domain Name System↩
angl. port↩
angl. header↩
angl. Multipurpose Internet Mail Extensions↩
angl. cache↩