Servisi interneta

Klijent-server arhitektura

Servisi interneta se realizuju preko modela softverske arhitekture koji se naziva arhitektura klijent-server. Taj model podrazumeva komunikaciju dva programa sa podeljenim ulogama:

Neki od najvažnijih servisa interneta su:

Komunikacija između klijenta i servera je strogo uređena skupom pravila koji se naziva protokol. Pojedini servisi interneta su upravo dobili naziv po protokolu koji koriste (FTP, Telnet, SSH, itd.).

Izraz server se često koristi i da označi uređaj, odnosno računarski sistem, čija je prevashodna uloga da na njemu rade različiti serverski procesi koji treba da pruže usluge većem broju odgovarajućih klijentskih procesa. U istom kontekstu se uređaj na kome rade odgovarajući klijentski procesi naziva klijentom. Međutim, takva terminologija nije sasvim korektna jer na istom uređaju mogu raditi i serverski i klijentski procesi, pa bi po toj terminologiji isti uređaj mogao da se označi i kao server i kao klijent. Ipak, kada se uređaj reklamira kao, na primer, 'serverski računar', tu se ne misli da on može da izvršava samo serverske procese, već da ima takvu konfiguraciju i performanse da može da izvršava više serverskih procesa istovremeno i da istovremeno opslužuje više odgovarajućih klijentskih procesa u realnom vremenu.

Neki važniji primeri servisa interneta

Veb (www)

Veb, kao servis interneta, takođe primenjuje arhitekturu klijent-server, pri čemu ulogu klijenta imaju dobro poznati programi - čitači veba (engl. browser) - kao što su Chrome, Firefox, Edge, Opera, Safari i drugi. Ulogu servera za potrebe veba kao servisa imaju programi koji se nazivaju veb-serveri (engl. web servers), a kao sinonimi se još koriste www-serveri ili HTTP-serveri. Poznati primeri veb-servera su Apache, Nginx, IIS i dr. Veb-serveri se ponekad isporučuju u paketu sa serverskim i klijentskim programima za upravljanje bazama podataka (MySQL, MariaDB) i implementacijom nekog programskog jezika za programiranje na vebu (Perl, PHP, Python). Tipičan primer su paketi koji sadrže Apache kao veb-server, MySQL serverske i klijentske programe za upravljanje bazama podataka i implementaciju programskog jezika PHP, tzv. AMP-paketi (Apache, Mysql, PHP). U zavisnosti od toga da li su AMP-paketi namenjeni računarima sa operativnim sistemom Windows ili Linux, razlikuju se WAMP i LAMP-paketi. Popularni WAMP-paketi su EasyPHP, XAMPP i drugi.

Zahtev koji klijent (čitač veba) šalje serveru (veb-server) je zapravo adresa resursa (URL, odnosno URI) koju korisnik unosi u adresno polje čitača veba (Slika 1). Ako je adresa validna, a resurs na toj adresi dostupan (nema prekida veze, korisnik ima neophodna prava da pristupi dokumentu itd.), veb-server će klijentu poslati odgovarajući resurs; specijalno, ako je resurs HTML-dokument, on će biti preuzet (engl. downloaded) u privremeni katalog u vlasništvu čitača veba, a potom i prikazan u tom programu.

Arhitektura klijent-server na primeru veba kao servisa interneta

Ovaj servis omogućava korisniku da, pre svega, pristupa hipertekstualnim dokumentima (HTML-dokumentima), tj. dokumentima koji sadrže reference na druge dokumente, hiperveze (engl. link), tako da se iz jednog HTML-dokumenta, aktiviranjem hiperveze, neposredno prelazi u dokument na koji ta hiperveza referiše. Praćenjem hiperveza se tako, polazeći iz jednog HTML-dokumenta, može postepeno prelaziti u čitav niz HTML-dokumenata od kojih svaki prethodni sadrži hipervezu na sledeći. Međutim, veb omogućava da se preko odgovarajuće adrese pristupi ne samo HTML-dokumentima, već bilo kom resursu, odnosno datoteci proizvoljnog formata (tekst, audio, video, arhiva dobijena kompresijom itd.) koji je dostupan na vebu.

Hipertekstualni ili HTML-dokumenti se još nazivaju veb-stranicama, odnosno stranicama na vebu (engl. web page), dok se skup takvih stranica koji predstavlja jednu logičku celinu, ima zajednički deo adrese (domen) i nalazi se u okviru istog veb-servera naziva (veb-)sajtom (engl. website).

