Professional Documents
Culture Documents
Internet I World Wide Web
Internet I World Wide Web
Copyright 2017 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadrana. Bez prethodne pismene dozvole od strane
Univerziteta METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili memorisanje nekog dela ili itavih sadraja
ovog dokumenta., kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji drugi nain.
Copyright 2017 BELGRADE METROPOLITAN UNIVERSITY. All rights reserved. No part of this publication may be reproduced,
stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording,
scanning or otherwise, without the prior written permission of Belgrade Metropolitan University.
www.metropolitan.ac.rs
Internet i World Wide Web
UVOD
Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih
hipervezama, a zapamenih u fajlovima koji su locirani na hiljadama
servera distribuiranim po globalnom Internetu.
Internet je globalni sistem meusobno povezanih raunarskih mrea koje koriste Internet
Protokol (TCP/IP) za meusobnu komunikaciju. Mrea svih mrea se sastoji od miliona
privatnih, javnih, akademskih, poslovnih i vladinih mrea i raunara povezanih raznim
tehnologijama, elektrinim, optikim i beinim. Internet se moe definisati i kao veza meu
raunarima radi omoguavanja razmene informacija meu korisnicima. Na Internetu je
zastupljen irok spektar informacija i servisa, kao to su hypertext stranice na World Wide
Webu, elektronska pota, zvuk, video, telefonska i video konverzacija, itd.
World Wide Web zvanino nastaje 1989. godine u CERN-u (evropskoj laboratoriji za fiziku
atomskih estica) u enevi. Grupa koju je vodio Tim Berners-Lee imala je za cilj kreiranje
distribuiranog sistema hipertekstualnih podataka: distribuirani je oznaavalo da su podaci
rasporeeni na razliitim lokacijama (raunarima), a hipertekstualni da se dodatne
informacije o eljenoj temi mogu dobiti jednostavnim izborom istaknutih mesta (klikom mia
na istaknutu re, frazu ili sliku).
Veb je tokom svog relativno kratkog postojanja evoluirao u platformu za razvoj i korienje
aplikacija. Dananje VA (Veb Aplikacije) su potpuno razvijeni, kompleksni softverski sistemi,
a izraz posetilac polako ali sigurno ustupa mesto izrazu korisnik Veb sajta, to implicira
visok nivo interakcije.
World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata
sainjenih od povezanih Web stranica napisanih u HTML-u. Stranice su raspoloive
korisnicima Web-a u vidu datoteka smetenih na milionima raunara distribuiranih po
Internetu. Svaka stranica moe sadrati pokazivae (tzv. linkove ili hiperveze) na druge
stranice koje mogu biti smetene na istom ili na nekom drugom raunaru (ili, u terminologiji
Web-a, Web sajtu).
3
Poglavlje 1
ISTORIJA WWW
Za razliku od veine drugih stvari koje su vezane za informaciono-
komunikacionu tehnologiju, Veb nije nastao u Americi ve u Evropi.
Tanije u enevi, na CERN-u.
BernersLi je napravio sve komponente koje su mu bile potrebne (HTML, HTTP, pretraiva
nazvan WorldWideWeb, server i prvu Veb stranicu ikada, na kojoj je bio opisan sam projekat)
da pokrene Veb. WWW ima za cilj da omogui pravljenje veza (linkova) ka bilo kojoj
informaciji, bilo gde. (...) WWW projekat je zapoet kako bi se omoguilo fiziarima da
razmjenjuju podatke, novosti i dokumentaciju. Jako smo zainteresovani za irenje mree na
druge oblasti i otvaranje servera za druge podatke. Saradnici su dobrodoli!
Veb kakav danas poznajemo nije ni slian onome to je bio u svom skromnom zaetku.
Veb jeste razmenu fajlova uinio neposrednijom i lakom za korienje nego ikada pre: svako
je mogao koristiti sopstveni kompjuter da pretrauje fajlove skladitene na neijem tuem
kompjuteru. Razdaljina nije bila bitna. Operativni sistem nije bio bitan. Format nije bio bitan.
Magija koja je stajala iza svega toga bio je program zvani Veb server. Meutim, jo uvek je
falio efikasan alat za pretraivanje i korienje svih tih informacija koji bi bio prihvatljiv i manje
iskusnim korisnicima.
Potreba za boljim alatom na klijentu je postala stvarna, a stvarna potreba stvara trite. I tada
je nastao Veb pretraiva. Bio je to ultimativni alat za povezivanje klijenta na sve vei broj
Veb stranica, koje su nicale na serverima sa svih strana.
Veb je tokom svog relativno kratkog postojanja evoluirao u platformu za razvoj i korienje
aplikacija. Dananje VA su potpuno razvijeni, kompleksni softverski sistemi, a izraz posetilac
4
Poglavlje 1 Kratak pregled (r)evolucije WWW
polako ali sigurno ustupa mesto izrazu korisnik Veb sajta, to implicira visok nivo
interakcije.
Umesto Vebmastera, veliki Veb sajtovi moraju da uposle Veb menadere, koji vode raznovrsne
timove IT profesionalaca, ukljuujui programere, administratore baza podataka, mrene
administratore, inenjere upotrebljivosti, grafike dizajnere, strunjake za bezbednost i
marketing. Ova evolucija moe se pratiti tragom nekoliko dimenzija i iz vie perspektiva:
rastom broja Veb sajtova i Veb stranica; rastom broja korisnika Veba; brojem poseta;
funkcionalnostima i interaktivnou Veb aplikacija; tehnologijama korienim za razvoj Veb
aplikacija; socijalnom i poslovnom uticaju Veba ili njihovim kombinacijama.
Slika desno daje pregled razliitih kategorija Veb sajtova u zavisnosti od njihove hronologije
razvoja i stepena sloenosti, sa primerima za svaku kategoriju. Moramo imati na umu da
postoji relacija izmeu hronologije nastanka i kompleksnosti. Novije kategorije su obino
sloenije, ali to ne znai da u potpunosti mogu zameniti prethodnu generaciju. Svaka od ovih
kategorija ima sopstvena, specifina, polja primene. Posledino, kompleksni Veb sajtovi mogu
obino biti svrstani u nekoliko kategorija odjednom.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
5
Poglavlje 1 Kratak pregled (r)evolucije WWW
Sa uvoenjem CGI (eng. Common Gateway Interface) i HTML formi, pojavile su se interaktivne
Veb aplikacije. One su, gledano iz dananje perspektive, pruale prilino ogranien nivo
interakcije, ali tada bio je to korak od hiljadu kilometara, jer su oznaile jednu potpuno novu
ideju i fazu razvoja Veba. Veb stranice i veze (linkovi) ka drugim stranicama su se kreirale
dinamiki, u skladu sa korisnikim akcijama. Primeri za ovu kategoriju su virtuelne izlobe,
sajtovi za vesti i sl.
Ako uzmemo za primer sistem za turistike informacije, ovo bi omoguilo menjanje podataka
na decentralizovan nain ili rezervisanje smetaja. Preduslov ovome bili su sistemi za
upravljanje bazama podataka koji su omoguavali efikasno i konzistentno upravljanje sve
obimnijim sadrajem Veb aplikacija i postavljanje strukturisanih upita. Onlajn bankarstvo,
trgovina i sistemi za rezervacije pripadaju ovoj kategoriji.
Aplikacije bazirane na tok rada omoguavaju upravljanje tokom rada unutar jedne ili izmeu
vie kompanija, javnih slubi i/ili privantih lica. Kompleksnost usluga, autonomija uesnika u
procesu i potreba za robustnim i fleksibilnim tokovima rada su glavni izazovi na ovom polju.
Primeri za ovu kategoriju mogu biti B2B (eng. Business-to-Business) reenja u e-trgovini,
aplikacije e-uprave u domenu javne administracije (Vlada) i sl.
Dok aplikacije bazirane na tok rada zahtevaju odreeno strukturiranje automatizovanih
procesa i operacija, saradnike Veb aplikacije se koriste upravo u situacijama kada je
potrebno omoguiti saradnju pri nestrukturiranim operacijama. Ovde je potreba za saradnjom
razliitih
uesnika vrlo visoka. Saradnike Veb aplikacije podravaju deljenje informacija i radnog
prostora (npr. WikiWiki) u cilju generisanja, menjanja i kontrolisanja deljenih sadraja.
VEB INENJERING
Veb sajtovi koji nemaju softverskih komponenti, kao npr. statine HTML
stranice, takoe nisu Veb aplikacije.
6
Poglavlje 1 Kratak pregled (r)evolucije WWW
Sve vanijesveprisutne Veb aplikacije pruaju korisniku prilagoene usluge u bilo koje
vreme, bilo gde, za bilo koji ureaj (sveprisutne).
Aktuelni trendovi, meutim, e dovesti do situacije da e ovaj tip aplikacija uskoro postati
dominantan na tritu. Jedan od ovih trendova je i Semantiki Veb . Cilj Semantikog Veba
je predstavljanje informacija na Vebu ne samo za ljudska bia, ve i u obliku koje bi mogle
da itaju maine. Kao i veina problema u raunarstvu, ovo se reava dodavanjem jo jednog
sloja posrednika (semantike) izmeu podataka koje razumeju ljudi i kompjutera. Svi koji
su se bavili razvojem VA bili poetnici, bez obzira koliko dugo su pre toga projektovali ili
kodirali softver.
Jako mnogo dobre inenjerske prakse je bilo prosto odbaeno i zanemareno u tim prvim
danima razvoja VA. Na (ne)sreu, strunjaci su (ne)blagovremeno uoili ovu tendenciju i
1996. godine se u IT svetu pojavila nova kovanica: Veb inenjering.
Mada Veb inenjering koristi principe softverskog inenjeringa, on dodatno obuhvata i nove
pristupe, metodologije, alate i tehnike, kao i smernice da bi izaao u susret jedinstvenim
zahtevima sistema zasnovanih na Vebu. U mnogim aspektima, razvoj sistema zasnovanih na
Vebu je mnogo vie od razvoja tradicionalnog softvera.
7
Poglavlje 1 Kratak pregled (r)evolucije WWW
Odgovarajui prikaz (prezentacija); Napredovanje kroz aktivnosti - zavriti jednu stvar pre
poetka drugog; esto vodi korisnika; Nadogradnja i poveanje kompleksnosti; Mnogo
projektanata u timu, mnogo transakcija, sloena komunikacija i upravljanje projektom
razvoja; Veliki broj proizvoda iteracija / verzija /; Prilagoavanja korisnicima, personalizacija,
bezbedonosna pitanja i mnogo toga jo kao to je to na sledeoj slici prikazano.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
VEB SISTEMI
Iako sistematske tehnike dizajna i izrade mogu biti primenjene, ipak je
neophodno proveravati meuproizvode, kao i finalnu aplikaciju.
UDa bi se osigurao uspean razvoj VS potrebno je, ali ne i dovoljno primeniti sledee korake
u dizajnu:
2. Jasno identifikovati zainteresovane strane - to jest, glavne korisnike tog sistema i njihove
tipine profile, organizaciju koja treba sistem, i ko finansira razvoj.
8
Poglavlje 1 Kratak pregled (r)evolucije WWW
9. Meriti performanse sistema, analizirati korienje Veb aplikacije preko veb logova,
razmatrati povratne informacije i sugestije korisnika u cilju poboljanja VS.
10. Doterivati i aurirati veb sistem kroz konstantno testiranje dizajna i implementaciju
(programiranje).
9
Poglavlje 2
Internet mrea
STRUKTURA INTERNETA
Internet poseduje tronivovsku strukturu . Okosnica Interneta ili
backbone predstavlja vrni nivo u hijerarhiji Interneta.
Povezivanjem dve ili vie mrea nastajeinternet (Sl. 1). Mree se povezuju pomou ureaja
za meumreno povezivanje (oznaeni slovom R na Sl. 1). Primeri ovakvih ureaja su ruteri
i gateway-i. Tipino, internet ini vei broj LAN i MAN mrea povezanih u WAN. Napomenimo
da treba praviti razliku izmeu pojmova internet (poinje malo slovom) i Internet (poinje
velikim slovom). Internet, sa malim i, je uopteni pojam koji se odnosi na povezivanje
mrea. Internet, sa velikim I, je ime najvee i najrasprostranjenije svetske mree.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
Struktura Interneta
Internet poseduje tronivovsku strukturu (Sl. 2). Okosnica Interneta ili backbonepredstavlja
vrni nivo u hijerarhiji Interneta. Sastoji se od mrea kao to su NSFnet i EBONE koje prenose
saobraaj i obavljaju rutiranje za mree srednjeg nivoa. To su mree veoma velike propusne
moi koje poput kostura dre na okupu sve razuene delove Interneta.
10
Poglavlje 2 Internet mrea
Tranzitne mree, takoe poznate i kao regionalne, u hijerarhiji Inerneta se nalaze odmah
ispod backbone mrea. Nihov zadatak je da osim za svoje hostove prosleuju saobraaj i
izmeu drugih mrea istog ili nieg nivoa. Tranzijentna mrea je uvek povezana s bar dve
duge mree.
Periferne mree su lokalne (LAN) ili gradske (MAN) mree, koje prenose podatke iskljuivo
ka i od svojih hostova. ak i kada su povezane sa jednom ili vie drugih mrea, kroz periferne
mree nikada ne prolazi saobraaj nemenjen nekoj drugoj mrei.
Rast Interneta je veoma brz, sa stopom od 10-15% meseno, a broj mrea koje se
razgranavaju sa Internet backbone-a udvostruava se svakih 16 meseci. Internet backbone
koji je 90-tih godina ima oblik riblje kosti, danas vie lii na ribarsku mreu razapetu po
celom svetu.
Duina paketa je ograniena, a maksimalno dozvoljena duina obino ne prelazi 1000 bajta.
Due poruke, koje se ne mogu upakovati u jedan paket, u izvornom hostu se dele na niz
paketa, koji se nezavisno alju i prenose kroz mreu. Svaki paket ima deo za korisnike
podatke i deo za kontrolne informacije. Kontrolne informacije, izmeu ostalog, sadre
informacije koje su neophodne ruterima kako bi paket usmerili ka eljenom odreditu. U
11
Poglavlje 2 Internet mrea
svakom ruteru, paket se prima, skladiti i nakon izvesnog vremena prosleuje sledeem
ruteru. Na Sl. 3 je ilustrovan osnovni princip rada komutacije paketa.
KOMUTACIJA PAKETA
Kod mrea sa komutacijom paketa, svaki paket se u svakom ruteru
nezavisno obrauje, a nain na koji e ruter postuputi prema datom
paketu ne zavisi od postupka prema prethodnim.
Raunar sa leve strane slike alje poruku raunaru sa desne strane. Predajni (izvorni) raunar
deli sadraj poruke na niz paketa (Sl. 3(a)). Svaki paket, pored podataka iz originalne poruke,
sadri, u delu za kontrolne informacije, informaciju koja identifikuje odredini host. Izvorni
raunar alje paket po paket ruteru sa kojim je povezan. Ovaj ruter privremeno skladiti
(baferuje) primljene pakete; za svaki paket, na osnovu kontrolnih informacija iz paketa,
odreuje kom susednom ruteru treba proslediti paket i smeta paket u red ekanja pridruen
izlaznoj liniji koja vodi ka izabranom susednom ruteru. Paket ostaje u redu ekanja sve dok
svi prethodni paketi iz reda ekanja ne budu poslati, a zatim se i on alje na liniju. Na ovaj
nain, kreui se od rutera do rutera (Sl. 3(b)), paket konano stie na svoje krajnje odredite
(Sl. 3(e) ).
Kod mrea sa komutacijom paketa, svaki paket se u svakom ruteru nezavisno obrauje, a
nain na koji e ruter postuputi prema datom paketu ne zavisi od toga kako je postupao
prema prethodnim paketima. Ovaj pristup je ilustrovan na Sl. 3. Usmeravanje paketa u
ruterima nije jednoznano. Kada ruter donosi odluku na koju stranu usmeriti paket, on uzima
u obzir ne samo informaciju o adresi odredinog hosta, ve i informacije prikupljene od
susednih rutera koje se tiu njihovog trenutnog
optereenja, otkaza pojedinih prenosnih linija i sl. To znai da paketi sa istom odredinom
adresom ne moraju biti uvek isporueni istom susednom ruteru (Sl. 3(c) ).
Posledica ove neodreenosti je pojava da paketi koji se prenose izmeu para hostova mogu
stii do odredita razliitim putanjama i izvan redosleda u kojem su poslati. U primeru sa Sl.3,
krajni ruter na putanji ureuje pristigle pakete u prvobitni redosled i isporuuje ih odreditu.
(Napomenimo da je kod nekih mrea, preureenje paketa zadatak odredinih stanica, a ne
krajnjih vorova.) Takoe, moe se desiti da neki paketi budu uniteni u toku prenosa. (Na
primer, ako neki ruter otkae, svi paketi koji trenutno borave u ruteru, bie izgubljeni.)
12
Poglavlje 2 Internet mrea
Osnovne karakteristike paketskog prenosa, koje ga ine pogodnim za primenu kod Interneta
su:
Paketi koji iz razliitih pravac stiu u vor, a koje treba dalje preneti preko iste izlazne linije,
smeataju se u red ekanja pridruen toj liniji. Ruter uzima pakete sa poetka reda ekanja i
maksimalnom brzinom ih alje na liniju.
striktnog redosleda paketa u redu ekanja, moe dati prednost paketima sa visokim
prioritetom. Paket visokog prioriteta bie izabran za slanje bez obzira na njegovu poziciju u
redu ekanja.
Na taj nain, paketi vieg prioriteta prenosie se bre kroz mreu nego paketi niskog
prioriteta.
13
Poglavlje 2 Internet mrea
Ukupno vreme prenosa paketa jednako je zbiru kanjenja paketa kroz rutere na putanji
koju paket prolazi. S obzirom na to to se paketi mogu razlikovati po duini, mogu
biti preneseni razliitim putanjama i mogu biti izloeni promenljivim kanjenjenima u
ruterima, sveukupno vreme prenosa paketa od datog para izvorodredite, moe znaajno
da varira od paketa do paketa.
MRENE ARHITEKTURE
Razmena podataka izmeu umreenih ureaja zahteva sprovoenje
veoma sloenih procedura, kao to su one za uspostavljanje i
odravanje komunikacione veze i sl.
Ova pojava se naziva treperenje ili diter (jitter) i moe biti nepoeljna kod izvesnih
aplikacija, kao to su aplikacije koje zahtevaju prenos podataka u relanom vremenu
(telefonija, video, audio, ..).
Da bi se omoguilo usmeravanje paketa kroz mreu, svaki paket osim podataka mora
sadrati i dodatne kontrolne (reijske) informacije (npr. adresa odredita, redni broj
paketa u poruci i sl.). Za prenos kontrolnih informacija troi se deo komunikacionog
kapaciteta prenosnih linja, ime se smanjuje raspoloiv kapacitet za prenos korisnikih
podataka.
Mrene arhitekture
Veina ovih procedura se realizuju u softveru (tzv. mreni softver). Zadatak mrenog softvera
je da od krajnjeg korisnika sakrije sve detalje nieg nivoa koji su neophodni za ostvarivanje
komunikacije, pruajui mu privid direktne razmene podataka s korisnikom koji je na drugom
kraju veze.
(Korisnik moe biti ovek, raunar ili aplikacioni program). Meutim, umesto da se jedan
takav softver realizuje kao monolitni modul, koji bi se bavio svim aspektima i detaljima
mrene komunikacije, on se obino deli na nezavisne, ali meusobno povezane podmodule,
od kojih je svaki odgovoran za jedan specifian zadatak ili skup zadataka.
Neki zadaci su nieg nivoa apstrakcije, kao npr., transformacija bitova u signal koji se prenosi
linkom, dok su drugi vieg nivoa, kao npr., usmeravanje (rutiranje) poruka u mrei sloene
topologije. Iz tog razloga, podmoduli se rasporeuju u slojeve. Svaki sloj u ovakvoj vertikalnoj
strukturi reava niz problema karakteristinih za jedan nivo apstrakcije.
Kao to je zadatak celokupnog mrenog softvera da sakrije sve detalje mrene komunikacije
od krajnjeg korisnika, tako je zadatak svakog sloja da od sloja iznad sakrije sve detalje nieg
nova, koji su reeni u tom sloju i svim slojevima ispod.
14
Poglavlje 2 Internet mrea
Tako npr., sloj koje se bavi rutiranjem poruka nije optereen problemima koji se tiu prenosa
podataka preko jednog fizikog linka, zato to je to odgovornost niih slojeva.
Koncept slojevite organizacije mrenog softvera ilustrovan je na Sl. 4. Broj slojeva, njihovi
nazivi, sadraj i funkcije, razlikuju se od mree do mree. Uopteno govorei, svrha svakog
sloja je da prui odreeni skup usluga (servisa) viim slojevima, skrivajui od njih detalje koji
se odnose na to kako su ti servisi konkretno realizovani. Na primer, sloj 3 koristi usluge sloja
2, a prua usluge sloju 4.
Treba istai da slojevita organizacija softvera nije karakteristina samo za mreni softver, ve
prestavlja jedan od bazinih principa u raunarstvu i ima sutinske slinosti sa konceptima
kao to su:skrivanje informacija, apstraktni tipovi podataka, enkapsulacija podataka,
objektno-orijentisano programiranje. Sutinska ideja u svim ovim sluajevima je da se na
konkretni softver (ili hardver) gleda kao na komponentu koja prua izvesne usluge svojim
korisnicima od kojih su sakriveni detalji njene unutranje strukture, pa i sam algoritam rada.
15
Poglavlje 2 Internet mrea
zovu protokol sloja n. U osnovi, protokol je dogovor izmeu dve strane o nainu na koji se
komunikacija odvija.
SLOJEVITOST MREA
Skup protokola i slojeva zove se arhitektura mree. Specifikacija
arhitekture mora da sadri dovoljno informacija.
U realnosti, podaci se ne prenose direktno izmeu peer slojeva. Umesto toga, svaki sloj
prosleuje podatke, zajedno sa odgovarajuim kontrolnim informacijama, sloju ispod, sve do
sloja najnieg nivoa (sloj 1). Ispod sloja 1 nalazi se fiziki medijum, kroz koji se obavlja stvarni
prenos podataka. Na odredinoj strani, podaci prolaze kroz slojeve, ali sada u obrnutom
redosledu, sve do odgovarajueg, ravnopravnog sloja.
Interfejs
Cilj je definisati to je mogue jednostavniji interfejs koji e initi skup dobro-definisanih i lako
razumljivih funkcija. Takav jedan interfejs treba da minimizuje koliinu dodatnih informacija
koje se prenose izmeu slojeva i da omogui zamenu jedne realizacije sloja nekom drugom,
a da to ne zahteva bilo kakve promene u susednim slojevima.
Protokol stek
Skup protokola i slojeva zove se arhitektura mree. Specifikacija arhitekture mora da sadri
dovoljno informacija na osnovu kojih e programeri ili projektanti hardvera biti u stanju da
realizuju softver, odnosno hardver, za dati protokol. Specifikacija ne sadri detalje realizacije
slojeva i interfejsa izmeu slojeva, s obzirom da oni, budui da su sakriveni u mrenom
softveru, nisu vidljivi izvan maine. ak nije neophodna da interfejsi izmeu slojeva na svim
mainama u mrei budu identini, pod uslovom da svaka maina korektno koristi svaki sloj.
Skup protokola koje se koristi u nekom sistemu, jedan protokol po sloju, naziva se protokol
stek (protocol stack).
Slojevitost mrea
16
Poglavlje 2 Internet mrea
OSI model prikazan je na Sl. 5 . OSI je standard uveden 1983. godine od strane meunarodne
organizacije za standardizaciju (ISO - International Standard Organization). Njegovo ime,
OSI (Open System Interconnect) referentni model, ukazuje da se radi o modelu povezivanja
otvorenih sistema, odnosno sistema koji su otvoreni za komunikaciju sa drugim sistemima.
U sutini, OSI predstavlja model za razumevanje i razvoj fleksibilnih, robusnih i otvorenih
mrenih arhitektura.Open Systems Interconnection OSI- model sa 7 slojeva, standardizovan
od strane ISO.
TCP/IP - model sa 4 sloja, prisutan u okviru Interneta. OSI model je razvijen pod okriljem
medunarodne organizacije za standardizaciju (ISO) i, iako se konkretni protokoli koje definie
vie ne koriste, predstavlja znaajan apstraktni opis mrea. Sa druge strane, TCP/IP model je
takav da se njegova apstraktna svojstva ne koriste znaajno, dok se konkretni protokoli
intenzivno koriste i predstavljaju osnovu Interneta. Slojevi u okviru referentnih modela i njihov
meusobni odnos, grafiki su prikazani na slici 6 (Slajdovi TCP-IP).
17
Poglavlje 2 Internet mrea
Fiziki sloj se sastoji od osnovnih hardverskih mrenih tehnologija. Fiziki sloj ne definie
prenos logikih paketa podataka, ve naine prenosa sirovih bitova preko fizikog linka
izmeu vorova u mrei. Praktino, on odreuje naponske nivoe u elektrinim mreama,
specifikacije lasera u optikim vlaknima, specifikacije beine mree, itd... Data Link sloj
obezbeuje funkciju prenosa podataka meu vorovima u mrei i treba da obezbedi pouzdan
prenos podataka preko fizike mree. Media Access Control (MAC) pod-sloj se brine o
adresiranju i pristupu medijumu, dok seLogical Link Conrol (LLC) pod-sloj bavi protokolima i
kontrolom protoka (detekciju i ispravljanje greaka koji se mogu javiti na fizikom sloju).
da regulie protok paketa izmeu dva sistema. Kada peketi prelaze granice mrea, mogu
nastati brojni problemi. Fiziko adresiranje koje se koristi u drugoj mrei se moe razlikovati
od onoga koje vai u prvoj. Paket koji stie iz jedne mree moe biti previe veliki da bi se u
drugoj mrei preneo jednim okvirom. Mogu se razlikovati protokoli nieg nivoa. Na sloju mree
je da rei sve ove probleme.
Transportni sloj se brine o komunikacionim servisima izmeu krajnjih taaka. Njegov zadatak
je da obezbedi connection-oriented tok podataka, pouzdanost, kontrolu toka i
multipleksiranje. Transportni sloj je odgovoran za isporuku celokupne poruke od izvora do
odredita (tj. od-kraja-do-kraja). Mreni sloj iako obezbeuje prenos pojedinanih paketa
od izvora do odredita, ne vidi bilo kakvu vezu izmeu njih, ve svaki paket tretira kao
nezavisnu jedinicu; kao da je svaki paket posebna poruka, bez obzira da li je to i zaista sluaj
ili ne. Takoe, sloj mree, iako ine najvie ta moe, ne garantuje da e svaki paket biti
18
Poglavlje 2 Internet mrea
isporuen. to vie, ako paket bude izgubljen, npr. zbog zaguenja rutera, mreni sloj nikoga
nee obavestiti o tome.
SLOJ SESIJE
Sloj sesije obezbeuje mehanizme za rukovanje sesijom izmeu
krajnjih aplikacija. Komunikaciona sesija se sastoji od niza zahteva i
odgovora koji se javljaju izmeu aplikacija.
S druge strane, transportni sloj obezbeuje da celokupna poruka, u izvornom obliku, bude
prenesena do odredita, nameui kontrolu greaka i kontrolu protoka na nivou izvora i
odredita. Na primer, fajl transfer aplikacija ima zadatak da fajl proizvoljne veliine prenese
od fajl servera na host koji je traio fajl. U cilju prenosa kroz mreu, fajl e biti podeljen na
pakete, a svaki paket e se prenositi nezavisno. Neki paketi mogu biti primljeni sa grekom, a
neki izgubljeni u prenosu. Zadatak transportnog sloja je da uvede strogu disciplinu u isporuci
paketa kao bi fajl u prvobitnom obliku bio prenet do svog odredita. Na Sl. 7 je prikazan
odnos izmeu transportnog sloja i slojeva mree i sesije. Osnovna funkcija transportnog sloja
je da prihvati podatke od vieg sloja, podeli ih na manje jedinice, ako je to potrebno, prosledi
ih sloju mree i osigura da svi oni korektno stignu na drugi kraj. Dodatno, sve to mora biti
obavljeno efikasno i na nain koji e izolovati vie slojeve od eventualnih promena na niim
slojevima (uslovljenih recimo promenom hardvera mree).
Sutinska razlika izmeu transportnog i slojeva nieg nivoa je u tome to se nie nivoi bave
komunikacijom izmeu maine i njenih neposrednih suseda u mrei, dok transportni sloj
podrazumeva komunikaciju izmeu krajnjih maina, koje mogu biti razdvojene veim brojem
rutera. Da bi se olakala koordinacija izvora i odredita, na nivou transportnog sloja obino se
kreira konekcijaizmeu dve krajnje take komunikacije. Konekcija se moe razumeti kao
logika veza (ili putanja) za sve pakete koje se prenose u konkretnoj komunikaciji (sadrani u
konkretnoj poruci).
Sesija prua razliite servise, kao to su: upravljanje dijalogom (ko i kada moe da alje
podatke), kontrola pristupa zajednikim resursima (da bi se spreilo da dve strane u isto
vreme pokuaju izvoenje neke kritine operacije) i sinhronizacija (nadgledanje dugotrajnih
19
Poglavlje 2 Internet mrea
Odnos izmeu sloja sesije i susednih slojeva, prezentacionog i transportnog, prikazan je na Sl.
8. Tipine funkcije sloja sesije su:Upravljanje dijalogom, Kontrola pristupa mrenim resursima
i Sinhronizacija.
Na Sl. 9 je prikazan odnos izmeu prezentacionog sloja i susednih slojeva, aplikacionog i sloja
sesije.
Aplikacioni sloj korisnikim aplikacijama prua mrene usluge i daje pristup informacijama
na mrei. Sloj aplikacije je vrni sloj OSI modela koji omoguava korisniku korienje usluga
mree. Svrha est niih slojeva je obezbeivanje pouzdanog prenosa podataka. Meutim,
prenos podataka, sam po sebi, nije krajnji cilj. Tek na aplikacionom nivou, mogunost razmene
podataka sa udaljenim korisnicima se uobliava u svrsishodne servise i aplikacije. Sloj
aplikacije obezbeuje interfejs i podrku za standardne servise kao to su elektronska pota,
pristup i prenos udaljenih fajlova, Web i dr.
20
Poglavlje 2 Internet mrea
Napomenimo da korisnik ne mora biti ovek. Korisnik moe biti neka druga aplikacija koja
se izvrava na istom raunaru. U tom sluaju, interfejs nisu tastatura, mi i ekran ve skup
funkcija (servis) koje su na raspolaganju korisnikom programu. Na Sl. 10 su u saetom obliku
navedene osnovne funkcije slojeva OSI referentnog modela.
21
Poglavlje 3
World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata
sainjenih od povezanih Web stranica napisanih u HTML-u (Sl. 1). Stranice su raspoloive
korisnicima Web-a u vidu datoteka smetenih na milionima raunara distribuiranih po
Internetu. Svaka stranica moe sadrati pokazivae (tzv. linkove ili hiperveze) na druge
stranice koje mogu biti smetene na istom ili na nekom drugom raunaru (ili, u terminologiji
Web-a, Web sajtu). Klikom na link, korisnik prelazi na sledeu stranicu, a ovaj proces se moe
nastaviti u nedogled..
Koncept stranica koja sadri pokazivae na druge srodne stranice naziva se hipertekstom.
Web pregledava (browser) je aplikacioni program koji korisnik (klijent) poziva da bi pristupio
stranici i prikazao je. Najpoznatiji Web pregledavai suInternet Explorer, Mozilla Firefox i
drugi. Web pregledava ima ulogu klijenta koji stupa u vezu sa odgovarajuim Web serverom
da bi dobio primerak navedene stranice. Pregledava pribavlja traenu stranicu, interpretira
tekst zajedno sa sadranim komandama za formatiranje, i prikazuje ga na ekranu monitora
raunara ili mobilnog ureaja. Primer stranice prikazan je na Sl. 2.
22
Poglavlje 3 WEB pregledava klijent strana
Slika 3.2 2 Primer Web stranice; (b) Stranica koja se uitava u pregledava klikom na link Internet and
Web Technologies
Osnovni model rada Web-a prikazan je na Sl. 3. Na Sl. 3 vidimo pregleda koji na klijentskom
raunaru prikazuje Web stranicu. Kada korisnik klikne na liniju teksta koja je povezana
sa stranicom sa servera abcd.com, pregledava sledi link tako to serveruabcd.com alje
poruku kojom od njega trai zahtevanu stranicu. Kada dobije traenu stranicu, pregledava
je prikazuje. Ako ova nova stranica sadri link na stranicu sa servera xyzw.com, klikom
na ovaj link, pregledava e poslati zahtev ovom raunaru, i tako do u nedogled. Da bi
bio u mogunosti da prikae stranicu, pregleda mora da razume njen format. Kako bi se
obezbedilo da svi pregledai razumeju sve Web stranice, Web stranice se piu u standardnom
jeziku koji se zove HTML. Iako su pregledai u osnovi HTML interpretatori, veina pregledaa
poseduje brojne dodatne funkcije koji olakavaju navigaciju na Web-u. Po pravilu,
pregledavai poseduju podrku za bookmark-e, tj. kreiranje liste esto poseivanih stranica.
Slika 3.3 3 Komponente Web modela pregledava klikom na link Internet and Web Technologies
23
Poglavlje 3 WEB pregledava klijent strana
U osnovi, pregledava je program koji moe da prikazuje Web stranice i reaguje kada se
miem klikne neki objekat na stranici. Kada je objekat izabran, pregledava prati hipervezu
pridruen objektu i pribavlja izabranu stranicu. Jasno je da je za implementaciju hiperveze
neophodan nain za imenovanje stranica na Web-u. Za imenovanje stranica koriste se
ema poznata pod nazivom URL (uniformni lokator resursa). Tipian URL je oblika:
http://www.abcd.com/products.html
Pretpostavimo da je korisnik pretraujui Web pronaao link na Elektronski fakultet u Niu:
http://www.elfak.ni.ac.rs/home/index.html
Sledi niz koraka koje obavlja pregledava nakon izbora ovog linka:
1. Pregledava odreuje URL (na stranici, URL obino nije vidljiv ve je sakriven iza
teksta hiperveze)2. Pregledava se obraa DNS serveru traei od njega IP adresu hosta
www.elfak.ni.ac.rs .3. DNS server odgovara sa 160.99.1.14. Pregledava uspostavlja TCP
konekciju sa hostom 160.99.1.1 na portu 80.5. Preko otvorene TCP konekcije, pregledava
alje zahtev traei fajl /home/index.html.6. Server www.elfak.ni.ac.rs odgovara slanjem fajla
/home/index.html.7. TCP konekcija se zatvara.8. Pregledava prikazuje tekst sadran u falju
/home/index.html.9. Pregledava pribavlja i prikazuje sve slike iz ovog fajla.
Pod pojmom Web aplikacije podrazumeva se irok skup programskih reenja koje kao
korisniki interface koriste neki Web browser.
Sve Web aplikacije funkcioniu po principu klijent server. Server predstavlja raunar na
kome je aplikacija smetena i koji u zavisnosti od zahteva korisniku isporuuje traeni
rezultat. Klijent moe biti bilo koji Web browser ili neki specijalno napravljeni klient program
koji kontaktira server da bi korisnik dobio rezultate. Elementarni oblik Web aplikacije jeste
obina Internet prezentacija.
Kompletan softwareski dio Web aplikacije smeten je na serveru, i samim tim je dostupan na
korienje veem broju ljudi istovremeno.
Aplikacija je sigurna od krae, prepravljanja i uopte bilo kakvog uticaja na kod u onolikoj meri
u kojoj je i sam server siguran.
24
Poglavlje 3 WEB pregledava klijent strana
Nije potreban nikakav specijalni software za pristup aplikaciji, nema ogranienja da se mora
koristiti iskljuivo sa jednog raunara, a brzina komunikacije sa aplikacijom zavisi od brzine
kojom se pristupa serveru.
Klient aplikacija je Web browser (MS Internet Explorer, Mozilla,Opera) i obino je ukljuena u
okviru OS instaliranog na korisnikom raunaru.
Osnovne tehnologije za izradu Web aplikacija su HTML jezik za izradu statikih strana i
Server-Side Scriptingjezici za generisanje HTML koda, odnosno, izradu dinamikih strana.
Preuzimanje i prikaz statikih Web strane predstavlja jednu realizaciju klijent server
arhitekture, iji su akteri Internet pretraiva i Web server. Web server predstavlja softver, koji
se instalira na odreenom serveru koji upravlja zahtevima za pristup odreenoj Web stranici,
tako to postupa po zahtevu klijenta, isporuujui sadraj neke Web strane. Web server i
pretraiva komuniciraju razmenom poruka putem HTTP.
Korisnik u web pregledava unosi adresu (URL) ili popunjava obrazac. Raunar korisnika alje
HTTP ili HTTPS zahtev preko Interneta Web serveru na kome se nalaze HTTP server, skripting
jezik ili Web aplikacija.
Web aplikacija analizira upueni zahtev i po potrebi:
povlai i/ili obrauje podatke dokumenata baze podataka komunicira sa drugim web
serverima ili web servisima priprema redirekciju na drugi web server (primer: CDN).
Rezultat rada Web aplikacije moe biti Web stranica, CSS, XML, slika, video ili flash, koje Web
server alje preko Interneta do raunara klijenta.
Web stranice mogu biti:
Statike - jednom formirane, vie se ne menjaju. Obine HTML stranice, za iji prikaz je
dovoljan samo web pregledava.
Dinamike-sadraj se menja u zavisnosti od interakcije sa klijentom Za generisanje su
potrebni Web server i skripting jezik (npr. PHP).
25
Poglavlje 3 WEB pregledava klijent strana
Postoje, meutim, bitne razlike izmeu ove dve arhitekture. Kod mejn-frejm arhitekture
terminali nemaju nikakvu mogunost obrade podataka, dok kod klijent-server arhitekture
klijenti od servera dobijaju podatke koje, zatim, koriste u lokalnom procesu obrade.
Osnovna klijent-server arhitektura podrazumeva postojanje dva sloja - sloja klijenta i sloja
servera (slika 4). Kod dvoslojne klijent-server arhitekture softversko reenje se razlae na
jednu iskljuivo klijentsku, i jednu iskljuivo serversku komponentu. Primer osnovne,
dvoslojne klijent-server arhitekture jeste mrea u kojoj korisnici putem aplikacija na svojim
raunarima pristupaju centralnoj bazi podataka. U praksi su este i klijent-server arhitekture
sa tri sloja jer se njima lake reavaju pitanja zatite podataka i kontrole pristupa. Dvoslojna
klijent/server aplikacijase tipino sastoji od klijentskog softvera koji implementira korisniki
interfejs i komunikaciju sa bazom podataka, kao to je SQL Server, radi postizanja aurnosti
podataka.
Dakle grafiki korisniki intrerfejs se obavezno nalazi na klijentskoj maini, DBMS obavezno
na serveru, dok se poslovni deo sistema (sama obrada) moe nalaziti ili na klijentu ili na
serveru.
Na primer, Veb aplikacije najee koriste troslojnu klijent-server arhitekturu na takav nain
da osnovni klijentski deo ini Veb brauzer, srednji sloj ini aplikativni Veb server, a server baze
podataka ini trei, serverski sloj (slika 5).
U takvoj organizaciji srednji sloj je realizovan kao serverska komponenta, gledano sa aspekta
Veb brauzera, odnosno kao klijentska komponenta, gledano sa aspekta servera baze
26
Poglavlje 3 WEB pregledava klijent strana
podataka. Na primeru troslojne arhitekture jasno se moe stei uvid da se pojmovi klijent"
i server" ne odnose na hardverske karakteristike raunara, ve na tipove procesa, ili ak
njihove procedure, koji se na tim raunarima izvravaju. Ukoliko neki proces, ili jedan njegov
deo, zahteva uslugu od drugog procesa (bilo na lokalnom ili na udaljenom raunaru) njegovo
ponaanje spada u klijentski deo klijent-server arhitekture. I obrnuto, ukoliko neki proces
eka na zahteve drugih procesa, njegovo ponaanje spada u serverski deo klijent-server
arhitekture. Opte pravilo za odreivanje uloge kod klijent-server arhitekture definie da je
klijentska strana ona koja od druge strane zahteva uslugu, a da je serverska strana ona koja
eka na zahtev od druge strane i isporuuje odgovor na njega.
27
Poglavlje 4
Web server
Mana iterativne obrade zahteva je u tome to takav pristup moe znatno uticati na
performanse u smislu broja obraenih zahteva po jedinici vremena. Ukoliko obrada jednog
zahteva u toku svog izvrenja zauzme sve resurse servera, performanse se mogu smatrati
optimalnim. Meutim, ukoliko obrada zahteva oduzme dodatno vreme usled ekanja na
resurs (koji nije potreban za obradu ostalih zahteva, odbaenih ili koji ekaju u ulaznom
baferu), iterativni pristup pokazuje loije performanse od konkurentnog. Glavna prednost
iterativnog pristupa jeste eliminisanje problema konkurentnog pristupa internim resursima
servera.
Konkurentna obrada zahteva je pristup koji nudi bolje performanse od iterativnog pristupa
u situacijama u kojima server obrauje veliki broj zahteva od strane vie klijenata. Poboljanje
28
Poglavlje 4 Web server
Veb je danas najpopularniji servis Internet mree. Naziv je dobio po prvom Veb brauzeru koji
je posedovao grafiki korisniki interfejs.
Time je Veb sve vie postajao platforma za razvoj mrenih aplikacija tako da danas preti
da u potpunosti zameni tradicionalne desktop aplikacije. Aplikacija se implementira u nekoj
kombinaciji HTML(korisniki interfejs) i serverovog skript koda (povezuje se sa bazom
podataka). Komponente na server strani slue istoj svrsi kao i kod runo pisanog programa i
obino im se pristupa preko skript koda. Komponente za pristup serveru i bazi podataka su
osnovna graa Web-zasnovane aplikacije.
Na serverskoj strani najosnovniji element su servisi za rad nad podacima, ali pored njih
postoje i neki dodatni servisi kao to su HTTP Server(statike stranice) ili Internet Information
Server(dinamike kao na slici 3)
29
Poglavlje 4 Web server
30
Poglavlje 4 Web server
TOK KOMUNIKACIJE
Ove instrukcije, kao to su PHP, JSP (Java), ASP (Visual Basic), itd.,
nazivamo skriptovima na strane servera (Server - Side Scripts), zato
to se izvravaju na Web serverima.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
Ove instrukcije nazivamo skriptovima na strane servera (Server - Side Scripts), zato to se
izvravaju na Web serverima (Slika 5).
31
Poglavlje 4 Web server
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
->Statiki HTML sajt moe da se uporedi sa knjigom iji se sadraj i indeks ne nalazi na
jednom mestu, nego su delovi rasporeeni po tekstu.
-> Svaka strana sadri veze (link) prema ostalim relevantnim stranama, ali sveukupno
kretanje kroz sajt je uglavnom odreeno od strane korisnika.
-> Veze vie deluju kao meni, nego kao indeks,a mogua odredita bilo sa koje strane
ograniena su operacijama koje mogu da se izvre sa te strane.
Serverski skript kod - jedan od osnovnih zadataka skript koda koji se sadri u HTML strani
(ili formi) je da sakupi podatke od korisnika i prosledi ih aplikaciji na serveru.
-> Jedan od prvih i najpopularnijih intrefejsa za podrku skript kodu je Common Gateway
Interface (CGI) protokol.
obrada greaka koja se ekskluzivno obavlja na server strani moe da degradira vreme
odziva kod sporih veza
32
Poglavlje 4 Web server
TCP KONEKCIJE
Kada korisnik ukuca URL ili klikne na hipervezu, pretraiva analizira
URL i deo izmeu http:// i sledee kose crte tumai kao DNS ime iju IP
adresu trai od DNS servera.
Web server moemo zamisliti kao program koji neprekidno, u petlji, obavlja sledei niz
aktivnosti:
Savremeni Web serveri poseduju brojne dodatne mogunosti, ali u osnovi, rad Web servera
se svodi na prethodnu proceduru. Uoimo da svaki zahtev upuen od strane klijenta,
podrazumeva pristup hard disku radi uzimanja traenog fajla. Proseno vreme pristupa hard
diskova velike brzine rada iznosi oko 5 ms, to postavlja ogranienje na najvie 200 zahteva/
s (i manje ako se esto itaju veliki fajlovi). Za Web sajtove sa velikom brojem istovremenih
posetioca 200 zahteva/s je isuvie malo.
Jedno poboljanje koje se koristi kod svih Web servera podrazumeva da se u operativnoj
memoriji raunara kreira ke sa n najskorije korienim fajlovima. Pre nego to fajl potrai
na disku, server proverava ke. Ako je fajl u keu, tada nije potrebno pristupati hard disku
jer se fajl moe uzet direktno iz memorije. Iako je za efikasno keiranje potrebno rezervisati
relativno veliku koliinu operativne memorije kao i dodatno CPU vreme radi provere da li
se fajl nalazi u keu, uteda u vremenu obrade jednog zahteva je obino dovoljno velika da
kompenzuje dodatni troak.
Sledei nain za ubrzanje rada Web servera predvia uvoenje multithreading (vienitni rad).
Engleska re thread se prevodi kao nit, a pojam multithreading kao vienitni rad ili rad sa
vie niti u isto vreme. Procesi i niti su dva osnovna mehanizma za paralelno (konkurentno)
izvravanje programa. Programi koji imaju potrebu da istovremeno obavljaju vie poslova u
isto vreme mogu za svaki takav zadatak da kreiraju jedan proces koji e se izvravti uporedo
sa drugim procesima. Svaki proces poseduje svoju memoriju za uvanje svojih podataka. Nit
je u osnovi slian procesu, s tom razlikom da ne poseduje svoju spostvenu memoriju ve je
deli sa svim ostalim nitima kreiranim u istom programu.
33
Poglavlje 4 Web server
Kod vienitnog rada server se sastoji iz jednog front-end (isturenog) pristupnog modula koji
prihvata sve dolazne zahteve i k pozadinskih modula koji obrauju zahteve (Sl. 8). Svih k+1
thread-ova pripada istom procesu i imaju pristup keu. Kada zahtev stigne, pristupni modul
ga prihvata i kreira jedan kratak zapis sa podacima o zahtevu kojeg predaje jednom od
trenutno raspoloivih pozadinskih procesa.
Pozadinski modul najpre proverava da je fajl koji trai prisutan u keu i ako jeste, u zapis
upisuje pokaziva na fajl.
Ako fajl nije u keu, pozadinski modul zapoinje operaciju prenosa fajla sa diska u ke (uz
eventualno izbacivanje nekih keiranih fajlova, ako u keu nema dovoljno prostora).
Nakon to je fajl prebaen u ke, zapis sa upisanim pokazivaem se vraa pristupnom moduli
koji preuzima fajl iz kea i prosleuje ga klijentu koji je uputio zahtev. Prednost opisanog
mehanizma je u tome to za vreme dok su jedan ili vie pozadinskih modula blokirani ekajui
na zavretak operacije itanja fajla sa diska (i zbog toga ne troe CPU vreme), ostali moduli
mogu biti aktivno upoljeni na obradi novih zahteva. Da bi se ostvarilo bilo kakvo poboljanje
performansi u odnosu na single-thread (jednonitni) model, neophodno je da sistem poseduje
vie od jednog hard diska.
34
Poglavlje 4 Web server
U zavisnosti od tipa pristiglog zahteva, pozadinski modul obavlja neki podskup sledeeg niza
aktivnosti:
5. Provera kea.
7. Odreivanje MIME tipa koji e biti sadran u odgovoru koji se vraa klijentu.
Korak 1 je neophodan zato to primljeni zahtev ne mora sadrati stvarno ime fajla. Na
primer, razmotrimo URL http://www.elfak.ni.ac.rs, kod kojeg ne postoji ime fajla. U takvim
sluajevima, zahtev se odnosi na podrazumevani fajl (ije je ime obino default.html ili
index.html).
Takoe, pretraiva moe u zahtevu da navede podrazumevani jezik korisnika (npr. Srpski ili
Engleski), a da server izabere verziju stranice na tom jeziku.
Korak 2 podrazumeva proveru identiteta klijenta. Ovaj korak je neophodan za stranice koje
nisu dostupne svim korisnicima.
U koraku 8, formira se odgovor koji se vraa klijentu, i na kraju u koraku 9, formira se zapis
o obraenom zahtevu i upisuje u jednu posebnu datoteku za voenje evidencije o pristupima
Web severu (tzv. log fajl). Zapis sadri informaciju o identitetu klijenta, domenu iz kojeg je
zahtev poslat, vreme prijema zahteva, ime zahtevane stranice itd.
35
Poglavlje 4 Web server
U sluajevima kada je broj zahteva koji se upuuje Web serveru u jednoj sekundi veoma
veliki, koristi se model farme servera. Kod ovog modela, umesto jednog koristi se vie vorova
(raunara), od kojih svaki eventualno poseduje vie diskova (Sl. 9). Pretpostavka je da svi
raunari ukljueni u farmu servera poseduju sve Web stranice. Pristupni modul i dalje prihvata
zahteve, ali ih sad distribuira razliitim raunarima, a ne nitima u okviru jednog raunara. Na
ovaj nain, smanjuje se optereenje pojedinanih raunara.
Jedan problem koji se javlja kod farme servera posledica je nepostojanja zajednikog kea, jer
svaki vor poseduje svoju sopstvenu memoriju. Naime, moe se desiti da je traeni fajl
prisutan u keu nekog vora, a da je zahtev prosleen voru kod kojeg se fajl mora proitati sa
diska. U takvoj situaciji, vreme obrade zahteva je due nego to je to neophodno.
Takoe, nakon obraenog zahteva isti fajl e se nai u dva kea. Jedan nain za ublaavanje
gubitka u performansama zbog nepostojanja zajednikog kea sastoji se u tome da pristupni
modul vodi evidenciju o tome kome je poslao svaki zahtev, a da naredne zahteve koji odnose
na istu stranicu alje istom voru.
36
Poglavlje 5
URL
Odgovor na ova tri pitanja sadran je u URL-u (Uniform Resource Locator- uniformni lokator
resursa) stranice. Naime, svakoj stranici na Web-u dodeljen je URL koji se koristi kao njeno
svetski jedinstveno ime. URL se sastoji iz tri dela: (a) protokol (ili ema);
(c) lokalno ime koje na jedinstveni nain ukazuje na konkretnu stranicu (najee ime fajla na
hard disku u kome je stranica zapamena).
Na primer, URL Web stranica kursa Internet i Web tehnologije na Elektronskom fakultetu
u Niu je http://es.elfak.ni.ac.rs/iw/iw.htm i sastoji se iz tri dela razdvojenih kosim
crtama:protokol (http), DNS ime hosta (es.elfak.ni.ac.rs) i ime fajla (iw/iw.htm). Deo za ime
fajla se sastoji od: relativna putanja u odnosu na podrazumevani Web direktorijum na serveru
es.elfak.ni.ac.rs (iw/) i imena samog fajla (iw.htm).
Deo za ime fajla moe biti izostavljen iz URL-a (npr. samo http://es.elfak.ni.ac.rs). U tom
sluaju, Web server zahtev se preusmerava na glavnu (podrazumevanu) stranicu Web sajta.
Takoe, deo za ime fajla moe da sadri putanju do direktorijuma, ali ne i samo ime fajla
(npr. http://es.elfak.ni.ac.rs/iw/). U takvim sluajevima, Web server preusmerava zahtev na
podrazumevani fajl u tom direktorijumu (npr. http://es.elfak.ni.ac.rs/iw/index.htm). Kod
mnogih Web sajtova uvedene su skraenice za imena fajlova, koje poinju znakom ~. Na
primer, ime oblika ~ana/ zamenjuje kompletnu putanju do direktorijuma korisnika ana na
lokalnom raunaru.
37
Poglavlje 5 URL
TCP PROTOKOL
Kada korisnik ukuca URL ili klikne na hipervezu, pregledava analizira
URL i deo izmeu http:// i sledee kose crte tumai kao DNS ime iju IP
adresu trai od DNS servera.
Pregledava otvara TCP konekciju sa Web serverom, koja se potom koristi za prenos zahteva
od pretraivaa ka serveru, a onda i za prenos odgovora (koji sadri traenu stranicu) od
servera do pretraivaa.
Meutim, TCP protoko se koristi samo za transport zahteva i odgovora, dok su pravila
konverzacije i formati poruka koje se razmenjuju izmeu pretraivaa i Web servera
regulisana posebnim aplikacionim protokolom. ta vie, ne postoji samo jedan, ve se za
ovu namenu mogu koristiti razliiti aplikacioni protokoli koji su specijalizovani za prenos
specifinih tipova resursa. Ime protokola koji se koristi za pristup stranici navedeno u
poetnom delu URL-a.
Delimian spisak protokola koji se mogu koristiti kao deo URL-a, naveden je u tabeli sa Sl. 1.
Protokol HTTP je osnovni protokola Web-a i koristi se za komunikaciju Web klijenta i Web
servera. Vie detalja o ovom protokolu bie dato u sledeoj sekciji. Protokol FTP, koji se koristi
za pristup fajlovima, bio je u irokoj upotrebi i pre nastanka Web-a. I danas na Internetu postoj
veliki broj FTP servera sa kojih zainteresovani korisnici mogu preuzimati najrazliitije fajlove.
ta vie Web je olakao korienje FTP-a, s obzirom na to da je pristup FTP serveru preko Web
pregledavaa laki, od pristupa putem osnovnog FTP korisnikog interfejsa. Takoe, FTP, za
razliku od HTTP, omoguava prenos fajlova u oba smera, kako od servera do klijenta, tako i od
klijenta do servera.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
38
Poglavlje 5 URL
FTP PROTOKOL
URL je osmiljen ne samo da omogui korisnicima navigaciju na Web-u,
ve i korienje drugih mrenih servisa (FTP, news, Gopher, e-mai i
telent) na uniforman nain.
Sistem vesti USENET, postojao je mnogo pre nastanka Interneta. Danas ga ini oko 30.000
grupa za razmenu vesti u kojima milioni ljudi diskutuju na najrazliitije teme tako to
postavljaju i itaju lanke koji se odnose na temu konkretne grupe. Protokol news omoguava
da se lanku iz grupe za razmenu vesti pristupa na isti nain kao i Web stranici.
39
Poglavlje 6
HTML JEZIK
Osnova Web-a jeste prenos Web stranica od servera do klijenta.
U svom najjednostavnijem obliku, Web stranicesu statike, tj. datoteke smetene na nekom
serveru koje ekaju da budu zatraene i koje se, bez bilo kakvih izmena, dostavljaju klijentu.
Posmatrano na ovaj nain, i za sadraje kakvi su video i audio se moe rei da predstavljaju
statike Web stranice jer se preuzimaju kao datoteke.
Web stranice se piu u jeziku koji se zove HTML (HyperText Markap Language hipertekstualni
markerski jezik). Pomou HTML-a projektant (dizajner) Web stranica moe da kreira Web
stranice koje sadre tekst, grafiku i hiperveze ka drugim Web stranicama. Pojam markap
language(markerski jezik) znai da HTML slui za opis naina na koji su dokumenti
formatirani, odnosno kako e biti prikazani u Web pretraivau. HTML definie skup komandi
za formatiranje koje, ugraene u prvobitni tekst dokumenta, daju uputstva za prikazivanje
sadraja dokumenta.
Komande se nazivaju oznakama ili tagovima (od eng. tag) i uokvirene su znakovima manje od
i vee od. Neki tagovi se javljaju u parovima, a odnose se na sve stavke koje se nalaze izmeu
uparenih oznaka. Na primer, u HTML-u,<b> znai poetak, a </b> kraj teksta napisanog
masnim slovima.
Svaka Web stranica se sastoji iz dva dela: zaglavlje i telo. Oba ova dela uokvirena su
tagovima<html> i </html>. Zaglavlje poinje tagom <head>, a zavrava se tagom</head>,
dok telo poinje tagom <body> i zavrava se tagom </body>. Tekst unutar taga se naziva
direktivom. Veina HTML tagova ima identian format; koriste <neto> da oznae poetak
neega i </neto> da oznae njegov kraj. Veina pretraivaa poseduje opciju, obino
nazvanu View Source. Izborom ove opcije, prikazuje se izvorna verzija tekue HTML
stranice, umesto njenog formatiranog izgleda.
Tagovi se mogu pisati bilo malim bilo velikim slovima. Tako, <head> i <HEAD> znae isto.
Formatiranje samog HTML dokumenta je irelevantno. HTML parser (deo pretraivaa koji
interpretira HTML) ignorie dodatne blanko znake (razmake) i prelaske u novi red. To znai
da se razmaci mogu slobodno koristiti kako bi se HTML dokument uinio itljivijim. Meutim,
prazne linije, s obzirom na to da se ignoriu, ne mogu se koristiti za razdvajanje paragrafa,
ve se za tu namenu moraju koristiti posebni tagovi.
ULOGA TAGOVA
Za svaki tag, postoji definisani skup dozvoljenih parametara
40
Poglavlje 6 Statiki Web dokumenti
je tag, <img>, sa parametrima srci alt. Vrednost parametra srcje postavljena na abc, a
parametra altna slik a. S obzirom na to da su parametri imenovani, redosled navoenja
parametara u tagu nije od znaaja.
Za pisanje specijalnih karaktera (koji ne pripadaju ASCII skupu karaktera), u HTML se koristi
posebna sintaksa. Specijalni znak poinje znakom &, zavrava se znakom ;. Na primer,
oznaava blanko znak, è oznaava è, a è Irish. Za
predstavljanje znakova <, > i &, koji imaju posebno znaenje u HTML-u, koristi se:<,
> i &, respektivno.
Glavna stavka u zaglavlju HTML dokumenta je naslov, omeen tagovima <title> i </title>.
Naslov se ne prikazuju na stranici, mada se kod nekih pretraivaa prikazuje kao naslov
prozora stranice. U tabeli na Sl. 1 navedeni su tagovi definisani HTML jezikom. Za ispisivanje
naslova koristi se tag <h n>, gde je n ceo iz opsega 1 - 6. Tako, tag <h1> oznaava glavni
naslov, a <h6> naslov namanje vanosti. Oblik u kojem e naslovi biti prikazani, shodno
nihovom nivou, zavisi od pretraivaa.
Tipino, tekst naslova vieg nivoa (sa manjom brojnom vrednou) ispisuju se veim i teim
fontom. Takoe, pretraiva moe da koristi razliite boje za prikaz naslova razliitih nivo.
Obino, naslovi oznaeni tagom <h1> ispisuje se veim i masnim slovima i sa barem jednom
praznom linijom iznad i ispod naslova. Naslovi omeeni tagom <h2> ispisuju se manim
fontom sa manjim razmakom iznad i ispod teksta naslova, itd. Tagovi <b> i <i> se koriste za
oznaavanje teksta koji treba ispisati masnim (bold) i iskoenim (italic) slovima, respektivno.
UPOTREBA TAGOVA
HTML prua vie razliitih naina za kreiranje listi, ukljuujui i
ugnjedene liste.
41
Poglavlje 6 Statiki Web dokumenti
Liste se zapoinju tagom<ul> ili<ol>, a tag <il> se, u oba sluaja, koristi za oznaavanje
poetka stavki u listi. Tag <ul> oznaava poetak nenumerisane liste. Pojedinane stavke
ovakve liste (omeene tagovima<il> i </il>) prikazuju se sa znakom na poetku. Za
numerisane liste (omeene tagom <ol>), umesto simbolom , stavke se prilikom ispisivanja
u pretraivau oznaavaju rednim brojevima.
Tagovi <br>, <p> i <hr> se koriste za ragranienje delova teksta. Tag <br> lomi liniju teksta
(prelazak u novi red). Tag<p> oznaava poetak novog paragrafa, to moe znaiti umetanje
jedne prazne linije ili uvlaenje prve linije novog paragrafa. Konano, tag <hr> prekida tekuu
liniju teksta i u novoj liniji crta horizontalnu liniju celom duinom stranice.
Osim teksta, Web stranice pisane u HTML-u mogu sadrati i slike. Za umetanje slika na tekuu
poziciju ne stranici koristi se tag <img>. Ovaj tag moe imati vie parametara. Parametar
src sadri URL slike. HTML ne propisuje dozvoljene grafike formate slika. U praksi, svi
pretraivai podravaju grafike formate GIF i JPEG.
Stranica moe sadrati i sliku u nekom drugom formatu (npr. BMP), da li e takva slika biti i
prikazana u pretraivau zavisi od sposobnosti pretraivaa da barata konkretnim formatom.
Parametar taga <img>, align, definie poravnanje slike u odnosu na tekst (top, middle,
bottom). Parametar alt omoguava da se umesto slike moe prikazati tekst, ukoliko korisnik
zabrani pretraivau da prikazuje slike. Konano, parametar ismap, ukazuje da se radi o
aktivnoj slici, tj. slici mapi. Za oznaavanje hiperveza koristi se tagovi <a> i </a>. Slino
tagu <img>, tag <a> moe sadrati vie parametara, kao to su href (za URL) i name (za ime
hiperveze). Tekst uokviren tagovima <a> i </a> se prikazuje, a klikom na tekst pretraiva
prelazi na novu stranicu iji je URL naveden u parametru href. Takoe, dozvoljeno je umesto
teksta navesti sliku (tag <img>). U tom sluaju, hiperveza se aktivira klikom na sliku.
JO O UPOTREBI TAGOVA
Za svaki tag, postoji definisani skup dozvoljenih parametara, npr. za
hiperveze, tabele i dr.
Parametar name tag <a> se koristi za hiperveze koje ukazuju na pojedine sekcije same
stranice. Na primer, na poetku mnogih Web stranica nalazi se sadraj stranice (slino
sadraju knjige). Klikom na stavku iz sadraja, korisnik ima mogunost da se brzo pozicionira
na odgovarajuu sekciju stranice.
HTML je jezik koji evoluira. Starije verzije HTML-a, 1.0 i 2.0, nisu predviale tabele. Podrka
za tabele uvedena je u veziji HTML 3.0. HTML tabela se sastoji iz jedne ili vie vrsta od
kojih svaka sadri jednu ili vie elija. elije mogu sadrati tekst, slike, ikone, fotografije, pa
ak i cele tabele. elije se mogu spajati u vee elije koje zauzimaju vie kolona i/ili vrsta.
Iako autor stranice ima mogunost izvesne kontrole nad izgledom tabele (definie poravnanje
sadraja elija, stil okvira tabele, margine teksta u eliji), konani izgled tabele zavisi od
naina na koji pretraiva interpretira HTML opis tabele.
42
Poglavlje 6 Statiki Web dokumenti
Na Sl. 2 (a) je dat primer HTML-a koji ilustruje osnovne karakteristike HTML tabela, a na Sl. 2
(b) odgovarajui prikaz u pretraivau. Kao to se moe videti celokupna tabela je omeena
tagovima <table> i </table>. Tag <caption> sadri tekst naslova tabele. Svaka vrsta poinje
tagom <tr>, dok su pojedinane elije oznaene tagom <th> ili <td>..
elije oznaene tagom <th> (Table Header) odgovaraju nslovnim elijama kolona, dok one
oznane tagom <td> (TableData) predstavljaju unutranje elije tabele, tj. one koje sadre
podatke. Prilikom kreiranja tabela dozvoljeno je koristiti brojne atribute, kako bi se definisalo
horizonalno i vertikalno poravnanje elija, poravnanje unutar elije, nain crtanja okvira,
grupisanje elija itd
PRAVLJENJE FORMI
Forma je uokvirena tagovima
&amp;amp;amp;amp;lt;form&amp;amp;amp;amp;gt; i
&amp;amp;amp;amp;lt;/form&amp;amp;amp;amp;gt;.
Na Sl. 3 (a) je dat primer HTML koda koji ilustruje osnovne mogunosti formi. Odgovarajui
prikaz u pretraivau dat je na Sl. 3 (b).
Forma je uokvirena tagovima <form> i </form>. Obuhvaeni tekst, koji nije deo nekog
taga, se prikazuje kao i tekst sadran u telu stranice. Pri tome, dozvoljeno je korienje svih
uobiajenih tagova (npr.<b>). Forma sa Sl. 3 (a) sadri tri vrste <input> box polja: polja za
unos teksta, kvadrate za tikliranje i nekoliko radio dugmadi. Prvo polje u formi definie polje
za unos teksta veliine (size) 46 karaktera predvieno za upis imena korisnika. Uneti string
se pamti u promenljivoj kupac radi kasnije obrade.
Tag<p> nalae pretraivau da tekst i box polja koja slede prikae u novoj linij. Uz pomo
tag <p> i slinih, autor forme moe da kontrolie raspored polja i teksta na formi. Sledea
linija forme definie polja za unos adrese i mesta stanovanja kupca. Prvo polje je veliine 40,
a drugo 14 karaktera. Naredna linija predviena je za unos podataka o kreditnoj kartici koju
kupac koristi za plaanje. Za broj kartice i datum kada istie vaenje kartice koriste se polja
43
Poglavlje 6 Statiki Web dokumenti
za unos teksta, dok se tip kartice bira pomou novog tipa polja, tzv. radio dugmeta. Radio
dugmad se koriste kada treba obaviti izbor izmeu dve ili vie alternativnih opcija.
U sluajevima kada je Web sajt sloen i sadri veliki broj stranica koje kreiraju razliiti autori
koji rade za istu kompaniju, poeljno je da postoji nain za unifikaciju izgleda (stila) razliitih
stranica. Ovaj problem se moe reiti korienjem kaskadnih style sheet-ova - CSS. Stranice
koje se oslanjaju na pridrueni style sheet ne moraju vie da sadre iskljuivo tzv. fizike
stilove (kao to su npr. <b> za bold ili <i> zaitalic). Umesto toga, autori koriste logike
stilove definisane u style sheet-u; npr. <nr> (za normalan tekst), <em> (za naglaen tekst),
<strong> (za jako naglaen tekst). Nain prevoenja logikih stilova definisan je u style
sheet -u koji se referencira na poetku svake stranice. Na ovaj nain, sve stranice imae
identian stil, a da bi se promenio stil svih stranica dovoljno je promeniti definiciju stila u
style sheet-u. Na primer, ustyle sheet-u moe biti definisano da se logiki stil <strong>
prikazuje u plavoj boji u italic fontu veliine 14-point-a. Ako je potrebo promeniti stil tako da
se tekst oznaen sa <strong> prikazuje u ruiastoj boji, bold fontom veliine 18, dovoljno je
izmeniti samo jednu definiciju u style sheet-u i automatski, promena e biti vidljiva na svim
stranicama, svuda tamo gde se koristi ovaj stil.
44
Poglavlje 6 Statiki Web dokumenti
Forme
Ovi i slini zahtevi doveli su do uvoenja formi, ve u verziji HTML 2.0. Forme sadre box
polja (ili dugmad) koja korisnik moe da popuni traenim podacima ili uini izbor izmeu vie
ponuenih opcija i unetu informaciju vrati vlasniku stranice. Za ovu namenu koristi se tag
<input>. Ovaj tag poseduje vei broj parametara uz pomo kojih se regulie veliina, priroda i
upotreba polja. Nejee se koriste polja za unos teksta, kvadrati za tikliranje, aktivne mape
i dugme Submit.
JO O PRAVLJENJU FORMI
U pretraivau, radio dugme se prikazuju na nain koji omoguava
korisniku da klikom na dugme moe da izabere ili poniti izbor
odgovarajue opcije.
Radio dugmad se koriste i za izbor tipa poveza. Sva radio dugmad sa istim imenom pripadaju
istoj grupi. Tako, sva radio dugmad za izbor tipa kreditne kartce imaju ime ´cc´,
a ona za tip poveza ime ´povez´. Parametar value (vrednost) se koristi za
indikaciju koje radio dugme je izabrano. Na primer, zavisno od toga koji tip kreditne kartice je
izabran, promenljiva cc dobie jednu od dve vrednosti mastercard ili visacard. Posle grupe
radio dugmadi za izbor poveza, sledi opcija za isporuku brzom potom, predstavljena tzv.
kvadratom za tikliranje (checkbox). Kvadrat za tikliranje moe biti ukljuen ili iskljuen. Za
razliku od radio dugmadi gde samo jedno dugme iz grupe moe biti izabrano, svaki kvadrat
za tikliranje se postavljaju nezavisno od ostlih.
Polje za unos teksta, radio dugme i kvadrat za tikliranje su tri tipa taga <input>. Tip se
navodi kao vrednost parametra type, npr. type=radio ili type=checkbox. Polje za unos
teksta je podrazumevani tip i zbog toga nije nepohodo navoditi parametar type. Postoje jo
dva tipa taga <input>, tipovi password i textarea. Tip password, koji se obino koristi za unos
lozinke, identian je polju za unost teksta, osim to se ne ispisuju karakteri koji se kucaju,
ve se svaki uneti karakter predstavlja istim znakom, npr. *. Tip textarea je takoe varijanta
polja za unos teksta, koja, za razliku od osnovnog tipa moe sadrati vie linija teksta.
Kada korisnik klikne na Submit dugme, pretraiva pakuje informacije prikupljene sa forme
u jednu dugaku liniju i alje je serveru na obradu. Znak & se koristi za razdvajanje polja, a
znak + predstavlja razmak. Na primer, za formu sa slike, linija koja se alje serveru moe biti
oblika:
45
Poglavlje 6 Statiki Web dokumenti
kupac=Petar+Petrovic&ulica=Beogradska+14&mesto=Nis&cardno=1234567890&istice=9/
07&cc =mastercard&povez=tvrdi&express=on
46
Poglavlje 7
XML i XSL
HTML, sa ili bez formi, ne bavi se struktuiranjem podataka na Web stranici niti razdvaja
sadraj od formatiranja. Sa pojavom naprednih Web aplikacija, kao to su aplikacije za
elektronsku trgovinu (e-commerce), javila se potreba za struktuiranjem Web stranica i jasnim
razdvajanjem sadraja od naina prikazivanja (formatiranja). Na primer, zamislimo program
koji pretrauje Web u potrazi za najjeftinijom knjigom ili CDom.
Jedan takav program bi morao da analizira veliki broj Web stranica raznih sajtova za
elektronsku trgovinu i da iz svake izdvoji naslove i cene knjiga ili CD-ova. Ako su Web stranice
napisane u HTML-u, program e veoma teko moi da zakljui gde se na stranici nalazi
traena informacija.
Konkretno, uvedena su dva nova jezika. Prvi, XML (eXtesible Markup Language) opisuje Web
sadraj na struktuirani nain, dok drugi, XSL (eXtensible Style Language) opisuje formatiranje
Web stranice nezavisno od njenog sadraja. Budui da se radi o obimnim i sloenim jezicima,
u nastavku e biti izloena samo njihova osnovna ideja. Razmotrimo XML dokument sa Sl.
1. Dokument opisuje strukturu nazvanu book_list, koja predstavlja spisak knjiga. Za svaku
knjigu u strukturi postoje tri polja: naslov (title), autor (author) i godina izdavanja (year).
Napomenimo da XML omoguava kreiranje mnogo sloenijih struktura od one prikazane na
Sl. 1.
Na primer, dozvoljeno je da struktura sadri viestruka polja (npr. vie od jednog autora
knjige), opciona polja (npr. Naslov prateeg CD-ROM-a), alternativna polja (npr. URL knjiare,
ako knjiga nije rasprodata ili URL sajta za aukcijsku prodaju, ako je knjiga rasprodata). S
obzirom na to da XML tagovi ukazuju na smisao informacije koje sadre, XML dokument se
moe lako pretraivati, npr. da bi se pronale sve knjige datog autora.
47
Poglavlje 7 XML i XSL
Razmotrimo XML dokument sa Sl. 1. Dokument opisuje strukturu nazvanu book_list, koja
predstavlja spisak knjiga. Za svaku knjigu u strukturi postoje tri polja: naslov (title), autor
(author) i godina izdavanja (year). Napomenimo da XML omoguava kreiranje mnogo
sloenijih struktura od one prikazane na Sl. 1. Na primer, dozvoljeno je da struktura sadri
viestruka polja (npr. vie od jednog autora knjige), opciona polja (npr. Naslov prateeg
CD-ROM-a), alternativna polja (npr. URL knjiare, ako knjiga nije rasprodata ili URL sajta za
aukcijsku prodaju, ako je knjiga rasprodata). S obzirom na to da XML tagovi ukazuju na smisao
informacije koje sadre, XML dokument se moe lako pretraivati, npr. da bi se pronale sve
knjige datog autora.
U primeru sa Sl. 1, sadraj svakog od tri polja, autor, naslov i godina, se tretira kao nedeljiva
informacija. Meutim, ako je potrebno, recimo radi preciznije pretrage, dozvoljeno je polja
razloiti na podpolja. Na primer, polje za ime autora, se moe podeliti na dva podpolja, jedno
za ime a drugo za prezime autora:
Uvedena podela polja author omoguava pretraivanje samo po imenu ili samo po
prezimenu autora. U optem sluaju dubina podele moe biti proizvoljna. Dokument sa Sl. 13
sadri spisak od tri knjige. Meutim, sam dokument na govori nita o tome kako jednu ovakvu
Web stranicu treba prikazati u pretraivau. objasniti pretraivau kako da prikae podatke
iz XML dokumenta. Na Sl. 2 je prikazan primer XSL fajla za formatiranje XML dokumenta sa
Sl. 1.
48
Poglavlje 7 XML i XSL
JO O XSLU
Drugim reima, pretraiva generie HTML tabelu popunjenu podacima
o svim knjigama iz XML dokumenta.
<tr><td><xsl:value-of select=title/></td><td><xsl:value-of
select=author/></td><td><xsl:value-of select=year/></td></tr></xsl:for-each>
je analogna fornaredbi iz C-a, gde prva linija odgovara zaglavlju, pet unutranjih linija telu, a
poslednja oznaci za kraj for petlje. Kada pretraiva, koji interpretira dati XSL fajl, on prolazi
jedanput kroz petlju za svaku knjigu iz pridruenog XML dokumenta i u svakom prolasku
generie pet linija oblika: <tr> naslov, autor, godina </tr>.
Krajnji rezultat je isti kao da se prikazuje HTML stranica koja sadri tabelu popunjenu
podacima o tri knjige. Meutim, XML/XSL predstavlja daleko fleksibilnije reenje. Na primer,
ako je potrebno u spisak uvrstiti nove knjige, dovoljno je u XML dokument dopisati nova
<book> polja; XSL ostaje neizmenjen. (U HTML varijanti, bilo bi neophodno proiriti definiciju
tabele novim vrstama). S druge strane, ako treba promeniti nain prikazivanja potrebno
je modifikovati XSL fajl, ali ne i XML dokument. Drugo, program koji na Web stranici trai
informacije o nekoj knjizi, analizira XML dokument. S obzirom na to da XML dokument sadri
tagove koji ukazuju na smisao podataka i nije optereen tagovima za formatiranje, njega je
mnogo jednostavnije analizirati od odgovarajueg HTML dokumenta. Treba napomenuti da
iako XSL fajl sadri neku vrstu programskih konstrukcija, Web stranice napisane u XML i XSL
su i dalje statike. Naime, kao i HTML i XSL daje samo instrukcije Web pretraivau kako da
prikae stranicu. Naravno, upotreba XML/XSL-a podrazumeva da je pretraiva u stanju da
interpretira XML i XSL, to je danas sluaj sa gotovo svim pretraivaima.
49
Poglavlje 8
DINAMIKI DOKUMENTI
Model Web-a opisan u prethodnim sekcijama podrazumeva da klijent
alje serveru ime fajla, a server odgovara slanjem klijentu statiki
sadraj traenog fajla.
U poetnom periodu razvoja Web-a celokupan sadraj dostupan na Web-u bio je statiki
(sadran u fajlovima koji se bez bilo kakve modifikacije transportuju do klijenta). Meutim,
u novije vreme, sadraj koji se moe preuzeti sa Web-a postaje u sve veoj meri dinamiki,
tj. ne postoji u unapred definisanom obliku, ve se kreira na zahtev. Generisanje sadraja
Web stranica moe se obaviti bilo na strani servera bilo na strani klijenta. U prvom sluaju,
tzv. dinamiki dokumenti, Web server, po prijemu zahteva, pokree odgovarajui aplikacioni
program koji kreira dinamiki dokument, a klijentu vraa izlaz programa (Sl. 1 (a)).Drugim
reima, kao odgovor na svaki zahtev klijenta, na strani severa se kreira nova verzija HTML
dokumenta. Krajnje jednostavan primer dinamikog dokumenta je preuzimanje tekueg
vremena i datuma od servera. Vreme i datum su primer dinamike (promenljive) informacije
koja se menja iz momenta u moment. Na primer, klijent moe da zahteva od servera da izvri
program koji ita sistemsko vreme serverskog raunara. Program konvertuje informaciju o
vremenu u tekst, formatira tekst pomou HTML tagova i generisani HTML dokument predaje
Web serveru koji ga vraa nazad klijentu.
50
Poglavlje 8 Dinamiki i aktivni Web dokumenti
JO O DINAMIKIM DOKUMENTIMA
Tradicionalni, i danas ve zastareli nain za procesiranje HTML formi i
drugih interaktivnih Web stranica zasnovan je na sistemu koji se zove
CGI (Common Gateway Interface).
U drugom sluaju, tzv. aktivni dokumenti, Web stranica osim statikog sadraja (HTML,
slike i sl.) sadri i program koji se nakon uitavanja stranice izvrava na strani klijenta
(u pretraivau). Na primer, zamislimo da elimo da kreiramo Web stranicu koja sadri
animiranu grafiku ili interaktivni grafiki interfejs. Sobzirom na to da HTML regulie samo
prikaz sadraja stranice na ekranu pretraivaa, neophodan je poseban program koji e
kreirati animacije ili omoguiti neku specifinu interakciju sa korisnikom. Takoe, jasno je da
se takav jedan program mora izvravati na raunaru klijenta, tj. tamo gde se odvija interakcija
sa korisnikom. Uvek kada klijent zahteva aktivni dokument od servera, server alje kopiju
dokumenta sa sadranim program koji se po uitavanju izvrava u pretraivau (Sl. 1 (b)).
51
Poglavlje 8 Dinamiki i aktivni Web dokumenti
Po pravilu, pozadinski programi su skripte napisane u jeziku Perl. Drugi uobiajeni nain za
generisanje dinamikog sadraja podrazumeva umetanje skripti unutar same HTML stranice.
Kada server dobije zahtev za ovakvom stranicom, on izdvaja skript iz stranice i izvrava ga.
Primer jezika koji se koristi za pisanje ovakvih skripti je PHP (Hypertext Processor). Da bi PHP
mogao da se koristi, server mora da razume PHP jezik (slino kao to pretraiva mora da
razume XML da bi bio u stanju da interpretira Web stranicu napisanu u XML-u).Obino, server
oekuje da Web stranice koje sadre PHP imaju nastavak .php umesto .html ili .htm.
PHP je naroito pogodan za procesiranje formi. Razmotrimo primer HTML stranice sa Sl. 4
(a) koja sadri formu. Jedina specifinost ove stranice je sadraj prve linije koja definie da
radi obrade podataka unetih u formu i vraenih serveru treba koristiti fajl action.php. Stranica
prikazuje dva tekstualna polja, jedno predvieno za unos imena (name) a drugo za unos
godine roenja (age) korisnika.
Nakon to je korisnik popunio oba polja, klikom na dugme Submit, popunjena stranica
(tanije, linija teksta koja sadri unete podatke) se vraa serveru. Server preuzima sadraje
polje name i age, a zatim otvara i prolazi kroz fajl action.php (Sl. 4 (b)) i izvrava svaki PHP
skript na koji naie. Pod pretpostavkom da je korisnik u polja name i age upisao Barbara i
24, HTML fajl koji se vraa klijentu imae oblik kao na Sl. 4 (c).
52
Poglavlje 8 Dinamiki i aktivni Web dokumenti
PHP poseduje promenljive, stringove, polja i veinu upravljakih struktura koje sreemo u C-u.
PHP jeopen source i dostupan je za slobodno korienje. Posebno je projektovan za rad sa
Apache web serverom (koji je takoe open source).
Trea tehnika za dinamiko kreiranje Web stranica je JSP (JavaServer Pages). JSP je slina PHP-
u, s tom razlikom to se dinamiki deo stranice pie u programskom jeziku Java, umesto u
PHP-u. Stranice koje koriste ovu tehniku obino imaju nastavak .jsp.
etvrta tehnika, ASP (Active Server Pages) je Microsoft-ova verzija PHP-a i JSP-a. Za
generisane dinamikog sadraja kod ASP se koristi skript jezik Visual Basic Script(ili VB skript).
Stranice koje koriste ASP, obino imaju nastavak .asp.
Skript jezici kao to su CGI, PHP, JSP i ASP reavaju problem procesiranja formi i interakcije sa
bazama podataka na serveru. Svi oni su u mogunosti da prihvate informacije unete u formu,
pretrae informacije u bazi podataBojler Termorad 10 litara niskomontanika i generiu HTML
stranicu sa rezultatima obrade.
Ni jedan od ovih skript jezika nije u stanju da reaguje na klik miem ili da direktno interaguje
sa korisnikom koji koristi ita. Za tu namenu, neophodan je program koji e se izvravati u
samom ita, na raunaru klijenta umesto na raunaru servera. Web stranica sa pridruenim
programom koji se izvrava na strani klijenta naziva se aktivnim dokumentom.
Postoje dva naina za kreiranje aktivnih dokumenata. Prvi nain podrazumeva da se program,
u obliku binarnog koda, uva na serveru, a da u HTML stranici postoji tag u kome je navedeno
53
Poglavlje 8 Dinamiki i aktivni Web dokumenti
ime fajla koji sadri program. Kada HTML interpretator u itau naie na ovakav tag, on najpre
preuzima fajl programa od servera, a zatim ga izvrava. Programi ovog tipa najee se piu
u programskom jeziku Java. Drugi nain je zasnovan na skript jeziku koji se, slino PHP-u,
ugrauje u sam HTML. Meutim, za razliku od PHP skripta koji se izdvaja iz HTML stranice i
izvrava na serverskom raunaru, skript namenjen klijetu iz HTML-a izdvaja ita i izvrava ga
uz pomo odgovarajueg interpretatora. Najpoznatiji skript jezik za ovu namenu je JavaScript.
Java
Java je objektno-orijentisan jezik zasnovan na C++. Za razliku od C++, i veine drugih viih
programskih jezika, kompajlirani programi pisani u Javi su portabilni, tj. mogu se izvravati na
bilo kom raunaru, nezavisno od tipa procesora i operativnog sistema. U terminologiji Jave,
kompajlirani program se naziva bajtkôdom (bytecode).
JAVA APLETI
Java programi namenjeni za Web nazivaju se apletima.
Primer jednostavnog apleta je aplet koji reprodukuje audio fajl, kao pozadinsku muziku,
za vreme dok je u pregledavau prikazana stranica. Pretpostavimo da je aplet ukljuen u
Web stranicu sa URL-om http://www.elfak.ni.ac.rs/ da je smeten u fajlu bgsound.class, koji
se nalazi na URL-u http://www.elfak.ni.ac.rs/java-apps . Tag koji ukljuuje aplet u HTML je
sledeeg oblika:
<OBJECT CODEBASE=http://www.elfak.ni.ac.yu/java-appsCLASSID =
java:bgsound.classDATA = bgsound.dataCODETYPE = audio/MP3></OBJECT>
Tag sadri vie atributa, sledeeg znaenja. Vrednost atributa CLASSID definie ime fajla u
kome je smeten aplet. CODEBASE definie server i putanju na kojoj se fajl nalazi. Ime fajla,
bgsound.data u kome se uvaju podaci koje aplet treba da procesira navedeno je u atributu
DATA. Ovaj fajl sadri podatke tipa audio/MP3, to je navedeno u atributu CODETYPE. Nakon
uitavanja, aplet i pratei audio fajl se predaju virtuelnoj maini; aplet se startuje i sadraj
audio fajla, u dekodiranom obliku, alje u audio karticu gde se obavlja reprodukcija. Na slian
nain, aplet moe sadrati grafiku animaciju ili video. U tom sluaju, kao atributi taga OBJECT
navode se dimenzije pravougaone oblasti na ekranu pregledavaa, gde e animacija/video
biti prikazani.
54
Poglavlje 8 Dinamiki i aktivni Web dokumenti
Java apleti se mogu razumeti i kao fleksibilna zamena za pomone aplikacije i plug_in-ove.
Na primer, pretpostavimo da Web stranica sadri sliku u nekom novom grafikom formatu
za koji na klijentskom raunaru ne postoji podrka u vidu plug-in-a ili pomone aplikacije
i da zbog toga slika ne moe biti prikazana na ekranu pregledavaa. Meutim, ako se za
prikazivanje slike koristi aplet, dekoder za novi format moe biti smeten u samom apletu koji
se automatski preuzima sa servera prilikom uitavanja stranice u pregledava.
ACTIVEX KONTROLE
ActiveX kontrole su Microsoft-ov odgovor na Java aplete.
ActiveX kontrole se, kao i apleti mogu ugraditi na Web stranicu.ActiveX kontrole su programi
kompilirani za Pentium procesore i izvravaju se direktno, bez posredovanja virtuelne maine,
kao to je to sluaj kod apleta. Zbog toga je izvrenje ActiveX kontrola znaajno bre od
izvravanja apleta, a njihove mogunosti su daleko vee, u smislu korienja raspoloivih
softverskih i hardverskih resursa raunara. Kada Internet Explorer u Web stranici primeti
pozivanje naActiveX kontrolu, on je preuzima od servera, verifikuje njen identitet, registruje
je na lokalnom raunaru i izvrava. Meutim, pored ograniena da se ActiveX kontrole mogu
koristiti samo na Pentium PC raunarima, njihovo korienje moe biti rizino u pogledu
sigurnosti.
JavaScript
Slina funkcionalnost kao sa Java apletima se moe dobiti i korienjem JavaScript jezika,
s tom razlikom to se, slino PHP-u, JavaScript skript jezik u izvornom obliku ugrauje u
HTML stranicu. JavaScript program se smeta u poseban HTML tag, <script>. Kada HTML
interpretator naie na tag <script> on poziva JavaScript interpretator koji izvrava sadrani
skript. Uprkos slinom imenu, JavaScript, kao jezik, nema direktne veze sa Javom. Slino
drugim skript jezicima, JavaScript sadri programske konstrukcije veoma visokog nivoa. Na
primer, u jednoj liniji JavaScript programa mogue je prikazati dijalog za unos teksta, ekati
da tekst bude unesen i smestiti uneti tekst u neku promenljivu.
JAVASCRIPT JEZIK
Sa take gledita krajnjeg korisnika, krajnji rezultat oba primera (Sl. 18
i Sl. 19) je isti.
55
Poglavlje 8 Dinamiki i aktivni Web dokumenti
Bitno je razumeti da se naini obrade ova dva primera sutinski razlikuju. U primeru koji
koristi PHP, nakon klika na dugme Submit, pretraiva izdvaja informacije iz forme i u vidu
stringa ih alje nazad serveru koji je poslao stranicu. Server prepoznaje ime PHP fajla i
izvrava ga. PHP skript kreira novu HTML stranicu koja se vraa pretraivau i prikazuje.
S druge strane, u primeru koji koristi JavaScript, nakon klika na dugme Submit , pregledava
interpretira JavaScript funkciju sadranu u samoj stranici. Ne postoji novi kontakt sa
serverom, ve se sve obavlja lokalno, unutar itaa.
Zbog toga se rezultat obrade pojavljuju gotovo trenutno, za razliku od primera sa PHP gde
postoji izvesno neizbeno kanjenje (reda do nekoliko sekundi) dok rezultujui HTML fajl ne
stigne nazad do pretraivaa.
PROCESIRANJE SKRIPTA
Postoji razlika izmeu procesiranja skripti na strani klijenta i strani
servera prilikom upotrebe PHP i i korienjem JavaScript jezika.
Na Sl. 6 je ilustrovana razlika izmeu procesiranja skripti na strani klijenta i strani servera.
U oba sluaja, korak 1 poinje nakon to je forma uitana u pretraiva. Korak 2 iniciran je
56
Poglavlje 8 Dinamiki i aktivni Web dokumenti
klikom na dugme Submit, a nakon toga sledi procesiranje forme, koje u ova dva sluaja tee
na razliite naine.
Ove razlike ne znae da je JavaScript bolji od PHP-a. Namena ova dva skrip jezika je potpuno
razliita. PHP (i srodni skript jezici) prevashodno se koriste za interakciju sa udaljenom bazom
podataka. JavaScript se koristi za interakciju sa korisnikom na strani klijentskog raunara.
Mogue je, i uobiajeno, da Web stranica sadri oba skript jezika, sa raspodeljenim zadacima.
Slika 8.5 6 Procesiranje skripta: (a) na strani servera (PHP); (b) na strani klijenta (JavaScript)
Slika 7 ilustruje razliite tehnike za kreiranje dinamikih i aktivnih Web stranica, o kojima
je bilo rei u ovoj sekciji. Dinamike Web stranice se generiu na strani servera, uz pomo
razliitih skript jezika (Perl, PHP, JSP ili ASP), a klijent dobija standardnu HTML stranicu koju
prosto treba da prikae. Aktivne Web stranice sadre ugraene skriptove (pisane u JavaSctipt
jeziku) ili hiperveze na kompletne programe (u vidu Java apleta ili ActiveX kontrola) koji se
nakon uitavanja izvravaju na klijentskom raunaru, to omoguava kreiranje interaktivnih
korisnikih interfejsa, pa ak i sloena procesiranja grafikih, audio ili video sadraja. Web
stranice napisane u XML-u se shodno pridruenom XSL fajlu u samom pretraivau konvertuju
u HTML, to takoe predstavlja neku formu aktivnog sadraja. Konano, plug-in-ovi i pomone
aplikacije predstavljaju proirenja pretraivaa i koriste se za prikazivanje multimedijalnih
sadraja razliitih formata.
57
Poglavlje 9
HTTP
U veini sluajeva, HTTP klijent (ita) zahteva Web stranicu, a HTTP server (Web server)
isporuuje njenu kopiju. Meutim, HTTP dozvoljava i prenos od itaa kaserveru (npr. kada
korisnik serveru alje formu). HTTP je slian FTP-u, ali je mnogo jednostavniji jer koristi samo
jednu TCP konekciju: ne postoji posebna kontrolna konekcija, a izmeu klijenta i servera se
prenose samo podaci. Takoe, HTTP je slian SMTP-u, jer sadri koji se prenosi izmeu klijenta
i servera lii na SMTP poruku. Uz to, za kontrolu formatiranja poruke se, kao i kod SMTP,
koristi MIME. Za razliku od SMTP, HTTP poruke nisu direktno nemenjene ljudima, ve ih itaju
i interpretiraju HTTP klijent i HTTP server.
Trajanje veze
Broj porta HTTP protokola je 80. Web server neprekidno oslukuje TCP port 80, ekajui
da neki pretraiva zatrai otvaranje TCP konekcije. S druge strane, pretraiva koji eli da
pribavi Web stranicu poznatog URL-a, inicira otvaranje TCP konekcije na portu 80 sa serverom
ije je ime navedeno u URL-u. (Naravno, ovome prethodi interakcija sa DNS serverom radi
konverzije DNS imena servera u IP adresu). Kada je TCP konekcija uspostavljena, pretraiva
alje serveru HTTP zahtev koji sadri putanju i ime traenog fajla. Web server odgovara
prenosom fajla, a po zavrenom prenosu zatvara TCP konekciju. Ako uitana Web stranica
sadri slike ili neki drugi dodatni sadraj, neophodno je da pretraiva radi prenosa svakog
takvog entiteta uspostavi novu TCP konekciju sa serverom. Ovakav nain rada, naziva se
neperzistentnom (nestalnom) vezom, i karakteristian je za prvobitne verzije HTTP protokola
(konkretno verzije 0.9 i 1.0).
Neperzistentni nain rada je izrazito neefikasan ako se prenose Web stranice koje osim
HTML-a sadre i vei broj slika, ikona ili drugih prateih sadraja (to je sluaj sa veinom
Web stranica koje danas viamo na Webu). Uspostavljane TCP konekcije generie dodatni
saobraaj u mrei i unosi izvesno kanjenje, to ima za posledicu sporo uitavanje ovakvih
Web stranica. Iz tog razloga, godine 1999. uvedena je nova verzija HTTP protokola, verzija
1.1, koja podrava perzistentne (trajne) veze klijenta i servera.
58
Poglavlje 9 HTTP
HTTP TRANSAKCIJA
HTTP je klijent-server protokol kod koga se komunikaciju obavlja nizom
transakcija: klijent alje poruku zahteva, a server odgovara porukom
odziva.
Kod perzistentnog naina rada, ita uspostavlja inicijalnu TCP konekciju, zatim alje zahtev
i dobija odgovor (kao kod HTTP 1.0). Meutim, nakon slanja odgovora, server ne zatvara TCP
konekciju, ve je ostavlja otvorenom dajui priliku itau da preko iste TCP konekcije uputi
dodatne zahteve. Tipino, server zatvara TCP konekciju po isteku nekog zadatog vremena
nakon poslednje upuenog zahteva. Na ovaj nain se dodatna optereenja usled
uspostavljanja i raskidanja TCP konekcije raspodjeljuju na vie HTTP zahteva/odgovora ta ko
da je relativno dodatno optereenje na nivou celokupne Web stranice znaajno manje.
Formati poruka
HTTP predvia dva generalna tipa poruka koje se razmenjuju izmeu klijenta i servera (Sl.
1). HTTP poruke se sastoje od jedne ili vie linija NVT ASCII teksta. Prva linija zahteva sadri
metod ili tip zahteva, a prva linija odgovora informaciju o statusu odgovora. Oba tipa poruke
sadre zaglavlje koje od tela poruke odvojeno jednom praznom linijom. Telo poruke je u oba
sluaja opciono (ne mora da postoji) i koristi se za prenos sadraja poruke. Poev od verzije
1.1 HTTP podrava MIME kodiranje sadraja (slino kao kod SMTP protokola).
HTTP METODE
HTTP je zamiljen optije od prostog protokola za komunikaciju tipa
zahtev/odgovor.
HTTP predvia vie razliitih tipova zahteva koje klijent moe da uputi serveru. U terminologiji
HTTP standarda tipovi zahtevi se zovu metodi. Osim osnovnog metoda GET koji slui za
pribavljanje Web stranice, HTTP predvia jo nekoliko dodatnih metoda navedenih u tabeli
sa Sl. 2. Metod GET zahteva od servera da poalje traenu stranicu. (Ovde se pod stranicom
misli na objekat koji moe biti HTML stranica, slika, Java aplet i sl, tj. na fajl). Stanica koja
se vraa ne mora da sadri samo ASCII tekst, a za identifikaciju tip sadraja koristi se MIME,
59
Poglavlje 9 HTTP
slino kao kod e-mail protokola. Najvei broj HTTP zahteva koji se javljaju na Web-u su upravo
tipa GET. Uobiajeni oblik metoda GET je:
gde je ime_fajla ime resursa (fajla) koji se trai, a 1.1 verzija HTTP protokola koji se koristi.
Metod HEAD trai od servera ne celu stranicu ve samo njeno zaglavlje. Ovaj metod se
moe koristiti za pribavljane informacije o datumu i vremenu kada je stranica poslednji put
modifikovana, za prikupljanje drugih informacija o stranici i njenom sadraju ili prosto za
testiranje validnosti URL-a (da li je na datom URL-u prisutna stranica).
Uz pomo PUT metoda mogue je postaviti Web stranicu na udaljeni Web server. Stranica je
sadrana u telu PUT zahteva. Stanica ne mora biti tekst, a njen MIME tip naveden je polju
Content-Type zaglavlja zahteva. Takoe, zaglavlje zahteva sadri i podatke za autorizaciju
kojima klijent dokazuje da ima pravo da izvri zahtevanu operaciju.
Metod POST je slian metodu PUT. Za razliku od PUT, kojim se na server postavlja nova
stranica (ili zamenjuje postojea), metod POST se koristi da se u resurs (u najoptijem smislu)
koji se nalazi na datom URL-u,upiu (dodaju) novi podaci. Postavljanje nove poruke na nekom
Web forumu, primer je ovog tipa operacije. Meutim, u praksi metod POST, kao i PUT, se retko
koristi.
Metod DELETE slui za brisanje (uklanjanje) stranice sa Web servera. Kao i kod PUT, u
zaglavlju zahteva tipa DELETE moraju postojati podaci za autorizaciju.
Metod TRACE se koristi za testiranje veze sa serverom. Ovaj metod nalae serveru da nazad
vrati primljenu poruku zahteva. TRACE je koristan u sluajevima kada se zahtevi ne obrauju
korektno, a klijent eli da sazna da li zahtevi uopte dolaze do servera.
60
Poglavlje 9 HTTP
Metod OPTIONS omoguava klijentu da postavi upit serveru koji se odnosi na izvesne
parametre rada
Status
U prvoj liniji svaki odgovor kojeg server vraa klijentu sadran je trocifreni kôd statusa
koji klijentu treba da ukae da li je njegov zahtev uspeno opslue ili nije i ako nije zato nije.
Prva cifra statusnog koda slui za podelu odziva na pet glavnih grupa (Sl. 3). Kod 1xx (x -
proizvoljna cifra) se retko koristi u praksi. Kod 2xx znai da je zahtev uspeno obraen i da
poruka sadri traeni sadraj. Kod 3xx govori klijentu da traenu stranicu potrai na nekom
drugom URL-u ili u svom keu (kasnije e biti vie rei o keiranju). Kôd 4xx znai da
zahtev nije opsluen, bilo zato to je u samom zahtevu uoena greka ili zato to je klijent
zatraio nepostojeu stranicu. Konano, kod 5xx obavetava klijenta da na strani servera
postoje problemi, bilo zbog greke u programu Web servera bilo zato to je server privremeno
preoptereen.
Zaglavlja poruka
Nakon linije metoda u poruci zahteva sledi jedna ili vie linija zaglavlja koje sadre dodatne
informacije o zahtevu. Za svaku liniju ove sekcije se kae da predstavlja jedno zaglavlje
zahteva. Poruka odziva takoe moe sadrati zaglavlja (jedno ili vie). Neka zaglavlja se
koriste i kod zahteva i kod odgovora. U tabeli sa Sl.4 navedena su najvanija zaglavlja.
Zaglavlje User-Agent (korisniki agent) omoguava da klijent obavesti servera o tipu
pretraivaa koji koristi, operativnom sistemu i drugim osobinama. etiri zaglavlja koja
61
Poglavlje 9 HTTP
poinju sa Accept obavetavaju servera kakav sadraj je klijent spreman da prihvata. Prvo od
ovih zaglavlja (Accept) navodi MIME tip stranice koji klijentov pretraiva moe da obradi (npr.
text/html). Drugo (Accept-Charset) definie skup karaktera (npr. ISO-8859-5 ili Unicode-1-1)
koji klijent prepoznaje. Tree (Accept-Encoding) definie metod kompresije koji klijent
podrava (npr. gzip), a etvrto (Accept-Language) ukazuje na prirodni jezik (npr. Srpski) koji
korisnik razume. Ako server ima mogunost izbora stranice (npr. postoji vie varijanti iste
stranice), on e izabrati o vratiti klijentu onu koja se uklapa u postavljene zahteve. Ako
server nije u mogunosti da udovolji zahtevima klijenta, vratie odgovor sa postavljenim
odgovarajuim kodom greke.
Zaglavlje Host je obavezno jer se moe desiti da za istu IP adresu budu vezana vie DNS
imena. Ispitivanjem sadraja ovog polja, sever proverava da li se zahtev odnosi ba na njega.
Cookie-ima su posveena dva zaglavlja. Preko zaglavlja Cookie klijent vraa serveru sadraj
cookie-a kojeg je ranije poslat klijentu od strane neke maine iz domena servera. Server alje
cookie klijentu u obliku sadraja zaglavlja Set-Cookie. Kao to znamo, klijent je u obavezi da
zapamti cookie na svoj hard disk, i vrati ga serveru pri svakom narednom obraanju.
Zaglavlje Date (datum) se moe koristiti u oba smera i sadri vreme i datum kada je poruka
poslata.
Slede zaglavlja koja se javljaju iskljuivo u odgovorima koje server alje klijentu. Zaglavlje
Server omoguava serveru da saopti svoj identitet klijentu, ako eli.
Sledea etiri zaglavlja, koja poinju sa Content - (sadraj) omoguavaju serveru da opie
osobine stranice koje alje. (Znaenje ovih zaglavlja je analogno odgovarajuim Accept -
zaglavljima).
62
Poglavlje 9 HTTP
Zaglavlje Last-Modified sadri datum i vreme kada je stranica poslednji put modifikovana.
Ovo zaglavlje ima bitnu ulogu u keiranju stranica.
Server koristi zaglavlje Location kada eli da obavesti klijenta da bi trebalo da pokua da
potrai zahtevanu stranicu na nekom drugom URL-u. Ova mogunost se koristi ako je stranica
premetena na drugu lokaciju ili ako vie od jednog URL-a ukazuje na istu stranicu. Na primer,
neka internacionala kompanija moe nakon prijema zahteva za njenu glavnu stranicu na .com
domenu, da preusmeri klijenta, na osnovu njegove IP adrese, na jednu od svojih nacionalnih
ili regionalnih stranicu.
Na Sl. 5 je prikazan izgled jednog kompletnog HTTP odgovora. Prva linija sadri status
odgovora, koji je u ovom sluaju pozitivan. Sledi vei broj zaglavlja, zatim jedna prazna linija
i konano sama Web stranica.
Zaglavlje ETag sadri jedinstveni identifikator stranice. Ovo zaglavlje se koristi prilikom
keiranja stranica.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
63
Poglavlje 9 HTTP
64
Poglavlje 10
PROXY SERVER
Dva tipa meu-servera su: firewall i proxy server.
Proxy server je posrednik izmeu lokalnih (intranet) korisnika i Web-a (Sl. 1) i omoguava
optimizaciju kojom se smanjuje ekanje klijenata na pribavljanje zahtevanih Web stranica.
Web pretraivai u mrei koja koristi proxy server su konfigurisani tako da svoje HTTP
zahteve ne upuuju direktno udaljenim Web serverima ve ih alju lokalnom proxy serveru
koji u njihovo ime obavlja zahtevanu transakciju. Kada prvi korisnik u korporaciji pristupi
odreenoj Web stranici, proxy mora da pribavi kopiju od servera na kome se stranica nalazi.
Proxy ostavlja kopiju u svom keu i vraa traenu stranicu kao odgovor na zahtev. Kada
sledei put neki korisnik pristupi istoj stranici, proxy uzima podatke iz svog kea i ne alje
zahtev preko Interneta. Proxy serveri su bitan deo arhitekture Web-a. Osim to efektivno
skrauju vreme pribavljanja Web stranica, proxy serveri znaajno redukuju saobraaj na
Internetu i smanjuju optereenje Web servera.
Koncept proxy servera i keiranja (Sl. 2) nije ograniena samo na korporacijski intranet,
ve se primenjuje i u drugim kontekstima. Na primer, proxy server ne mora biti raunar na
lokalnoj mrei, ve moe biti i proces pokrenut na PC raunaru. Takoe, mnogi provajderi
65
Poglavlje 10 Proksi serveri i keiranje stranica
internet usluga (ISP) poseduju proxy server sa ciljem da svojim korisnicima ubrzaju pristup
Web-u (i u isto vreme smanje protok podataka prema nadreenom ISP-u). esto, postoji
hijerarhija proxy servera. Zahtev se najpre alje lokalnom proxy serveru, koji, ako nije u
stanju da opslui zahtev, zahtev prosleuje npr. korporacijskom proxy serveru, a ovaj proxy
serveru provajdera internet usluga i tako redom sve dok se u nekom keu ne pronae traena
stranica. Tek ako stranica ne postoji u keu proxy servera na vrhu hijerarhije, ona se direktno
trai od Web servera, a onda prosleuje nazad do pretraivaa koji je uputio zahtev i pri tome
pamti u keevima svih posrednih proxy servera. Protokol tano odreuje nain na koji proksi
obrauje svaki zahtev, kako proksi treba da tumai zaglavlje, kako pretraiva pregovara sa
proksijem i kako proksi pregovara sa serverom.
Glavni aspekt keiranja jeste privremeno uvanje stranica (Sl. 3), a glavno pitanje tie
se vremena uvanja stranice, tj. koliko dugo treba stavku uvati u keu. S jedne strane,
ako se kopija predugo uva u keu ona moe da zastari, to se deava ako je original u
meuvremenu, nakon to je kopija uneta u ke, promenjen. S druge strane, ako se kopija ne
uva dovoljno dugo, dolazi do smanjenja efikasnosti keiranja zato to sledei zahtev mora
nepotrebno da ide do servera. Pojedine Web stranice su podlone estim promenama (npr.
stranica sa rezultatima fudbalskih utakmica), dok druge mogu ostati neizmenjene u duem
vremenskom intervalu (npr. stranica posveena Grkoj mitologiji). Takoe, sklonost stranice
promenama moe da varira u vremenu (npr. stranica sa rezultatima fudbalskih utakmica se
brzom menja samo dok utakmica traja, a onda ostaje neizmenjena do sledeeg kola).
Takoe, neke stranice se ni u kom sluaju ne mogu keirati. To je sluaj sa dinamikim Web
stranicama koje se generiu na strani servera na osnovu postavljenog upita. HTTP dozvoljava
da server kontrolie keiranje na dva naina. Prvi nain se oslanja na informaciju iz zaglavlja
odgovora Last-Modified kada odreuje koliko dugo e stranica biti uvana u keu. Ako je
stranica koja se upravo stavlja u ke promenjena pre jednog sata, ona e biti uvana u
keu jedan sat. Ako je promenjena pre dva meseca, u keu e ostati dva meseca. Iako ovaj
66
Poglavlje 10 Proksi serveri i keiranje stranica
Drugi pristup eliminie mogunost da pregledava dobije zastarelu strancu, ali na raun
izvesnog poveanja saobraaja i vremena ekanja na pribavljanje stranice. Pristup se oslanja
na tzv. uslovni GET zahtev, koji proxy moe da poalje serveru kako bi proverio aurnost
keirane stranice. Uslovni GET zahtev je HTTP poruka koja sadri zaglavljeIf-Modified-Since
(ako je modifikovana posle ...). Procedura je ilustrovana na Sl. 3 i odvija se na sledei nain:
Pregledava upuuje standardni GET zahtev proxy-ju (korak 1). Pretpostavimo da proxy u
svom keu ima traenu stranicu. Svakoj keiranoj stranici pridruena je informacija o datumu
i vremenu kada je stranica keirana. Ova informacija je preuzeta iz poljaLast-Modified HTTP
poruke kojom je originalna stranica ranije preneta od servera do proxy-ja. Pre nego to
pretraivau vrati keiranu stranicu, proxy alje uslovnu GET poruku serveru sa upisanim
vremenom poslednje modifikacije keirane kopije u zaglavlju If-Modified-Since(korak 2). Na Sl.
3 je pretpostavljeno da stranica nije modifikovana u meuvremenu, tj. od datuma i vremena
navedenih u zaglavlju If-Modified-Since. Zbog toga server vraa proxy-ju kratak odgovor sa
statusnim kodom 304 (Not modified - nije modifikovana) i bez tela (korak 3). Po prijemu
odgovora, proxy vraa keiranu stranicu pregledavau (korak 4). U sluaju da je zahtevana
stranica u meuvremenu bila modifikovana, server e vratiti proxy-ju novu kopiju stranice,
koju e proxy smestiti u ke (zajedno sa datumom i vremenom iz zaglavlja Last-Modified) pre
nego to je prosledi pregledavau.
Dva pristupa za kontrolu vremena keiranja se lako mogu kombinovati. Na primer, prvih T
sekundi nakon pribavljanja stranice proxy vraa regledavau keiranu kopiju bez postavljanja
pitanja serveru. Po isteku T sekundi, proxy koristi uslovnu GET poruku za proveru aurnosti
kopije.
67
Poglavlje 10 Proksi serveri i keiranje stranica
stranici. Meutim, pribavljajui i stranice koje nikada nee biti potrebne, ova tehnika ne
smanjuje ve poveava saobraaj na Internetu.
Danas se na veini lokalnih, korporacijskih mrea koristi isti skup protokola kao i na Internetu
(TCP/IP), a takve mree se nazivaju intranetima. Korienje Internet protokola na intranet
mrei ima dvojako opravdanje. Prvo, olakan je pristup Web-u od strane raunara povezanih
na intranet (lokalni raunari na isti nain komuniciraju meusobno kao i sa udaljenim
serverima). Drugo, omogueno je spoljnim Internet korisnicima da pristupaju informacijama
i servisima dostupnim na korporacijskim serverima (kao to je korporacijski Web server).
Meutim, iz sigurnosnih razloga, spoljnim korisnicima obino nije dozvoljen direktan pristup
korporacijskim serverima, ve se ostvaruje posredstvom specijalizovanog server, tzv. firewall
ili sigurnosni gateway, koji nadgleda i filtrira mrei saobraaj. Kao to se moe videti sa
Sl. 4, firewall kontrolie protok informacija u oba smera (kao iz tako i u intranet). Firewall
presree i filtrira pakete koji su sa Interneta upueni lokalnim serverima, kao i sve zahteve
koji se iz intraneta alju prema Internetu. Filtriranje se obavlja na osnovu izvornih i odredinih
IP adresama i brojevima portova sadranim u TCP/UDP paketima ili na bazi nekih drugih
kriterijuma. Firewall moe biti konfigurisan tako da prosleuje ka intranetu samo pakete koji
su upueni na odreene lokalne IP adrese i/ili samo ako su paketi poslati iz nekog odreenog
domena, a da sve ostale ponitava. Takoe, firewall moe da uvede restrikcije koje se odnose
na brojeve portova. Na primer, firewall moe biti tako podeen da ponitava sve dolazne TCP
pakete sa brojem odredinog porta 20 ili 21 i da na taj nain onemogui pristup bilo kom
lokalnom FTP serveru.
68
Poglavlje 11
Veba 1
UVOD U VEBE
Cilj ove sekcije je da uvede studenta u tok samih vebi na predmetu
IT255:ta emo raditi na vebama?
ta je to Web Framework
Web Application Framework (WAF) je softverski omot oko nekog web programskog jezika
koji nam omoguava podrku u izradi dinamikih web sajtova, web aplikacija, web servisa
ili resursa. Framework se pravi iskljuivo da olaka I omogui bolji razvoj aplikacija. Na
ovom predmetu obraivaemo Angular JS front end framework u kombinaciji sa programskim
jezikom PHP.
GitHub
GitHub je web aplikacija koja omoguava besplatnu kontrolu koda svima koji ele da je koriste
za pravljenje aplikacija otvorenog koda. Kontrola koda (eng. Source Control) nam omoguava
da lako pratimo izmene u samom kodu, radimo u timu i verzioniemo nae aplikacije. Ovo je
jako dobra praksa pa emo kroz predmet praktikovati da sve domae radite preko GitHub-a.
Jedan GitHub nalog moe da ima vie repozitorijuma. Jedan repozitorijom predstavlja kontrolu
koda za jedan projekat. GitHub koristi Git sistem kontrole koda pa je Git potrebno instalirati
na raunaru. Git funkcionie po sistemu local -> remote. Tako da ono to izmenite kod sebe
na raunari ne ide odma na remote GitHub nalog ve ide tek nakon Push akcije (prebacivanje
fajlova na remote lokaciju). U lokalu fajl moete dodati u projekat (Add) i verifikovati ga
(Commit) kada ste zavrili sa radom na fajlu.
69
Poglavlje 11 Veba 1
Xampp 5.5.30
Node JS (Node JS Package Manager NPM) 5.4.0
Git 2.7.0
Notepad++
Kada vidite ovaj ekran kliknite na dugme Next. A potom odaberite komponente koje su
potrebne kao na sledeoj slici:
70
Poglavlje 11 Veba 1
Nakon biranja lokacije za instalaciju pritisnite dugme Next I detiklirajte Learn more about
Bitnami for XAMPP I idite opet na opciju Next. Kada je instalacija spremna za instalaciju idite
na dugme Next.
71
Poglavlje 11 Veba 1
Nakon uspee instalacije XAMPP-a moete pokrenuti Apache server kao i MySQL server klikom
na Fisnih dugme I otvaranjem XAMPP Control Panela.
72
Poglavlje 11 Veba 1
INSTALACIJA GIT-A
Cilj ove sekcije je da prikae studentu kako da instalira Git na svom
raunaru
Nakon prihvatanje licence klikom na Next potrebno je odabrati lokaciju instalacije Git-a.
73
Poglavlje 11 Veba 1
Nakon preuzimanja Git-a sa navedenog sajta potrebno je pokrenuti instalaciju. Nakon biranja
komponenti potrebno je pritisnuti dugme Next a potom odabrati kako e se zvati folder u
Start meniju za Git.
74
Poglavlje 11 Veba 1
Nakon ovog koraka potrebno je kliknuti na Next a potom odbrati Use Git from Windows
Command Prompt
75
Poglavlje 11 Veba 1
76
Poglavlje 11 Veba 1
Pritsnite dugme Next a potom prihvatite uslove korienja i opet kliknite Next.
Nakon prihvatanja uslova potrebno je odabrati lokaciju instalacije i opet pritisnuti dugme
Next.
77
Poglavlje 11 Veba 1
Nakon klikna Next pritisnuti opet Next i zatim Install dugme. Instalacija e poeti.
78
Poglavlje 11 Veba 1
INSTALACIJA NOTEPAD++-A
Cilj ove sekcije je da studentu prikae kako da instalira Notepad++ na
svom raunaru
Klikom na dugme Next otvaraju se uslovi korienja aplikacije pa treba pritisnuti dugme I
Agree. Nakon prihvatanja uslova korienja potrebno je odabrati lokaciju instalacije.
79
Poglavlje 11 Veba 1
Nakon biranja lokacije potrebno je pritisnuti dugme Next a zatim ponovo Next poto emo
instalirati sve standardne pakete za Notepad++. Ostaviemo i ostale komponente po
standaru pa treba da pritisnemo dugme Install.
80
Poglavlje 11 Veba 1
U C:/xampp/htdocs je potrebno kreirati folder projekta (it255) a potom kreirati unutar njega
fajl index.php
81
Poglavlje 11 Veba 1
Otvorite fajl preko Notepad++ programa desnim klikom na File pa onda klikom with Edit with
Notepad++. Unutar Notepad-a napisati sledei kod:
<?php
echo "Hello World";
?>
Nakon ovoga potrebno je da upalimo Apache server preko XAMPP Control Panel-a koji ste
prethodno instalirali. Apache palimo klikom na dugme Start sa desne strane.
Kada smo postavili PHP projekat moemo ga postaviti na GitHub kako bi mogli kasnije
projekat da nadogarujemo i kako bi tu postavljali ubudue domae zadatke.
Prvo je potrebno da upalimo Command Prompt iz Windowsa ( Ctrl + R pa cmd i Run).
A potom da doemo do foldera gde nam se nalaze nai PHP fajlovi. Ovo moemo uraditi
komandom cd C:\xampp\htdocs\it255
82
Poglavlje 11 Veba 1
Nakon ulaska u folder treba da inicializujemo GIT repozitorijum, ovo moemo uraditi
komandom git init
Ukoliko niste ranije potrebno je da setujete promenjive za Va username i emejl za Git ovo
uradite sledeim komandama:
Nakon konfiguracije treba da dodamo sve fajlove u GIT repozitorijum ovo moemo uraditi
komandom git add -A
83
Poglavlje 11 Veba 1
Kada zavrite commit treba kreirati nalog na GitHub.com i napraviti repozitorijum kako bi
mogli kod da objavite na internet zbog timskog rada.
Kada kliknete na New Repository izaie Vam forma u kojoj popunjavate ime vaeg
repozitorijuma i njegov opis
84
Poglavlje 11 Veba 1
Kada uspeno kreirate repozitorijum dobiete Git adresu samog repozitorijuma koju treba da
kopirate jer nam treba za git push funkciju koja stavlja repozitorijum na internet.
Nakon ovoga moemo podii verziju koda na GitHub koristei komandu git push origin
master.
85
Poglavlje 11 Veba 1
Nakon ovoga upisati svoj Username i Password za GitHub i repozitorjum je postavljen na web.
Ova lekcija sadri video materijal. Ukoliko elite da pogledate ovaj video morate da
otvorite LAMS lekciju.
86
Poglavlje 11 Veba 1
Xampp 5.5.30
Node JS (Node JS Package Manager NPM) 5.4.0
Git 2.7.0
Notepad++
87
Poglavlje 12
Domai zadatak 1
Za domai zadatak student treba kui da podesi sve to je potrebno za kreiranje PHP projekta
a potom:
88
Zakljuak
U ovoj lekciji student je nauio osnovno o elementima interneta, TCP/IP protokolu i njegovoj
vezi sa OSI modelom, protokoli koji se koriste, kako funkcioe web server pozivi i dostavljanje
HTML-a od strane servera.
Opisana je evolucija veba koja se moe pratiti tragom nekoliko dimenzija i iz vie perspektiva:
89