Veb kao servis koristi protokol za razmenu hiperteksta (engl. Hypertext Transfer Protocol, skr. HTTP) i protokol za sigurnu razmenu hiperteksta (engl. HTTP Secure, skr. HTTPS). Glavna razlika između protokola HTTP i HTTPS je što potonji omogućava zaštićenu komunikaciju između čitača veba i veb-servera, tj. podaci se kriptuju pre prenosa i dekriptuju na odredištu, čime se obezbeđuje zaštita privatnosti i sprečava krađa i zloupotreba podataka koje korisnik koristi kako bi se prijavio, odnosno identifikovao, na nekom sajtu.

Elektronska pošta

Elektronska pošta, e-pošta ili imejl (engl. e(-)mail) je pre nastanka veba svakako bio najpopularniji servis interneta, mada i danas opstaje, ali najčešće u kombinaciji sa drugim servisima (poput e-pošte na vebu). Tipične usluge koje pruža ovaj servis je slanje i prijem elektronskih poruka koje mogu sadržati i priloge u vidu datoteka proizvoljnog formata, ali ograničene veličine. Primeri popularnih klijenata e-pošte su Thunderbird, Alpine, a nekada popularni Microsoft Outlook Express je u međuvremenu prestao sa razvojem. Primeri serverskih programa e-pošte (engl. mail server) su sendmail, Microsoft Exchange Server, Eudora, Zimbra i mnogi drugi.

Servis e-pošte koristi više protokola u zavisnosti od toga da li je u pitanju komunikacija između različitih serverskih procesa (razmena poruka između različitih servera e-pošte) ili komunikacija između serverskog i klijentskog procesa. Jednostavni protokol za razmenu pošte (engl. Simple Mail Transfer Protocol, skr. SMTP) je primer protokola koji se koristi za razmena poruku između različitih servera e-pošte, dok su Poštanski protokol (engl. Post Office Protocol, skr. POP) i Protokol za pristup porukama na internetu (engl. Internet Message Access Protocol, skr. IMAP) primeri protokola koje klijenti e-pošte koriste za preuzimanje poruka sa servera e-pošte.

Elektronska pošta na vebu

Elektronska pošta na vebu (engl. webmail) je spoj dva različita servisa: veba i e-pošte. Sa stanovišta korisnika klijent ovog servisa je, kao u slučaju veba, bilo koji čitač veba zahvaljujući kome korisnik pristupa svojoj pošti kao HTML-dokumentu. S druge strane, veb server sadrži klijent e-pošte kao veb-aplikaciju (tj. program koji se izvršava na vebu) preko kog se realizuje komunikacija sa serverom e-pošte na uobičajeni način. Tipičan primer su Gmail, Yahoo! mail i Hotmail koji je u međuvremenu postao Outlook.

Arhitektura klijent-server na primeru e-pošte kao servisa interneta

Brza razmena datoteka

Brza razmena datoteka je primer servisa koji je dobio naziv po protokolu koji koristi - protokolu za razmenu datoteka (engl. file transfer protocol, skr. FTP). Ovaj servis omogućava korisniku da sa svog računara prenosi datoteke na udaljeni računar (engl. upload) na kome ima pristup odgovarajućem FTP-serveru, kao i da sa udaljenog računara preuzima datoteke (engl. download), ali za razliku od drugih servisa interneta, FTP je još na samom nastanku bio prilagođen brzoj razmeni datoteka.

Kao i HTTP, i protokol FTP ne štiti podatke pre slanja, tako da je danas zamenjen protokolima koji kriptuju komunikaciju između FTP-klijenta i FTP-servera, kao što su FTPS (FTP-SSL) i SFTP (SSH FTP).

Primer popularnih SFTP-klijenata su SSH Secure Shell i WinSCP.

Rad na udaljenom računaru

Rad na udaljenom računaru (engl. Remote Desktop Access) je servis koji omogućava korisniku da sa lokalnog računara pristupi udaljenom računaru preko mreže i da radi na udaljenom računaru kao da je u pitanju lokalni računar. Razvijeno je više protokola za rad na udaljenom računaru po kojima su i odgovarajuće implementacije servisa dobile ime: Telnet i SSH. Potonji je zamenio prethodni iz istog razloga kao kod zamene protokola HTTP protokolom HTTPS, odnosno zamene protokola FTP protokolima FTPS i SFTP: da bi se sačuvala privatnost korisnika i sprečila krađa identiteta, SSH, za razliku od protokola Telnet, kriptuje komunikaciju između klijenta i servera.

Primer popularnih SSH-klijenata su SSH Secure Shell i PuTTY.

Telefoniranje preko interneta

Telefoniranje preko interneta (engl. Voice over Internet Protocol, skr. VoIP) je servis koji omogućava korisniku da sa lokalnog računara obavi telefonski razgovor koristeći protokol interneta (IP). Popularne implementacije ovog servisa su Skype, Viber, WhatsApp itd. Za potrebe servisa telefoniranja preko interneta je razvijeno više protokola za rad na udaljenom računaru, neki su zasnovani na otvorenim standardima, a neki na vlasničkim standardima ili kombinaciji otvorenih i vlasničkih standarda. Na primer, WhatsApp koristi prilagođenu verziju protokola XMPP (proširiv protokol za razmenu poruka i prisustvo(vanje)), engl. Extensible Messaging and Presence Protocol), zasnovanog na otvorenom standarda, dok Skype koristi vlasnički protokol — Skype Protocol.

Adresiranje uređaja na internetu

Svaki učesnik komunikacije na internetu, bilo da je reč o uređaju (računaru/host, ruteru/router, vratnicama/gateway, mostu/bridge), serverskom ili klijentskom procesu (programu koji se izvršava) ili resursu (datoteci koja predstavlja tekst, zvuk, sliku, itd.), mora imati adresu koja ga identifikuje i pomoću koje se može pronaći na internetu.

IP-adresa

Uređaji na internetu koji koriste protokol IP (engl. Internet Protocol) identifikuju se pomoću adresa koje se nazivaju IP-adrese. Postoji nekoliko verzija IP-adresa, trenutno su aktuelne verzija IPv4 i IPv6. Verzija IPv4 je trenutno u upotrebi, ali će u budućnosti postepeno biti zamenjena verzijom IPv6. Naime, IPv4 definiše IP-adresu kao binarnu reč dužine 32 bita (odnosno 4 bajta), što znači da podržava najviše 232 adresa. Pošto je 210=1024, ukupan broj adresa koje podržava IPv4 je 232=22·2103 =4·10243, tj. nešto preko četiri milijarde adresa. U praksi se pokazalo da je broj raspoloživih IPv4-adresa nedovoljan, s obzirom na konstantan rast broja uređaja povezanih na internetu. IPv6 koristi 128 bitova za predstavljanje jedne IP-adrese, što znači da podržava najviše 2128=2324 adresa, odnosno četvrti stepen ukupnog broja adresa koje podržava verzija IPv4.

IP-adresa, kao binarna reč dužine 4 bajta, se još predstavlja u čitljivijem obliku kao niz od četiri nenegativna cela broja razdvojena tačkom, pri čemu je svaki broj dekadna vrednost sadržaja odgovarajućeg bajta IP-adrese. Pošto je bajt dužine 8 bita, u njemu se mogu registrovati tačno 28=256 različitih vrednosti (od 0000 00002 do 1111 11112) u opsegu od 0 do 255. Na primer, 147.91.76.20 je čitljivi oblik IP-adrese računara na kome se nalazi sajt Filološkog fakulteta.

Za raspodelu IP-adresa na globalnom nivou (adresni prostor na internetu) zadužena je IANA (engl. Internet Assigned Numbers Authority). IANA deli adresni prostor (skup svih raspoloživih IP-adresa) tako da njene ispostave (regionalni registri interneta) dobijaju različite podskupove adresa koje dalje raspodeljuju (uz finansijsku nadoknadu) organizacijama (poput akademskih mreža) ili firmama koje se bave pružanjem usluge pristupa internetu (engl. Internet Service Provider, skr. ISP). ISP (kod nas se odomaćio izraz provajder, mada na engleskom provider znači "pružalac usluge uopšte, ne samo pristupa internetu") za finansijsku nadoknadu omogućava pristup internetu, što u praksi znači da korisnik, uz finansijsku nadoknadu, dobija privremeno na korišćenje neku od IP-adresa koje poseduje ISP. Tako dodeljena IP-adresa može biti ili statička ili dinamička.

Dinamičke i statičke IP-adrese. DHCP

Po sklapanju ugovora sa ISP-om, korisnik, ukoliko su ispunjeni određeni preduslovi (posedovanje potrebne opreme i softvera koje u dogovoru obezbeđuje ili sam korisnik ili ISP) je u stanju da poveže svoj računar sa serverskim programom ISP-a zaduženim za dodelu IP-adresa.

Tipičan primer usluge koju pruža ISP je korišćenje kablovskog interneta. U tom slučaju je neophodan:

  • hardverski uređaj koji predstavlja kablovski modem i
  • sistem kabliranja koji kombinuje optička vlakna i koaksijalne kablove, (obično niz takvih kablova koji se nastavljaju jedan na drugi), a služi za prenos signala između ISP-a i kablovskog modema.

Za samu razmenu signala između kablovskog modema i računara korisnika može se koristiti mrežni kabl ili radio-talasi kao bežičan medijum.

Korisnik započinje pristup internetu kada uključi kablovski modem, čime se šalje zahtev ISP-u za IP-adresom i podacima o podešavanjima mreže. Serverski program ISP-a, koji kablovskom modemu dodeljuje IP-adresu na zahtev, naziva se DHCP-server (engl. Dynamic Host Configuration Protocol), odnosno server zasnovan na protokolu za dinamičko konfigurisanje računara u mreži. DHCP-server ne mora uvek dodeliti računaru istu IP-adresu, mada računar može da zahteva IP-adresu koja mu je dodeljena prilikom prethodnog pristupa internetu, bez garancije da će je i dobiti (jer ju je možda već dobio neki drugi računar). Prema tome, IP-adresa računara ne mora biti unapred određena i u tom slučaju se naziva dinamička IP-adresa.

Statičke i simboličke IP-adrese. DNS

Ako računar ima unapred određenu IP-adresu koja je fiksirana, odnosno ne menja se, takva IP-adresa se naziva statička IP-adresa. Statička IP-adresa se dodeljuje računarima čija je adresa javna kako bi se korisnicima omogućio lakši pristup serverskim programima na tim računarima. To se dodatno postiže uvođenjem simboličke adrese koju mogu imati isključivo računari sa statičkom IP-adresom.

Na primer, www.fil.bg.ac.rs je simbolička adresa koja odgovara statičkoj IP-adresi 147.91.76.20 računara na kome se nalazi sajt Filološkog fakulteta.

S obzirom da adresiranje na internetu počiva na IP-adresama, kad god se upotrebi simbolička adresa za pronalaženje ili identifikaciju računara na internetu, simbolička adresa mora da se konvertuje u odgovarajuću (statičku) IP-adresu. U tu svrhu se koristi sistem imena domena (engl. Domain Name System, skr. DNS).

Port

Kada se šalje poruka nekom procesu (klijentskom, serverskom), s obzirom da na jednom uređaju može istovremeno raditi više procesa, bilo klijentskih, bilo serverskih, protokol komunikacije i IP-adresa uređaja su neophodni da se pronađe sam uređaj i definišu pravila komunikacije, ali nisu dovoljni da se identifikuje sam proces na tom uređaju. U tu svrhu se svakom procesu koji učestvuje u komunikaciji na internetu dodeljuje nenegativan ceo broj koji, u kombinaciji sa protokolom i IP-adresom uređaja, jednoznačno identifikuje odgovarajući proces. Identifikacioni broj procesa na uređaju predstavlja, u prenosnom značenju, luku ili pristanište (engl. port) za poruke koje "plove" internetom, pa se ovaj termin ili ne prevodi, već preuzima kao internacionalizam port, ili se prevodi u odgovarajućem prenosnom značenju kao porta (Cvetana Krstev), na osnovu metafore po kojoj se poruke "šetaju" hodnikom od vrata do vrata (lat. porta), gde se iza svakih vrata nalazi odgovarajući proces.

Za pojedine parove, koje čine servis na internetu i odgovarajući protokol, su, de fakto, standardizovani identifikacioni brojevi serverskih procesa (portovi), ali administrator računara ili računarske mreže uvek može da promeni podrazumevane portove prilikom instalacije ili ponovnog podešavanja serverskog programa. U nastavku su dati primeri podrazumevanih portova za serverske procese pojedinih parova koje čine servis na internetu i odgovarajući protokol, više kao ilustracija nego kao informacije koje treba pamtiti (Tabela 1):

Primeri podrazumevanih portova za serverske procese pojedinih parova koje čine servis na internetu i odgovarajući protokol
Servis Protokol Podrazumevani port serverskog procesa
veb (www) http 80
veb (www) https 443
brza razmena datoteka (ftp) ftp 21
rad na udaljenom računaru (ssh) ssh 22
rad na udaljenom računaru (telnet) telnet 23
e-pošta (e-mail) SMTP 25
e-pošta (e-mail) POP3 110
e-pošta (e-mail) IMAP 143

URL i URI

URL kao apsolutna adresa resursa na vebu

Jednoobrazni (uniformni) identifikator resursa (engl. Uniform Resource Identifier, skr. URI) je niska karaktera koja:

  • jednoznačno određuje (identifikuje) određeni resurs,
  • ima tačno određenu sintaksu tako da se svaki resurs opisuje identifikatorom iste (jednoobrazne, uniformne) strukture.

Postoje dve varijante u kojima se URI pojavljuje: kao URN i kao URL. URN izlazi iz okvira priče o adresiranju, tako da o njemu ovde neće biti reči.

Jednoobrazni (uniformni) lokator resursa (engl. Uniform Resource Locator, skr. URL) je URI namenjen ne samo identifikaciji već i pronalaženju i predstavljanju resursa. URL se koristi kao apsolutna adresa proizvoljnog resursa na internetu, tj. ne samo što identifikuje resurs već određuje njegovu lokaciju na mreži i omogućava da mu se direktno pristupi.

Prvobitno su URL koristili uređaji na internetu, a danas se posebna vrsta URL-a, adrese na vebu, koriste kao adrese koje razumeju i razmenjuju ljudi kako bi upućivali referisali na neki resurs veba (sajt, stranicu sajta, sliku, audio ili video datoteku itd.).

Korenski katalog veb-servera

Prilikom instalacije veb-servera na računaru potrebno je izabrati jedan katalog koji će predstavljati korenski katalog veb-servera (engl. web root, document root). Time se praktično definiše jedan deo spoljne memorije računara čiji je sadržaj (datoteke i potkatalozi korenskog kataloga veb servera, kao i sadržaj potkataloga) dostupan ostalim uređajima računarske mreže pod određenim uslovima. Uslovi su određeni pravima pristupa: čitanje datoteke, upisivanje u datoteku, izvršavanje datoteke kao programa, pristup katalogu sa mogućnošću da se vidi celokupan njegov sadržaj, pristup pojedinačnim datotekama kataloga bez mogućnosti da se vidi šta sve katalog sadrži, itd.

Prema tome, korenski katalog veb-servera omogućava administratoru veb servera da kontroliše kom delu spoljne memorije i na koji način ostali korisnici mreže mogu da pristupe sa svojih računara.

Struktura URL-a

URL ima fiksiranu strukturu (Tabela 2). Neki delovi URL-a su neobavezni i oni su u Tabeli 2 obeleženi crvenom bojom.

Struktura URL-a
Naziv dela Uloga Primer
Šema (protokol) Naziv protokola, tj. skupa pravila kojim se uređuje komunikacija između klijenta i servera. http ili https
Separator (graničnik) Razdvaja šemu (protokol) i adresu uređaja. ://
Adresa uređaja IP-adresa ili simbolička adresa uređaja. 147.91.76.20 ili www.fil.bg.ac.rs
Separator (graničnik) Razdvaja adresu uređaja od porta koji se koristi. :
Port Port koji se koristi za komunikaciju između klijenta i servera. 8080 ili 80
Korenski katalog servera / (u stvarnosti je to neki potkatalog izabran prilikom instalacije veb servera, na primer potkatalog C:\Program Files\xampp\htdocs kataloga u kome se nalazi instaliran ili ili potkatalog www kataloga u kome se nalazi instaliran EasyPHP/Apache itd.).
Relativna adresa Putanja od korenskog kataloga servera do resursa. misko/flf/iw/iw.html
Separator (graničnik) Razdvaja adresu HTML-dokumenta od naziva sidra #
Naziv sidra Jednoznačni identifikator sidra u HTML-dokumentu. hobi
Primeri URL-a sa IP-adresom računara (http://147.91.76.20/misko/flf/iw/iw.html) i simboličkom adresom računara (http://www.fil.bg.ac.rs/misko/flf/iw/iw.html)

URL omogućava da se pristupi direktno bilo kom sidru dostupnog HTML-dokumenta. Na primer, ovaj odeljak pripada članku URL i URI kome se može direktno pristupiti preko apsolutne adrese (URL)

http://www.fil.bg.ac.rs/misko/flf/iw/servisi/servisiInterneta.html#url_uri.

S obzirom da port nije naveden, podrazumeva se standardni port za servis veb: 80. Drugim rečima, prethodni URL je skraćeni zapis za URL

http://www.fil.bg.ac.rs:80/misko/flf/iw/servisi/servisiInterneta.html#url_uri.