Download presentation
Presentation is loading. Please wait.
1
Internet i Web tehnologije
World Wide Web (ili samo Web) - kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u. World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u (Sl. 6‑1). Stranice su raspoložive korisnicima Web-a u vidu datoteka smeštenih na milionima računara distribuiranih po Internetu. Svaka stranica može sadržati pokazivače (tzv. linkove ili hiperveze) na druge stranice koje mogu biti smeštene na istom ili na nekom drugom računaru (ili, u terminologiji Web-a, Web sajtu). Klikom na link, korisnik prelazi na sledeću stranicu, a ovaj proces se može nastaviti u nedogled. Koncept stranica koja sadrži pokazivače na druge srodne stranice naziva se hipertekstom. Stranica može sadržati i delove koji nisu tekstualni (npr. slike). Internet i Web tehnologije
2
Internet i Web tehnologije
Hipertekst Koncept stranice koja sadrži pokazivače na druge srodne stranice. Internet i Web tehnologije
3
Internet i Web tehnologije
Web na Internetu Dve komponente: Web pretraživač (browser) - klijent Aplikacioni program za pribavljanje i prikazivanje stranica. Najpoznatiji pretraživači: Internet Explorer i Natscape Navigator Web server Čuva i isporučuje Web stranice Da bi se Web implementirao na Internetu koriste se dve glavne komponente: Web pretraživač i Web server. Web pretraživač (browser) je aplikacioni program koji korisnik poziva da bi pristupio stranici i prikazao je. Najpoznatiji Web pretraživači su Internet Explorer i Natscape Navigator. Web pretraživač ima ulogu klijenta koji stupa u vezu sa odgovarajućim Web serverom da bi dobio primerak navedene stranice. Pretraživač pribavlja traženu stranicu, interpretira tekst zajedno sa sadržanim komandama za formatiranje, i prikazuje ga na ekranu monitora. Primer stranice prikazan je na Sl. 6‑1. Kao i mnoge slične Web stranice, stranica sa Sl. 6‑1 sadrži naslov i izvesne informacije. Konkretno stranica sadrži spisak predmeta i predavača iz grupe za Embedded sisteme Elektronskog fakulteta u Nišu. Delovi teksta koji sadrže linkove na druge stranice su obično naglašeni (podvučeni ili prikazani u odgovarajućoj bolji). Klikom na tekst ˝Internet and Web technologies˝ korisnik može da dobije dodatne informacije o istoimenom predmetu. Pretraživač pribavlja i prikazuje stranicu na koju ukazuje izabrani link. Pretraživač pribavlja stranicu bez ikakve pomoći korisnika, a nova stanica može biti uzeta sa istog računaru sa kojeg je pribavljena i prva ili sa nekog drugog računaru. Internet i Web tehnologije
4
Internet i Web tehnologije
Web na Internetu Internet i Web tehnologije
5
Internet i Web tehnologije
Web pretraživač Program koji može da prikazuje Web stranice i reaguje kada se mišem klikne neki objekat na stranici. Kada je objekat izabran, pretraživač prati hipervezu pridružen objektu i pribavlja izabranu stranicu. URL - način imenovanja Web stranica Npr. http - ime protokola - simboličko (DNS) ime računara kome se pristupa /products.html - ime datoteke koja sadrži stranicu program koji može da prikazuje Web stranice i reaguje kada se mišem klikne neki objekat na stranici. Kada je objekat izabran, pretraživač prati hipervezu pridružen objektu i pribavlja izabranu stranicu. Jasno je da je za implementaciju hiperveze neophodan način za imenovanje stranica na Web-u. Za imenovanje stranica koriste se šema poznata pod nazivom URL (uniformni lokator resursa). Tipičan URL je oblika: Detaljnije objašnjenje URL-ova sledi kasnije u ovom poglavlju. Za sada, dovoljno je znati da se URL sastoji iz tri dela: ime protokola (http), simboličko (DNS) ime računara na kome je stranica locirana ( i ime datoteke koja sadrži stranicu (products.html). Internet i Web tehnologije
6
Internet i Web tehnologije
Web pretraživač Pretraživač se obraća DNS serveru tražeći od njega IP adresu hosta DNS server odgovara sa Pretraživač uspostavlja TCP konekciju sa hostom na portu 80. Preko otvorene TCP konekcije, pretraživač šalje zahtev tražeći fajl /home/index.html. Server odgovara slanjem fajla /home/index.html. TCP konekcija se zatvara. Pretraživač prikazuje tekst sadržan u falju /home/index.html. Pretraživač pribavlja i prikazuje sve slike iz ovog fajla. Internet i Web tehnologije
7
Internet i Web tehnologije
Web pretraživač HTML - jezik za pisanje Web stranica Web pretraživač - HTML interpretator + Dodatne funkcije koje olakšavaju navigaciju na Web-u: Dugme za povratak na prethodnu stranicu, Dugme za prelazak na sledeću stranicu i Dugme za direktno učitavanje stranice koju je korisnik označio kao svoju početnu stranicu. Podrška za bookmark-e, tj. kreiranje liste često posećivanih stranica. Učitane stranice se mogu štampati ili snimiti na hard disk. Opcije za podešavanje izgleda stranice. Da bi bio u mogućnosti da prikaže stranicu, pretraživač mora da razume njen format. Kako bi se obezbedilo da svi pretraživači razumeju sve Web stranice, Web stranice se pišu u standardnom jeziku koji se zove HTML. Iako su pretraživači u osnovi HTML interpretatori, većina pretraživača poseduje brojne dodatne funkcije koji olakšavaju navigaciju na Web-u. Tipično, pretraživači imaju dugme za povratak na prethodnu stranicu, dugme za prelazak na sledeću stranicu i dugme za direktno učitavanje stranice koju je korisnik označio kao svoju početnu stranicu. Po pravilu, pretraživači poseduju podršku za bookmark-e, tj. kreiranje liste često posećivanih stranica. Takođe, učitane stranice se mogu štampati ili snimiti na hard disk. Pored toga, obično su dostupne brojne opcije za podešavanje izgleda stranice. Internet i Web tehnologije
8
Pomoćne aplikacije i plug-in-ovi
Web stranice osim HTML mogu sadržati: Dokumente u PDF formatu Fotografije u JPEG formatu Muziku u MP3 formatu Video u MPEG formatu ... bilo koji sadržaj u jednom od stotina različitih tipova fajlova i formata Pretraživač mora biti u stanju da prepozna i pravilno interpretira sve ove formate. Kako ? Ne sadrže sve stranice samo HTML. Stranica se može sastojati od dokumenta formatiranog u PDF formatu, ikone u GIF formatu, fotografije u JPEG formatu, muzike u MP3 formatu, videa u MPEG formatu, odnosno bilo kojeg sadržaja u jednom od stotina različitih tipova fajlova i formata. Pretraživač mora biti u stanju da prepozna i pravilno interpretira sve ove formate. Međutim, umesto neprekidnog proširivanja i prilagođenja interpretatora sve obimnijem skupu različitih tipova fajlova, kod većine pretraživača koristi se jedno opštije rešenje. Kada server vrati stranici, on zajedno sa stranicom šalje i dodatne informacije o stranici, kao što je MIME tip stranice. Stranice tipa text/html se prikazuju direktno, a to važi i za još nekoliko drugih ugrađenih tipova. Međutim, ako MIME tip stranice nije jedan od ugrađenih, pretraživač konsultuje svoju tabelu MIME tipova u kojoj pronalazi informaciju o tome kako prikazati stranicu datog tipa. Ova tabela pridružuje MIME tip odgovarajućem programu za prikazivanje. Postoje dve mogućnosti: plug-in-ovi (dodaci programu) i pomoćne (halper) aplikacije. Plug-in je programski modul kojeg pretraživač dobavlja iz jednog posebnog direktorijuma na hard disku i instalira kao svoje sopstveno, privremeno proširenje (kao što je ilustrovano na Sl. 6‑3(a)). Plug-in nije program za sebe, već se izvršava kao deo pretraživača i na taj način ima pravo pristupa tekućoj stranici i može je procesirati. Nakon što je plug-in obavio svoj zadatak, on se odstranjuje iz memorije pretraživača. Internet i Web tehnologije
9
Pomoćne aplikacije i plug-in-ovi
Web server, zajedno sa stranicom, šalje i dodatne informacije o stranici, kao što je MIME tip stranice. Stranice tipa text/html se prikazuju direktno u pretraživaču, a to važi i za još nekoliko drugih ugrađenih tipova. Za tipove koje ne podržava direktno, pretraživač konsultuje svoju tabelu MIME tipova u kojoj su MIME tipovima pridruženi odgovarajući programu za prikazivanje. Programi za prikazivanje (interperetaciju) spedifičnih formata, mogu biti: Plug-in-ovi (dodaci programu) Pomoćne (helper) aplikacije Kada server vrati stranici, on zajedno sa stranicom šalje i dodatne informacije o stranici, kao što je MIME tip stranice. Stranice tipa text/html se prikazuju direktno, a to važi i za još nekoliko drugih ugrađenih tipova. Međutim, ako MIME tip stranice nije jedan od ugrađenih, pretraživač konsultuje svoju tabelu MIME tipova u kojoj pronalazi informaciju o tome kako prikazati stranicu datog tipa. Ova tabela pridružuje MIME tip odgovarajućem programu za prikazivanje. Internet i Web tehnologije
10
Internet i Web tehnologije
Plug-in Programski moduli, koji se čuvaju u posebnom direktorijumu na hard disku, i koje, po potrebi, pretraživač instalira kao svoje sopstveno proširenje Plug-in nije program za sebe, već se izvršava kao deo pretraživača i na taj način ima pravo pristupa tekućoj stranici i može je procesirati Nakon što je plug-in obavio svoj zadatak, on se odstranjuje iz memorije pretraživača. Pre korišćenja plug-in mora biti instaliran u sistem Plug-in se preuzima (download) sa svog Web sajta Kopira u direktorijum za plug-in-ove i Registruje u sistem (MIME tip kojeg plug-in obrađuje se upisuje u tabelu MIME tipova) Plug-in je programski modul kojeg pretraživač dobavlja iz jednog posebnog direktorijuma na hard disku i instalira kao svoje sopstveno, privremeno proširenje programski modul kojeg pretraživač dobavlja iz jednog posebnog direktorijuma na hard disku i instalira kao svoje sopstveno, privremeno proširenje (kao što je ilustrovano na Sl. 6‑3(a)). Plug-in nije program za sebe, već se izvršava kao deo pretraživača i na taj način ima pravo pristupa tekućoj stranici i može je procesirati. Nakon što je plug-in obavio svoj zadatak, on se odstranjuje iz memorije pretraživača. Internet i Web tehnologije
11
Internet i Web tehnologije
Plug-in Svi plug-in-ovi, predviđeni za određeni pretraživač moraju posedovati identičan interfejs (skup procedura koje pretraživač može da poziva). Na taj način, pretraživač koristi sve plug-in-ove na identičan način. Pojava novog tipa fajla (tj. formata) zahteva kreiranje odgovarajućeg plug-in-a, ali ne zahteva bilo kakvu izmenu u pretraživaču Da bi pretraživač i plug-in mogli da se povežu, svi plug-in-ovi predviđeni za određeni pretraživač moraju posedovati identičan interfejs. Interfejs plug-in-a čini skup procedura koje pretraživač može da poziva. Na primer, svaki plug-in poseduje proceduru putem koje je pretraživač u mogućnosti da plug-in-u prenese podatke za procesiranje. Slično, i pretraživač poseduje interfejs koji je dostupan plug-in-ovima, a putem kojeg oni mogu da zahtevaju izvesne usluge od pretraživača. Na primer, tipična procedura ovog interfejsa je ona putem koje je plug-in-u omogućeno da ispiše poruku u statusnoj liniji pretraživača ili da zatraži od pretraživača vrednosti izvesnih parametara. Postojanje unapred definisanih interfejsa omogućava da pretraživač koristi sve plug-in-ove na identičan način. To praktično znači da pojava novog tipa fajla (tj. formata) zahteva kreiranje odgovarajućeg plug-in-a, ali ne zahteva bilo kakvu izmenu u pretraživaču. Internet i Web tehnologije
12
Internet i Web tehnologije
Pomoćne aplikacije Kompletni programi koji se izvršavaju nezavisno od pretraživača Adobe Acrobat Reader, Microsoft Word, ... Komunikacija pretraživač - pomoćna aplikacija: Ne koristi interfejs, već Pomoćnoj aplikaciji se prosleđuje ime fajla koji treba obraditi Pomoćna aplikacija otvara naznačeni fajl i prikazuje njegov sadržaj. Drugi način za proširenje pretraživača je zasnovan na pomoćnim aplikacijama. Pomoćne aplikacije su kompletni programi koji se izvršavaju nezavisno od pretraživača (Sl. 6‑3(b)). Pošto se radi o zasebnom programu, komunikacija između pretraživača i pomoćne aplikacije se ne ostvaruje putem interfejsa. Obično, pomoćnoj aplikaciji se prilikom pokretanja prosleđuje ime fajla u koji je smešten sadržaj koji treba obraditi. Pomoćna aplikacija otvara naznačeni fajl i prikazuje njegov sadržaj. Tipično, pomoćne aplikacije su obimni programi koji egzistiraju nezavisno od pretraživača, kao što je Adobe Acrobat Reader, program za prikazivanje PDF fajlova, ili Microsoft Word. Internet i Web tehnologije
13
Internet i Web tehnologije
Pomoćne aplikacije Koriste MIME tip application application/pdf za PDF fajlove ili application/msword za Word fajlove. U Windows sistemu, program koji se instalira na računar ujedno i registruje MIME tipove koje želi da obrađuje. Koflikt kada u sistemu postoji više prikazivača za isti MIME podtip (npr. video/mpg). Poslednji program koji je registrovan prepisuje postojeću asocijaciju ˝MIME tip - pomoćna aplikacija˝ i dati MIME tip/podtip vezuje za sebe. Većina pomoćnih aplikacija koristi MIME tip application. Definisan je veliki broj podtipova. Na primer, application/pdf za PDF fajlove ili application/msword za Word fajlove. Na ovaj način URL može direktno da ukazuje na PDF ili Word fajl (npr. a kada korisnik klinke na URL, Acrobat ili Word se automatski startuje i preuzima na sebe obradu preuzetog fajla. Na ovaj način, pretraživač može biti konfigurisan za praktično neograničeni broj tipova dokumenata, a da to, slično kao kod plug-in-ova, ne zahteva bilo kakve promene u samom pretraživaču. Web pretraživač na računaru tipičnog korisnika konfigurisan je sa tipično više desetina kombinacija tip/podtip, a novi tipovi i podtipovi se obično dodaju uvek kada se instalira neki novi program. Naime, u Windows sistemu, program koji se instalira na računar ujedno i registruje MIME tipove koje želi da obrađuje. Međutim, ovakav mehanizam vodi do koflikta kada u sistemu postoji više prikazivača za isti MIME podtip (npr. video/mpg). U takvim situacijama, poslednji program koji je registrovan prepisuje postojeću asocijaciju ˝MIME tip - pomoćna aplikacija˝ i dati MIME tip/podtip vezuje za sebe. Zbog toga, instalacija novog programa može kao posledicu imati promenu načina na koji pretraživač obrađuje postojeće tipove dokumenata. Internet i Web tehnologije
14
Otvaranje lokalnih fajlova
Pretraživači mogu otvarati i lokalne fajlove (sa hard diska). Lokalnim fajlovima nisu pridruženi MIME tipovi. Kako pretraživač zna koji plug-in ili pomoćnu aplikaciju da pokrene ? Na osnovu ekstezije u imenu fajla. (npr. za nesto.doc se otvara Word) Pretraživači mogu otvarati i lokalne fajlove (sa hard diska), a ne samo one preuzete sa udaljenih Web servera. Pošto lokalnim fajlovima nisu pridruženi MIME tipovi, neophodan je način kako će pretraživač odrediti koji plug-in ili pomoćnu aplikaciju upotrebiti za obradu konkretnog lokalnog fajla. Ovaj problem se prevazilazi na sledeći način. Pomoćne aplikacije, pored toga što su u sistemu registrovane za obradu MIME tipa, mogu takođe biti registrovane i za obradu fajlova sa nekim specifičnim nastavkom (ekstenzijom). U tipičnoj konfiguraciji, dupli klik na fajl nesto.pdf, pokrenuće Acrobat u kome će sadržaj fajla biti prikazan. Slično, dupli klik na fajl nešto.doc dovešće do otvaranja ovog fajla u programu Word. Pojedini pretraživači koriste MIME tipove, ekstenzije fajlova, pa čak i informacije uzete iz samog fajla kako bi odredili o kom tipu fajla se radi i pozvali odgovarajuću pomoćnu aplikaciju ili učitali odgovarajući plug-in. Slično kao kod asocijacija za MIME tipove, i kod asocijacija za ekstenzije fajlova može doći do konflikta između programa koji su ˝voljni˝ da obrađuju fajlove sa istim nastavkom. Na primer, u sistemu može postojati više programa koji su u mogućnosti da procesiraju .mpg fajlove. Tipično, u toku instalacije novog programa, korisniku se postavlja pitanje da li želi da program kojeg instalira registruje za ponuđene ekstenzije. Ukoliko je odgovor potvrdan, postojeće asocijacije će biti prepisani novim. Internet i Web tehnologije
15
Internet i Web tehnologije
Problem sigurnosti Preuzeti fajlovi sa nastavkom .exe se ne obrađuju plug-in-om ili pomoćnom aplikacijom veće se direktno izvršavaju .exe može biti virus ! Pretraživač može biti podešen da ne startuje automatski nepoznate programe ili da konsultuje korisnika pre nego što pokrene preuzeti program Mogućnost proširenja pretraživača velikim brojem novih tipova značajno olakšava korišćenje Web-a, ali sa druge strane, može da dovede i do problema koji se tiču sigurnosti. Na primer, kada Internet Explorer pribavlja fajl sa nastavkom .exe, on zaključuje da se radi o izvršnom programa kome zbog toga nije potreba pomoćna aplikacija. Normalna akcija u ovakvoj situaciji je pokretanje preuzetog programa. Međutim, to može biti ozbiljna pretnja sigurnosti sistema jer preuzeti program može sadržati virus. Da bi se predupredile ovakve situacije, Internet Explorer može biti podešen da ne startuje automatski nepoznate programe ili da konsultuje korisnika pre nego što pokrene preuzeti program Internet i Web tehnologije
16
Internet i Web tehnologije
Web server Web server - program koji neprekidno, u petlji, obavlja sledeći niz aktivnosti: Prihvata TCP konekciju od klijenta (pretraživača). Preuzima ime zahtevanog fajla. Pronalazi fajl (na svom hard disku). Šalje fajl klijentu. Zatvara TCP konekciju. Plus brojne dodatne mogućnosti Internet i Web tehnologije
17
Internet i Web tehnologije
Web server Performanse - svaki zahtev upućen od strane klijenta, podrazumeva pristup hard disku radi uzimanja traženog fajla. Broj opsluženih zahteva zavisi od vremena pristupa hard disku. Npr. za vreme pristupa hard disku od 5 ms, najviše 200 zahteva/s Isuviše malo za Web sajtove sa velikim brojem pristupa ! Uočimo da svaki zahtev upućen od strane klijenta, podrazumeva pristup hard disku radi uzimanja traženog fajla. Kao posledica toga, broj zahteva koje Web server može da opsluži u sekundi direktno je određen vremenom pristupa hard disku. Prosečno vreme pristupa hard diskova velike brzine rada iznosi oko 5 ms, što postavlja ograničenje na najviše 200 zahteva/s (i manje ako se često čitaju veliki fajlovi). Za Web sajtove sa velikom brojem istovremenih posetioca 200 zahteva/s je isuviše malo. Internet i Web tehnologije
18
Internet i Web tehnologije
Web server Kako obraditi veći broj zahteva u sekundi ? Prvo rešenje - keš: U operativnoj memoriji servera kreira se keš sa n najskorije zahtevanih fajlova. Ako je traženi fajl u kešu, tada nije potrebno pristupati hard disku jer se fajl može uzet direktno iz memorije. Jedno poboljšanje koje se koristi kod svih Web servera podrazumeva da se u operativnoj memoriji računara kreira keš sa n najskorije korišćenim fajlovima. Pre nego što fajl potraži na disku, server proverava keš. Ako je fajl u kešu, tada nije potrebno pristupati hard disku jer se fajl može uzet direktno iz memorije. Iako je za efikasno keširanje potrebno rezervisati relativno veliku količinu operativne memorije kao i dodatno CPU vreme radi provere da li se fajl nalazi u kešu, ušteda u vremenu obrade jednog zahteva je obično dovoljno velika da kompenzuje dodatni trošak. Internet i Web tehnologije
19
Web server - multithreading server
Multithreading (rad sa više niti u isto vreme) Pristupni modul prihvata dolazne zahteve i prosleđuje ga jednom od k pozadinskih modula (svaki modul jedna nit) Dok su jedan ili više pozadinskih modula blokirani čekajući na završetak operacije čitanja fajla sa diska (i zbog toga ne troše CPU vreme), ostali moduli mogu biti aktivno upošljeni na obradi novih zahteva Ima smisla ako u sistemu postoji više od jednog hard diska Propusna moć multithread Web severa sa k pozadinskih modula u sistemu sa k diskova, može biti k puta veća u odnosu na single-thread server i jedan disk Sledeći način za ubrzanje rada Web servera predviđa uvođenje multithreading[1]. Kod takvog rešenja, server se sastoji iz jednog front-end (isturenog) pristupna modula koji prihvata sve dolazne zahteve i k pozadinskih modula koji obrađuju zahteve (Sl. 6‑4). Svih k+1 thread-ova pripada istom procesu i imaju pristup kešu. Kada zahtev stigne, pristupni modul ga prihvata i kreira jedan kratak zapis sa podacima o zahtevu kojeg predaje jednom od trenutno raspoloživih pozadinskih procesa. Pozadinski modul najpre proverava da je fajl koji traži prisutan u kešu i ako jeste, u zapis upisuje pokazivač na fajl. Ako fajl nije u kešu, pozadinski modul započinje operaciju prenosa fajla sa diska u keš (uz eventualno izbacivanje nekih keširanih fajlova, ako u kešu nema dovoljno prostora). Nakon što je fajl prebačen u keš, zapis sa upisanim pokazivačem se vraća pristupnom moduli koji preuzima fajl iz keša i prosleđuje ga klijentu koji je uputio zahtev. [1] Engleska reč thread se prevodi kao nit, a pojam multithreading kao višenitni rad ili rad sa više niti u isto vreme. Procesi i niti su dva osnovna mehanizma za paralelno (konkurentno) izvršavanje programa. Programi koji imaju potrebu da istovremeno obavljaju više poslova u isto vreme mogu za svaki takav zadatak da kreiraju jedan proces koji će se izvršvati uporedo sa drugim procesima. Svaki proces poseduje svoju memoriju za čuvanje svojih podataka. Nit je u osnovi sličan procesu, s tom razlikom da ne poseduje svoju spostvenu memoriju već je deli sa svim ostalim nitima kreiranim u istom programu. Internet i Web tehnologije
20
Web server - multithreading server
U zavisnosti od tipa pristiglog zahteva, pozadinski modul obavlja neki podskup sledećeg niza aktivnosti: Određivanje imena zahtevane Web stranice iz URL-a. Provera autentičnosti klijenta Provera prava pristupa klijenta. Provera prava pristupa Web stranici. Provera keša. Pribavljanje zahtevane stranice sa diska. Određivanje MIME tipa koji će biti sadržan u odgovoru koji se vraća klijentu. Slanje odgovora klijentu. Kreiranje zapisa u log fajlu. Internet i Web tehnologije
21
Web server - farma servera
Za Web sajtove sa veoma velikom brojem pristupa u sekundi. Više čvorova (računara) sa više hard diskova Svi čvorovi poseduju sve Web stranice Pristupni modul raspodeljuje zahteve rezličitim čvorovima Ne postoji zajednički keš traženi fajl prisutan u kešu nekog čvora, a da zahtev je prosleđen čvoru kod kojeg se fajl mora pročitati sa diska. Zato pristupni modul vodi evidenciju o tome kome je poslao svaki zahtev, a naredne zahteve koji odnose na istu stranicu šalje istom čvoru U slučajevima kada je broj zahteva koji se upućuje Web serveru u jednoj sekundi veoma veliki, jedan CPU neće biti u stanju da obradi sve zahteve, bez obzira na broj hard diskova koji se koriste u paraleli. U takvim situacijama koristi se model farme servera. Kod ovog modela, umesto jednog koristi se više čvorova (računara), od kojih svaki eventualno poseduje više diskova (Sl. 6‑5). Pretpostavka je da svi računari uključeni u farmu servera poseduju sve Web stranice. Pristupni modul i dalje prihvata zahteve, ali ih sad distribuira različitim računarima, a ne nitima u okviru jednog računara. Na ovaj način, smanjuje se opterećenje pojedinačnih računara. Jedan problem koji se javlja kod farme servera posledica je nepostojanja zajedničkog keša, jer svaki čvor poseduje svoju sopstvenu memoriju. Naime, može se desiti da je traženi fajl prisutan u kešu nekog čvora, a da je zahtev prosleđen čvoru kod kojeg se fajl mora pročitati sa diska. U takvoj situaciji, vreme obrade zahteva je duže nego što je to neophodno. Takođe, nakon obrađenog zahteva isti fajl će se naći u dva keša. Jedan način za ublažavanje gubitka u performansama zbog nepostojanja zajedničkog keša 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. Na taj način, pojedinačni čvorovi se ˝specijalizuju˝ za pojedine stranice tako da se ukupni raspoloživi prostor u kešu ne troši neracionalno za čuvanje svakog fajla u svakom kešu. Internet i Web tehnologije
22
Internet i Web tehnologije
URL URL-u (Uniform Resource Locator - uniformni lokator resursa) - mehanizma za imenovanje i lako lociranje stranica Daje odgovor na pitanja: Koje je ime stranice? Gde se stranica nalazi? Kako se stranici može pristupiti? Svaka stranica na Web-u poseduje URL, kao svoje svetski jedinstveno ime Sastoji se iz tri dela: Protokol (ili šema) - kao se stranici pristupa; DNS ime računara na kome je stranica locirana i Lokalno ime fajla u kojem je stranica zapamćena Internet i Web tehnologije
23
URL http://es.elfak.ni.ac.yu/iw/iw.htm
Protokol Host Ime fajla: relativna putanja + ime samog fajla Deo za ime fajla može biti izostavljen: Web server se preusmerava na glavnu stranicu Web sajta Deo za ime fajla može da sadrži putanju do direktorijuma, ali ne i samo ime fajla Web server se preusmerava na podrazumevani fajl u tom direktorijumu Internet i Web tehnologije
24
Internet i Web tehnologije
URL Deo za protokol - sadrži ime aplikacionog protokola koji se koristi za pristup stranici. Nije ograničen samo na http Ime Koristi se za Primer http Hipertekst (HTML) ftp FTP ftp://ftp.elfak.ni.ac.yu file Lokalni fajl file:// C:\Courses\IWT\uwt.doc news Newsgroup news:comp.os.minix gopher Gopher gopher://gopher.tc.umn.edu/11/Libraries mailto slanje elektronske pošte telnet Udaljeni login telnet:// Internet i Web tehnologije
25
Internet i Web tehnologije
Cookie Web ne koristi koncept stanja. (Kaže se da je Web stateless (bez stanja) ili bez memorije). Kod Web-a ne postoji sesija: Pretraživač šalje zahtev, a server vraća nazad fajl. Nakon obavljene transakcije, server ˝zaboravlja˝ da je ikada komunicirao sa tim konkretnim klijentom. Nedovoljno za nove primene Kako će Web server znati da li zahtev potiče od registrovanog ili neregistrovanog korisnika ? Web portali (npr. Yahoo) kod kojih svaki korisnik može da konfiguriše sadržaj početne stranice birajući informacije koje će biti prikazane uvek kada učita stranicu . . . U osnovi, Web ne koristi koncept stanja. (Kaže se da je Web stateless (bez stanja) ili bez memorije). Kod Web-a ne postoji sesija. Pretraživač šalje zahtev, a server vraća nazad fajl. Nakon obavljene transakcije, server ˝zaboravlja˝ da je ikada komunicirao sa tim konkretnim klijentom. U prvom periodu razvoja Web, kada se Web gotovo isključivo koristio za pribavljanje javno dostupnih dokumenata, ovakav (stateless) način rada bio je u potpunosti zadovoljavajući. Međutim, sa naglim širenjem Web i porastom njegove popularnosti, model zasnovan na nezavisnim transakcijama više nije mogao da zadovolji sve potrebe novih primena. Na primer, neki Web sajtovi zahtevaju od korisnika da se registruju pre nego što im se dozvoli korišćenje dostupnih usluga sajta. Postavlja se pitanje, kako će Web server znati da li zahtev potiče od registrovanog ili neregistrovanog korisnika, pa da na osnovu toga dozvoli ili zabrani pristup nekim svojim stranicama. Drugi primer su Web portali (npr. Yahoo) kod kojih svaki korisnik može da konfiguriše sadržaj početne stranice birajući informacije koje će biti prikazane uvek kada učita stranicu (npr. vremenska prognoza, kurs, sportski rezultati...). Međutim, kako će Web server znati kako da prilagodi stranicu korisniku, ako ne zna koji korisnik je uputio zahtev. Internet i Web tehnologije
26
Internet i Web tehnologije
Cookie Da li je dovoljno da sever vodi evidenciju od IP adresama sa kojih se upućuju zahtevi ? Ne IP adrese identifikuje računara, ali ne i korisnika koji trenutno radi na računaru. Mnogi korisnici koriste dinamičke IP adrese Rešenje: cookie Mali (najviše 4KB) fajl (ili string) kojeg server dostavlja klijentu zajedno sa traženom stranicom Kada se neredni put obraća serveru, kijent zajedno sa zahtevom šalje i cookie Na prvi pogled, čini se da je dovoljno da server vodi evidenciju o IP adresama sa kojih se upućuju zahtevi za stranicama. Međutim, ova ideja nije dobra. Pre svega, mnogi korisnici koriste računare koje dele sa drugim korisnicima. IP adrese može da identifikuje računara, ali ne i korisnika koji trenutno radi na računaru. Drugo, mnogi korisnici (pre svega kućni) Internetu pristupaju putem provajdera Internet usluga (npr. pomoću modema) od kojih, nakon konektovanja, dobijaju IP adresu na privremeno korišćenje,koja ne mora biti ista kao IP adresa koju su koristili prilikom prethodnog konektovanja. Da bi se opisani problem rešio, razvijena je tehnika pod nazivom cookies (kolačići). Kada klijent zahteva Web stranicu, server može, zajedno sa traženom stranicom, da mu doturi i dodatne informacije, koje između ostalog mogu sadržati i cookie - mali (najviše 4KB) fajl (ili string). Cookie može sadržati do pet polja (slika). Polje Domain ukazuje na domen iz koga cookie potiče (domen servera). Polje Path (putanja) sadrži putanju u strukturi direktorijuma servera koja ukazuje na deo njegovog stabla direktorijuma unutar kojeg sve stranice mogu koristiti cookie. Kosa crta ˝/˝ u ovom polju znači celokupno stablo. Internet i Web tehnologije
27
Internet i Web tehnologije
Cookie Sadrži do pet polja: (Domain, Path, Content, Expires, Secure) Domain - domen iz kojeg cookie potiče (domen servera) Path - (putanja) sadrži putanju u strukturi direktorijuma servera koja ukazuje na deo njegovog stabla direktorijuma unutar kojeg sve stranice mogu koristiti cookie. Content (sadržaj) oblika ime = vrednost. Ime i vrednost mogu biti bilo koja informacija koju server želi da uvrsti u cookie. Expires sadrži datum i vreme kada prestaje važnost cookie-ja. Ako ovo polje ne postoji, pretraživač uništava cookie prilikom svog zatvaranja (neperzistentni cookie). Secure, ako je postavljeno na Yes, nalaže pretraživaču da cookie može da vrati serveru samo u šifrovanom obliku Polje Domain ukazuje na domen iz koga cookie potiče (domen servera). Polje Path (putanja) sadrži putanju u strukturi direktorijuma servera koja ukazuje na deo njegovog stabla direktorijuma unutar kojeg sve stranice mogu koristiti cookie. Kosa crta ˝/˝ u ovom polju znači celokupno stablo. Sadržaj polje Content (sadržaj) je oblika ime = vrednost. Ime i vrednost mogu biti bilo koja informacija koju server želi da uvrsti u cookie. Polje Expires sadrži datum i vreme kada prestaje važnost cookie-ja. Ako ovo polje ne postoji, pretraživač uništava cookie prilikom svog zatvaranja. Ovakav cookie se zove neperzistentni cookie. Ukoliko su datum i vreme sadržani u cookie-ju, za cookie se kaže da je perzistentan i da će ostati na klijentu sve do isteka navedenog roka. Konačno, polje Secure, ako je postavljeno na Yes, nalaže pretraživaču da cookie može da vrati serveru samo u šifrovanom obliku. Ova mogućnost se koristi kod aplikacija za elektronsko poslovanje u bankovnim transakcijama i drugim aplikacijama koje zahtevaju zaštitu informacija. Internet i Web tehnologije
28
Internet i Web tehnologije
Cookie Kako se koristi: Pretraživač, pre nego što pošalje zahtev za nekom stranicom, proverava da li u svom direktorijumu, predviđenom za cookie-je postoji cookie ranije poslat iz domena kome će zahtev biti upućen. Server preuzima cookie i interpretira njegov sadržaj na način koji želi. Cookie-ji se koriste na sledeći način. Pretraživač, pre nego što pošalje zahtev za nekom stranicom, proverava da li u svom direktorijumu, predviđenom za cookie-je postoji cookie ranije poslat iz domena kome će zahtev biti upućen. Ako takav cookie postoji, pretraživač umeće sadržaj odgovarajućeg cookie-ja u poruku zahteva koju šalje željenom serveru. Server preuzima cookie i interpretira njegov sadržaj na način koji želi. Internet i Web tehnologije
29
Cookie - Primer (on-line knjižara)
Prilikom prve posete sajtu za on-line prodaju knjiga, od korisnika se zahteva da izabere jednu ili više oblasti za koje je zainteresovan (tehnika, beletristika, ...) Server kreira cookie sa sadržajem oblast1=tehnika oblast2=naucna_fantastika ... Server šalje cookie klijentu. Pretraživač izdvaja cookie iz odgovora i smešta ga u odgovarajući direktorijum. Kad god kasnije korisnik pristupi ovom sajtu, pretraživač zajedno sa zahtevom šalje serveru i odgovarajući cookie Na osnovu sadržaja cookie-a, Web server kreira, i vraća nazad stranicu koja sadrži spisak novih knjiga iz oblasti za koje je korisnik zainteresovan. Jedan mogući scenario korišćenja cookie-ja je sledeći. Prilikom prve posete sajtu za on-line prodaju knjiga, od korisnika se zahteva da se registruje, tako što će navesti svoje korisničko ime i izabere jednu ili više oblasti za koje je zainteresovan (tehnika, beletristika, ).. Nakon obavljene registracije, server upisuje unete podatke u svoju bazu podataka, a onda kreira cookie sa sadržajem login=korisničko_ime i šalje ga klijentu. Pretraživač izdvaja cookie iz odgovora i smešta ga u odgovarajući direktorijum. Kad god kasnije korisnik pristupi ovom sajtu, pretraživač zajedno sa zahtevom šalje serveru i odgovarajući cookie. Na osnovu sadržaja cookie-a, server saznaje ime korisnika i koristi ga kao ključ za pretragu baze podataka iz koje čita i ostale podatke tog korisnika. Na osnovu ovih podataka, Web server kreira, i vraća nazad stranicu koja sadrži spisak novih knjiga iz oblasti za koje je korisnik zainteresovan. Internet i Web tehnologije
30
Statički Web dokumenti
U svom najjednostavnijem obliku, Web stranice su statičke - datoteke smeštene na nekom serveru koje ˝čekaju˝ da budu zatražene i koje se, bez bilo kakvih izmena, dostavljaju klijentu. HTML - jezik za kreiranje statičkih Web stranica Internet i Web tehnologije
31
Internet i Web tehnologije
HTML HTML (HyperText Markap Language - hipertekstualni markerski jezik) Za kreiranje Web stranica koje sadrže tekst, grafiku i hiperveze ka drugim Web stranicama Markap language - znači da HTML služi za opis načina na koji su dokumenti formatirani, odnosno kako će biti prikazani u Web pretraživaču. HTML definiše skup komandi za formatiranje koje, ugrađene u prvobitni tekst dokumenta, daju uputstva za prikazivanje sadržaja dokumenta. Web stranice se pišu u jeziku koji se zove HTML (HyperText Markap Language - jezik za označavanje hiperteksta). Pomoću HTML-a projektant (dizajner) Web stranica može da kreira Web stranice koje sadrže tekst, grafiku i hiperveze ka drugim Web stranicama. Pojam markap language (jezik za označavanje) znači da HTML služi za opis načina na koji su dokumenti formatirani, odnosno kako će biti prikazani u Web pretraživaču. HTML definiše skup komandi za formatiranje koje, ugrađene u prvobitni tekst dokumenta, daju uputstva za prikazivanje sadržaja dokumenta. Internet i Web tehnologije
32
Internet i Web tehnologije
HTML - tagovi Tag Opis <html> ... </html> Deklariše da je Web stranica pisana u HTML-u <head> ... </head> Omeđuje zaglavlje stranice <title> ... </title> Definiše naslov stranice (ne prikazuje se na stranici) <body> ... </body> Omeđuje telo stranice <h n> ... </h n> Omeđuje naslov nivoa n <b> ... </b> Postavlja ... u bold <i> ... </i> Postavlja ... u italik <center> ... </center> Horizontalno centrira ... na stranici <ul> ... </ul> Omeđuje neuređenu listu <ol> ... </ol> Omeđuje uređenu listu <il> ... </il> Omeđuje jednu stavku uređene liste <br> Umeće novi red (prelom linije) <p> Započinje novi paragraf <hr> Umeće horizonalnu liniju po celoj dužini stranice <img src = “...“> Prikazuje sliku <a href=“...“> ... </a> Definiše hipervezu Internet i Web tehnologije
33
Internet i Web tehnologije
HTML <html> <head><title> Primer stranice sa tabelom </title></head> <body> <table border=1 rules=all> <caption> Razlike izmedju verzija HTML-a </caption> <col align = left> <col align = center> <tr><th>Stavka<th>HTML 1.0<th>HTML 2.0<th>HTML 3.0 <th>HTML 4.0</tr> <tr><th>Hiperveze <td> x <td> x <td> x <td> x </tr> <tr><th>Slike <td> x <td> x <td> x <td> x </tr> <tr><th>Liste <td> x <td> x <td> x <td> x </tr> <tr><th>Aktivne mape i slike<td> <td>x<td>x<td>x</tr> <tr><th>Forme<td>   <td> x <td> x <td> x </tr> <tr><th>Formule<td>   <td>   <td> x <td> x </tr> <tr><th>Tulbarovi<td>   <td> <td> x <td> x </tr> <tr><th>Tabele<td> <td> <td>x<td>x</tr> <tr><th>Ugradnja objekata<td> <td> <td> <td>x </tr> <tr><th>Skripte<td> <td> <td> <td>x</tr> </table> </body> </html> Internet i Web tehnologije
34
Internet i Web tehnologije
HTML - Forme HTML 1.0 je omogućavo samo jednosmernu komunikaciju. Korisnik je mogao da dobije traženu stranicu od servera, ali je teško mogao da vrati nazad povratnu informaciju. U verziji HTML 2.0 uvedene su forme Forme sadrže box polja (ili dugmad) koja korisnik može da popuni traženim podacima ili učini izbor između više ponuđenih opcija i unetu informaciju vrati vlasniku stranice. Box-ovi: tag <input> u različitim oblicima: Polje za unos teksta, Kvadrati za štikliranje, Radio dugme Dugme Submit Internet i Web tehnologije
35
Internet i Web tehnologije
HTML - Forme <html> <head><title> FORMA ZA NARUCIVANJE KNJIZARE CENTAR</title></head> <body> <h1> Forma za narucivanje knjiga </h1> <form ACTION=" method=POST> <p> Ime <input name="kupac" size=46></p> <p> Ulica<input name="ulica" size=20> Mesto <input name="mesto" size=14></p> <p> Br. kreditne kartice <input name="cardno" size=10> Istice <input name="istice" size=4> MASTER <input name="cc" type=radio value="mastercard"> VISA <input name="cc" type=radio value="visacard"></p> <p>Narucujem knjigu <input name="knjiga" size=46></p> <p>Povez Tvrdi <input name="povez" type=radio value="tvrdi"> Meki <input name="povez" type=radio value="meki"> Dostava preko brze poste <input name="express" type=checkbox></p> <p><input type=submit value="narucivanje"></p> Hvala na poverenju. </form> </body> </html> Polje za unos teksta Radio dugme Kvadrat za štikliranje Dugme Submit Internet i Web tehnologije
36
Internet i Web tehnologije
HTML - Forme Kada korisnik klikne na Submit dugme, pretraživač pakuje informacije prikuljene sa forme u jednu dugačku liniju i šalje je serveru na obradu: kupac=Petar+Petrovic&ulica=Beogradska+14&mesto=Nis&cardno= &istice=9/07&cc=mastercard&povez=tvrdi&express=on Server tumači dobijeni string i preduzme odgovarajuće akcije. Kada korisnik klikne na Submit dugme, pretraživač pakuje informacije prikuljene sa forme u jednu dugačku 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 može biti oblika: kupac=Petar+Petrovic&ulica=Beogradska+14&mesto=Nis&cardno= &istice=9/07&cc=mastercard&povez=tvrdi&express=on Na serveru je da protumači dobijeni string i preduzme odgovarajuće akcije. Internet i Web tehnologije
37
Internet i Web tehnologije
XML i XSL HTML, sa ili bez formi, ne bavi se struktuiranjem podataka na Web stranici niti razdvaja sadržaj od formatiranja. Nove aplikacije, novi zahtevi Zamislimo program koji pretražuje Web u potrazi za najjeftinijom knjigom ili CD-om. 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 teško moći da zaključi gde se na stranici nalazi tražena informacija HTML, sa ili bez formi, ne bavi se strukturom Web stranica niti razdvaja sadržaj 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 sadržaja od načina prikazivanja (formatiranja). Na primer, zamislimo program koji pretražuje Web u potrazi za najjeftinijom knjigom ili CD-om. 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 teško moći da zaključi gde se na stranici nalazi tražena informacija. Iz ovog i sličnih razloga, organizacija W3C, koja se bavi razvojem Web-a i standardizacijom protokola za Web, razvila je poboljšanje HTML-a koje omogućava struktuiranje Web stranice na način koji olakšava automatsku obradu njenog sadržaja. Konkretno, uvedena su dva nova jezika. Prvi, XML (eXtesible Markup Language) opisuje Web sadržaj na struktuirani način, dok drugi, XSL (eXtensible Style Language) opisuje formatiranje Web stranice nezavisno od njenog sadržaja. S obzirom da se radi o obimnim i složenim jezicima, u nastavku će biti izložena samo njihova osnovna ideja. Internet i Web tehnologije
38
Internet i Web tehnologije
XML i XSL W3C - organizacija koja se bavi razvojem Web-a i standardizacijom protokola za Web uvela je Dva nova jezika: XML (eXtesible Markup Language) . opisuje Web sadržaj na struktuirani način XSL (eXtensible Style Language) opisuje formatiranje Web stranice nezavisno od njenog sadržaja Iz ovog i sličnih razloga, organizacija W3C, koja se bavi razvojem Web-a i standardizacijom protokola za Web, razvila je poboljšanje HTML-a koje omogućava struktuiranje Web stranice na način koji olakšava automatsku obradu njenog sadržaja. Konkretno, uvedena su dva nova jezika. Prvi, XML (eXtesible Markup Language) opisuje Web sadržaj na struktuirani način, dok drugi, XSL (eXtensible Style Language) opisuje formatiranje Web stranice nezavisno od njenog sadržaja. S obzirom da se radi o obimnim i složenim jezicima, u nastavku će biti izložena samo njihova osnovna ideja. Internet i Web tehnologije
39
Internet i Web tehnologije
Primer XML dokumenta <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="book_list.xsl"?> <book_list> <book> <title> Computer Networks, 4/e </title> <author> Andrew S. Tanenbaum </author> <year> 2001 </year> </book> <title> Internetworking with TCP/IP, Vol I</title> <author> Douglas E. Comer </author> <year> 2000 </year> <title> Data Communications and Networking</title> <author> Behrouz A. Forouzan, 2/e </author> </book_list> Tagovi ukazuju na smisao informacije Laka pretraga po različitim kriterijumima Sadrži podatke, ali ne kazuje ništa o tome kako prikazati podatke Internet i Web tehnologije
40
Internet i Web tehnologije
XML Omogućava kreiranje složenijih struktura: Višestruka polja (npr. više od jednog autora knjige) Opciona polja (npr. naslov pratećeg CD-ROM-a) Alternativna polja (npr. URL knjižare, ako knjiga nije rasprodata ili URL sajta za aukcijsku prodaju, ako je knjiga rasprodata) Polja se mogu deliti na podpolja: <author> <first_name> Andrew </first_name> <last_name> Tanenbaum </last_name> </author> Napomenimo da XML omogućava kreiranje mnogo složenijih struktura od one prikazane na Sl. 6‑11. Na primer, dozvoljeno je da struktura sadrži višestruka polja (npr. više od jednog autora knjige), opciona polja (npr. naslov pratećeg CD-ROM-a), alternativna polja (npr. URL knjižare, ako knjiga nije rasprodata ili URL sajta za aukcijsku prodaju, ako je knjiga rasprodata). Internet i Web tehnologije
41
Primer XSL dokumenta <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <html> <body> <table border="2"> <tr> <th> Title </th> <th> Author </th> <th> Year </th> </tr> <xsl:for-each select="book_list/book"> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="year"/></td> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Definiše način prikazivanja podataka iz XML dokumenta Početak HTML dokumenta Naslovna vrsta tabele Vrste sa podacima Objašnjava kako XML dok. transformisati u HTML dok. Kraj HTML dokumenta Internet i Web tehnologije
42
Internet i Web tehnologije
Primer XSL dokumenta <xsl:for-each select="book_list/book"> <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> Slično for petlji iz C-a Pretraživač jedanput kroz petlju za svaku knjigu iz pridruženog XML dokumenta i u svakom prolasku generiše pet HTML linija oblika: <tr> naslov, autor, godina </tr> popunjenu podacima o jednoj knjizi. je analogna for naredbi iz C-a, gde prva linija odgovara zaglavlju, pet unutrašnjih linija telu, a poslednja oznaci za kraj for petlje. Kada pretraživač, koji interpretira dati XSL fajl, on prolazi jedanput kroz petlju za svaku knjigu iz pridruženog XML dokumenta i u svakom prolasku generiše pet linija oblika: <tr> naslov, autor, godina </tr>. Drugim rečima, pretraživač generiše HTML tabelu popunjenu podacima o svim knjigama iz XML dokumenta. Krajnji rezultat je isti kao da se prikazuje HTML stranica koja sadrži tabelu popunjenu podacima o tri knjige. Međutim, XML/XSL predstavlja daleko fleksibilnije rešenje. 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 proširiti definiciju tabele novim vrstama). Sa druge strane, ako treba promeniti način prikazivanja potrebno je modifikovati XSL fajl, ali ne i XML dokument. Drugo, program koji na Web stranici traži informacije o nekoj knjizi, analizira XML dokument. S obzirom da XML dokument sadrži tagove koji ukazuju na smisao podataka i nije opterećen tagovima za formatiranje, njega je mnogo jednostavnije analizirati od odgovarajućeg HTML dokumenta. Internet i Web tehnologije
43
Internet i Web tehnologije
XML/XSL XML + HTML XSL XML/XSL predstavlja daleko fleksibilnije rešenje od HTML Ako je potrebno u spisak uvrstiti nove knjige, dovoljno je u XML dokument dopisati nova <book> polja; XSL ostaje neizmenjen Ako treba promeniti način prikazivanja potrebno je modifikovati XSL fajl, ali ne i XML dokument Program koji na Web stranici traži informacije o nekoj knjizi, analizira XML dokument. Internet i Web tehnologije
44
Dinamički i aktivni Web dokumenti
Ne postoje u unapred definisanom obliku, već se kreiraju na zahtev. Dinamički dokument - Web server, po prijemu zahteva, pokreće odgovarajući aplikacioni program koji kreira dokument, a klijentu vraća izlaz programa. Aktivni dokument - Web stranica osim statičkog sadržaja (HTML, slike i sl.) sadrži i program koji se nakon učitavanja stranice izvršava na strani klijenta (u pretraživaču) Model Web-a opisan u prethodnim sekcijama podrazumeva da klijent šalje serveru ime fajla, a server odgovara slanjem klijentu sadržaja traženog fajla. U početnom periodu razvoja Web-a celokupan sadržaj dostupan na Web-u bio je statički (sadržan u fajlovima koji se bez bilo kakve modifikacije transportuju do klijenta). Međutim, u novije vreme, sadržaj koji se može preuzeti sa Web-a postaje u sve većoj meri dinamički, tj. ne postoji u unapred definisanom obliku, već se kreira na zahtev. Generisanje sadržaja Web stranica može se obaviti bilo na strani servera bilo na strani klijenta. U prvom slučaju, tzv. dinamički dokumenti, Web server, po prijemu zahteva, pokreće odgovarajući aplikacioni program koji kreira dinamički dokument, a klijentu vraća izlaz programa (slika). Drugim rečima, kao odgovor na svaki zahtev klijenta, na strani severa se kreira nova verzija HTML dokumenta. Krajnje jednostavan primer dinamičkog dokumenta je preuzimanje tekućeg vremena i datuma od servera. Vreme i datum su primer dinamičke (promenljive) informacije koja se menja iz momenta u moment. Na primer, klijent može da zahteva od servera da izvrši program koji čita sistemsko vreme serverskog računara. Program konvertuje informaciju o vremenu u tekst, formatira tekst pomoću HTML tagova i generisani HTML dokument predaje Web serveru koji ga vraća nazad klijentu. Internet i Web tehnologije
45
Internet i Web tehnologije
Dinamički vs Aktivni 1. Klijent šalje zahtev serveru 1. Klijent šalje zahtev serveru 2. Server vraća klijentu kopiju programa 2. Na strani servera se izvršava program koji kreira dokument 3. Program se izvršava na strani klijenta i kreira dokument. 3. Server vraća klijentu kreirani dokument Internet i Web tehnologije
46
Dinamički dokumenti - CGI
Korisnik popunjava formu Forma se vraća serveru Forma se predaje CGI-u CGI postavlja upit bazi podataka Iz baze se preuzimaju traženi podaci CGI kreira HTML stranicu Stranica se vraća klijentu i prikazuje u pretraživaču CGI (Common Gateway Interface - opšti interfejs pristupa). CGI predstavlja standardizovani interfejs koji omogućava Web serveru da ˝razgovara˝ sa pozadinskim programima Korisnik popunjava formu (1). Forma se vraća serveru (2) i predaje CGI-u (3). CGI postavlja upit bazi podataka (4). Iz baze se preuzimaju traženi podaci (5). CGI kreira HTML stranicu (6). Stranica se vraća klijentu (7) i prikazuje u pretraživaču (8). Zastereli pristup Internet i Web tehnologije
47
Dinamički dokumenti - PHP
PHP (Hypertext Processor) Skript sadržan u HTML stranici <?php ?> Klijent upućuje zahtev za .php stranicom Web server otvara fajl test.php, pronalazi u njemu PHP skript, uzvršava ga, modifikuje stranicu i vraća je klijentu <html> <body> <h2>Ovo je sve sta znam o tebi:</h2> <?php echo $HTTP_USER_AGENT?> </body> </html> Internet i Web tehnologije
48
Dinamički dokumenti - PHP Primer 1/2
1. Korisnik popunjava formu <body> <form action=”action.php” method=”post”> <p>Unesi svoje ime: <input type=”text” name=”name”> </p> <p>Koliko imas godina: <input type=”text” name=”age”> </p> <input type=”submit”> </form> </body> </html> Internet i Web tehnologije
49
Dinamički dokumenti - PHP Primer 2/2
<html> <body> <h1> Odgovor:</h1> Zdravo <?php echo $name;?>. Predvidjanje: sledece godine imaces <?php echo $age + 1;?> godina </body> </html> action.php Parametri iz forme Web server procesira i modifikuje stranicu action.php pre nego što je vrati klijentu <html> <body> <h1> Odgovor:</h1> Zdravo Barbara. Predvidjanje: sledece godine imaces 25 godina </body> </html> Internet i Web tehnologije
50
Internet i Web tehnologije
Dinamički dokumenti PHP Orijentisan na spregu između Web servera i servera baze podataka Poseduje promenljive, stringove, polja i većinu upravljačkih struktura koje srećemo u C-u Open source i dostupan je za slobodno korišćenje. Posebno je projektovan za rad sa Apache web serverom (koji je takođe open source). Alternative: JSP (JavaServer Pages). Dinamički deo stranice se piše u programskom jeziku Java. Stranice koje koriste ovu tehniku obično imaju nastavak .jsp. ASP (Active Server Pages) je Microsoft-ova verzija PHP-a i JSP-a. Za generisane dinamičkog sadržaja se koristi skript jezik Visual Basic Script (ili VB skript). Stranice koje koriste ASP, obično imaju nastavak .asp PHP je moćan programski jezik, koji se uz to i lako koristi, orijentisan na spregu između Web servera i servera baze podataka. PHP poseduje promenljive, stringove, polja i većinu upravljačkih struktura koje srećemo u C-u. PHP je open source i dostupan je za slobodno korišćenje. Posebno je projektovan za rad sa Apache web serverom (koji je takođe open source). Treća tehnika za dinamičko kreiranje Web stranica je JSP (JavaServer Pages). JSP je slična PHP-u, s tom razlikom što se dinamički deo stranice piše u programskom jeziku Java, umesto u PHP-u. Stranice koje koriste ovu tehniku obično imaju nastavak .jsp. Četvrta tehnika, ASP (Active Server Pages) je Microsoft-ova verzija PHP-a i JSP-a. Za generisane dinamičkog sadržaja kod ASP se koristi skript jezik Visual Basic Script (ili VB skript). Stranice koje koriste ASP, obično imaju nastavak .asp Internet i Web tehnologije
51
Internet i Web tehnologije
Aktivni dokumenti Skript jezici (npr. CGI, PHP, JSP i ASP) problem procesiranja formi i interakcije sa bazama podataka na serveru. Ali, npr. nisu u stanju da reaguju na klik mišem ili da direktno interaguje sa korisnikom koji koristi pretraživač Za kreiranje interaktivnih (aktivnih) stranica neophodan je program koji se izvršava u samom pretraživaču (a ne na serveru) Skript jezici kao što su CGI, PHP, JSP i ASP rešavaju problem procesiranja formi i interakcije sa bazama podataka na serveru. Svi oni su u mogućnosti da prihvate informacije unete u formu, pretraže informacije u bazi podataka i generišu HTML stranicu sa rezultatima obrade. Međutim, ni jedan od ovih skript jezika nije u stanju da reaguje na klik mišem ili da direktno interaguje sa korisnikom koji koristi pretraživač. Za tu namenu, neophodan je program koji će se izvršavati u samom pretraživaču, na računaru klijenta umesto na računaru servera. Web stranica sa pridruženim programom koji se izvršava na strani klijenta naziva se aktivnim dokumentom. Internet i Web tehnologije
52
Internet i Web tehnologije
Aktivni dokumenti Dva načina za kreiranje aktivnih dokumenata: Program (koji kreira aktivni sadržaj na stranici) čuva na serveru, u obliku binarnog kôda, a u HTML stranici postoji tag u kome je navedeno ime fajla koji sadrži program. - (Java) Skrip jeziku koji se ugrađuje u sam HTML. Za razliku od PHP skripta koji se izdvaja iz HTML stranice i izvršava na serverskom računaru, skrip namenjen klijet iz HTML-a izdvaja pretraživač i izvršava ga uz pomoć odgovarajućeg interpretatora (JavaScript) Postoje dva načina za kreiranje aktivnih dokumenata. Prvi način podrazumeva da se program, u obliku binarnog kôda, čuva na serveru, a da u HTML stranici postoji tag u kome je navedeno ime fajla koji sadrži program. Kada HTML interpretator u pretraživaču naiđe na ovakav tag, on najpre preuzima fajl programa od servera, a zatim ga izvršava. Programi ovog tipa najčešće se pišu programskom jeziku Java. Drugi način je zasnovan na skrip jeziku koji se, slično PHP-u, ugrađuje u sam HTML. Međutim, za razliku od PHP skripta koji se izdvaja iz HTML stranice i izvršava na serverskom računaru, skrip namenjen klijet iz HTML-a izdvaja pretraživač i izvršava ga uz pomoć odgovarajućeg interpretatora. Najpoznatiji skript jezik za ovu namenu je JavaScript. Internet i Web tehnologije
53
Aktivni dokumenti - Java
Java je objektno-orijentisan jezik zasnovan na C++. Kompajlirani programi pisani u Javi (bajtkod - bytecode) su portabilni - mogu se izvršavati na bilo kom računaru, nezavisno od tipa procesora i operativnog sistema Bajtkôd ne sadrži mašinske instrukcije za neki konkretan procesor, već instrukcije koje se izvršavaju u interpretatoru za Java bajtkôd, tj. u tzv. Java virtuelnoj mašini Virtuelna mašina izvršava bajtkôd tako što u bajtkôdu identifikuje pojedinačne komande (tzv. metode) i poziva odgovarajuće funkcije pisane u mašinskom jeziku za ciljnu mašinu. Java je objektno-orijentisan jezik zasnovan na C++. Za razliku od C++, i većine drugih viših programskih jezika, kompajlirani programi pisani u Javi su portabilni, tj. mogu se izvršavati na bilo kom računaru, nezavisno od tipa procesora i operativnog sistema. U terminologiji Jave, kompajlirani program se naziva bajtkôdom (bytecode). Bajtkôd ne sadrži mašinske instrukcije za neki konkretan procesor, već instrukcije koje se izvršavaju u interpretatoru za Java bajtkôd, tj. u tzv. Java virtuelnoj mašini. Bilo koji računar na kome je instalirana Java virtuelna mašina u stanju je da izvršava programe pisane u Javi. U osnovi, bajtkôd predstavlja međukôd, koji je po složenosti između Java izvornog kôda i mašinskog kôda. Virtuelna mašina izvršava bajtkôd tako što u bajtkôdu identifikuje pojedinačne komande (tzv. metode) i poziva odgovarajuće funkcije pisane u mašinskom jeziku za ciljnu mašinu. Java programi namenjeni za Web nazivaju se apletima. Apleti se čuvaju na Web serveru u fajlovima sa nastavkom .class. Aplet se uključuje u HTML pomoću odgovarajućeg taga koji predstavlja instrukciju HTML interpretatoru da od Web servera zatraži .class fajl, naveden u tagu, i prosledi ga virtuelnoj mašini gde će aplet biti izvršen. Internet i Web tehnologije
54
Aktivni dokumenti - Java
Aplet - Java programi namenjeni za Web Apleti se čuvaju na Web serveru u fajlovima sa nastavkom .class. U HTML se uključuju pomoću odgovarajućeg taga: <OBJECT CODEBASE=” CLASSID = ˝java:bgsound.class˝ DATA = ˝bgsound.data˝ CODETYPE = ˝audio/MP3˝></OBJECT> Učitani Aplet se prosleđuje virtuelnoj mašini gde se izvršava U primeru: reprodukuje muziku sadržanu u bgsound.data Direktorijum na serveru koji sadrži aplete Java programi namenjeni za Web nazivaju se apletima. Apleti se čuvaju na Web serveru u fajlovima sa nastavkom .class. Aplet se uključuje u HTML pomoću odgovarajućeg taga koji predstavlja instrukciju HTML interpretatoru da od Web servera zatraži .class fajl, naveden u tagu, i prosledi ga virtuelnoj mašini gde će aplet biti izvršen. Primer jednostavnog apleta je aplet koji reprodukuje audio fajl, kao pozadinsku muziku, za vreme dok je u pretraživaču prikazana stranica. Pretpostavimo da je aplet uključen u Web stranicu sa URL-om i da je smešten u fajlu bgsound.class, koji se nalazi na URL-u Tag koji uključuje aplet u HTML je sledećeg oblika: <OBJECT CODEBASE=” CLASSID = ˝java:bgsound.class˝ DATA = ˝bgsound.data˝ CODETYPE = ˝audio/MP3˝></OBJECT> Tag sadrži više atributa, sledećeg značenja. Vrednost atributa CLASSID definiše ime fajla u kome je smešten aplet. CODEBASE definiše 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 sadrži podatke tipa audio/MP3, što je navedeno u atributu CODETYPE. Nakon učitavanja, aplet i prateći audio fajl se predaju virtuelnoj mašini; aplet se startuje i sadržaj audio fajla, u dekodiranom obliku, šalje u audio karticu gde se obavlja reprodukcija. Ime fajla u kome je smešten aplet Tip podataka sadržanih u bgsound.data Ime fajla sa podacima koje aplet treba da procesira Internet i Web tehnologije
55
Aktivni dokumenti - Java/ActiveX
Aplet može da sadrži i grafičku animaciju ili video. Kao atributi taga OBJECT navode se dimenzije pravougaone oblasti na ekranu pretraživača, gde će animacija/video biti prikazani. Java apleti - fleksibilna zamena za pomoćne aplikacije i plug_in-ove. Alternativa: ActiveX kontrole - Microsoft-ov odgovor na Java aplete Programi kompilirani za Pentium procesore i izvršavaju se direktno, bez posredovanja virtuelne mašine. Brže od apleta i veće mogućnosti, u smislu korišćenja raspoloživih softverskih i hardverskih resursa računara Nedostaci: mogu koristiti samo na Pentium PC računarima, rizične u pogledu sigurnosti Na sličan način, aplet može sadržati grafičku animaciju ili video. U tom slučaju, kao atributi taga OBJECT navode se dimenzije pravougaone oblasti na ekranu pretraživača, gde će animacija/video biti prikazani. Java apleti se mogu razumeti i kao fleksibilna zamena za pomoćne aplikacije i plug_in-ove. Na primer, pretpostavimo da Web stranica sadrži sliku u nekom novom grafičkom formatu za koji na klijentskom računaru ne postoji podrška u vidu plug-in-a ili pomoćne aplikacije i da zbog toga slika ne može biti prikazana na ekranu pretraživača. Međutim, ako se za prikazivanje slike koristi aplet, dekoder za novi format može biti smešten u samom apletu koji se automatski preuzima sa servera prilikom učitavanja stranice u pretraživač. 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 izvršavaju se direktno, bez posredovanja virtuelne mašine, kao što je to slučaj kod apleta. Zbog toga je izvršenje ActiveX kontrola značajno brže od izvršavanja apleta, a njihove mogućnosti su daleko veće, u smislu korišćenja raspoloživih softverskih i hardverskih resursa računara. Kada Internet Explorer u Web stranici primeti pozivanje na ActiveX kontrolu, on je preuzima od servera, verifikuje njen identitet, registruje je na lokalnom računaru i izvršava. Međutim, pored ograničena da se ActiveX kontrole mogu koristiti samo na Pentium PC računarima, njihovo korišćenje može biti rizično u pogledu sigurnosti. Internet i Web tehnologije
56
Aktivni dokumenti - JavaScript
Nema direktne veze sa Javom Skript jezik koji se u izvornom obliku ugrađuje u HTML stranicu (<script>) Sadrži programske konstrukcije veoma visokog nivoa Pogodan za lako projektovanje interaktivnih Web stranica. Internet i Web tehnologije
57
JavaScript Primer - procesiranje forme
<html> <head> <script language="javascript" type="text/javascript"> function response(test_form){ var person = test_form.name.value; var years = eval(test_form.age.value) + 1; document.open(); document.writeln("<html><body>"); document.writeln("Zdravo" + person + ".<br>"); document.writeln("Predvidjanje: sledece godine imaces" + years + "."); document.writeln("<body><html>"); document.close(); } </script> </head> <body> <form> Unesi svoje ime: <input type="text" name="name"> <p> Koliko imas godina?: <input type="text" name="age"> <p> <input type=submit value="submit" onclick="response(this.form)"></form> </body> </html> Funkcija koja procesira formu Događaj koji startuje funkciju Internet i Web tehnologije
58
Internet i Web tehnologije
JavaScript vs. PHP Moguće je, i uobičajeno, da Web stranica sadrži oba skript jezika, sa raspodeljenim zadacima Internet i Web tehnologije
59
Generisanje i obrada Web sadržaja
Internet i Web tehnologije
60
Internet i Web tehnologije
HTTP Protokol koji se koristi za komunikaciju između Web pretraživača i Web servera HTTP (HyperText Transfer Protokol - protokol za prenos hiperteksta) Klijent-server protokol aplikacionog sloja TCP/IP steka, koji, za prenos podataka koristi TCP (Web server na portu 80). Internet i Web tehnologije
61
Internet i Web tehnologije
HTTP - Trajanje veze Neperzistentna veza (verzije 0.9 i 1.0) Preko uspostavljene TCP konekcije klijent šalje zahtev, server vraća HTML stranicu i konekcija se zatvara. Ako učitana Web stranica sadrži slike ili neki drugi dodatni sadržaj, neophodno je da pretraživač radi prenosa svakog takvog entiteta uspostavi posebnu TCP konekciju sa serverom. Neefikasan ako se prenose Web stranice koje osim HTML-a sadrže i veći broj slika, ikona ili drugih pratećih sadržaja. Broj porta HTTP protokola je 80. Web server neprekidno osluškuje TCP port 80, čekajući da neki pretraživač zatraži otvaranje TCP konekcije na ovom portu. Sa druge strane, pretraživač 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, pretraživač šalje serveru HTTP zahtev koji sadrži putanju i ime traženog fajla, a Web server odgovara prenosom fajla i po završenom prenosu zatvara TCP konekciju. Ako učitana Web stranica sadrži slike ili neki drugi dodatni sadržaj, neophodno je da pretraživač radi prenosa svakog takvog entiteta uspostavi posebnu TCP konekciju sa serverom. Ovakav način rada, naziva se neperzistentnom vezom, i karakterističan je za prvobitne verzije HTTP protokola (konkretno verzije 0.9 i 1.0). Neperzistentni način rada je izrazito neefikasan ako se prenose Web stranice koje osim HTML-a sadrže i veći broj slika, ikona ili drugih pratećih sadržaja (što slučaj sa većinom Web stranica koje danas viđamo na Web-u). Uspostavljane TCP konekcije generiše dodatni saobraćaj u mreži i unosi izvesno kašnjenje, što ima za posledicu sporo učitavanje ovakvih Web stranica. Iz tog razloga, godine uvedena je nova verzija HTTP protokola, verzija 1.1, koja podržava perzistentne (trajne) veze klijenta i servera. Kod perzistentnog načina rada, pretraživač uspostavlja inicijalnu TCP konekciju, zatim šalje zahtev i dobija odgovor (kao kod HTTP 1.0). Međutim, nakon slanja odgovora, server ne zatvara TCP konekciju, već je ostavlja otvorenom dajući priliku pretraživaču da preko iste TCP konekcije uputi dodatne zahteve. Tipično, server zatvara TCP konekciju po isteku nekog zadatog vremena nakon poslednje upućenog zahteva. Na ovaj način se dodatna opterećenja usled uspostavljanja i raskidanja TCP konekcije raspodjeljuju na više HTTP zahteva/odgovora tako da je relativno dodatno opterećenje na nivou celokupne Web stranice značajno manje. Pretraživač koji koristi perzistentnu vezu može dodatno da optimizuje prenos ako šalje zahteve jedan za drugim bez čekanja na odgovor. Internet i Web tehnologije
62
Internet i Web tehnologije
HTTP - Trajanje veze Perzistentna veza (verzija 1.1) Pretraživač uspostavlja inicijalnu TCP konekciju, zatim šalje zahtev i dobija odgovor. Međutim, nakon slanja odgovora, server ne zatvara TCP konekciju, već je ostavlja otvorenom dajući priliku pretraživaču da preko iste TCP konekcije uputi dodatne zahteve. Tipično, server zatvara TCP konekciju po isteku nekog zadatog vremena nakon poslednje upućenog zahteva. Efikasniji prenos - dodatna opterećenja usled uspostavljanja i raskidanja TCP konekcije raspodjeljuju se na više HTTP Pretraživač može dodatno da optimizuje prenos ako šalje zahteve jedan za drugim bez čekanja na odgovor Neperzistentni način rada je izrazito neefikasan ako se prenose Web stranice koje osim HTML-a sadrže i veći broj slika, ikona ili drugih pratećih sadržaja (što slučaj sa većinom Web stranica koje danas viđamo na Web-u). Uspostavljane TCP konekcije generiše dodatni saobraćaj u mreži i unosi izvesno kašnjenje, što ima za posledicu sporo učitavanje ovakvih Web stranica. Iz tog razloga, godine uvedena je nova verzija HTTP protokola, verzija 1.1, koja podržava perzistentne (trajne) veze klijenta i servera. Kod perzistentnog načina rada, pretraživač uspostavlja inicijalnu TCP konekciju, zatim šalje zahtev i dobija odgovor (kao kod HTTP 1.0). Međutim, nakon slanja odgovora, server ne zatvara TCP konekciju, već je ostavlja otvorenom dajući priliku pretraživaču da preko iste TCP konekcije uputi dodatne zahteve. Tipično, server zatvara TCP konekciju po isteku nekog zadatog vremena nakon poslednje upućenog zahteva. Na ovaj način se dodatna opterećenja usled uspostavljanja i raskidanja TCP konekcije raspodjeljuju na više HTTP zahteva/odgovora tako da je relativno dodatno opterećenje na nivou celokupne Web stranice značajno manje. Pretraživač koji koristi perzistentnu vezu može dodatno da optimizuje prenos ako šalje zahteve jedan za drugim bez čekanja na odgovor. Internet i Web tehnologije
63
Internet i Web tehnologije
HTTP - Formati poruka Zahtev Odgovor Internet i Web tehnologije
64
HTTP - Formati poruka Metodi
Definiše tip zahteva Metod Opis GET Zahtev za čitanjem Web stranice HEAD Zahtev za čitanjem zaglavlja Web stranice PUT Zahtev za prenos Web stranice na server POST Dodavanje sadržaja imenovanom resursu (npr. Web stranici) DELETE Zahtev za brisanjem Web stranice na serveru TRACE Echo poslatog zahteva CONNECT Rezervisano za neku buduću namenu OPTIONS Upit koji se odnosi na neke parametre servera Internet i Web tehnologije
65
HTTP - Formati poruka Metodi
GET Klijent zahteva od servera da pošalje traženu stranicu GET ime_fajla HTTP /1.1 HEAD Klijent traži od servera ne celu stranicu već samo njeno zaglavlje Zaglavlje stranice sadrži informacije o stranici tipa: Kada je stranica kreirana ili poslednji put modifikovana, tip sadržaja stranice i sl. PUT Suprotno od GET Upisuje stranicu na Web server (na hard disk) Za postavljanje novih Web stranica na Web server (publikovanje) POST Slično PUT, ali opštije Podaci se upisuju (predaju) u resurs koji se nalazi na datom URL Npr. postavljanje nove poruke na Web forumu Metod GET zahteva od servera da pošalje traženu stranicu. (Ovde se pod stranicom misli na objekat koji može biti HTML stranica, slika, Java aplet i sl, tj. na fajl). Stanica koja se vraća ne mora da sadrži samo ASCII tekst, a za identifikaciju tip sadržaja koristi se MIME, slično kao kod protokola. Najveći broj HTTP zahteva koji se javljaju na Web-u su upravo tipa GET. Uobičajeni oblik metoda GET je: GET ime_fajla HTTP /1.1 gde je ime_fajla ime resursa (fajla) koji se traži, a 1.1 verzija HTTP protokola koji se koristi. Metod HEAD traži od servera ne celu stranicu već samo njeno zaglavlje. Ovaj metod se može koristiti za pribavljane informacije o datumu i vremenu kada je stranica poslednji put modifikovana, za prikupljanje drugih informacija o stranici i njenom sadržaju ili prosto za testiranje validnosti URL-a (da li je na datom URL-u prisutna stranica). Metod PUT je suprotan metodu GET: umesto čitanja, ovaj metod upisuje stranicu na Web server. Uz pomoć ovog metoda moguće je postaviti Web stranicu na udaljeni Web server. Stranica je sadržana u telu PUT zahteva. Stanica ne mora biti tekst, a njen MIME tip naveden je polju Content-Type zaglavlja zahteva. Takođe, zaglavlje zahteva sadrži i podatke za autorizaciju kojima klijent dokazuje da ima pravo da izvrši zahtevanu operaciju. Metod POST je sličan metodu PUT. Za razliku od PUT, kojim se na server postavlja nova stranica (ili zamenjuje postojeća, metod POST se koristi da se u resurs (u najopštijem smislu) koji se nalazi na datom URL-u, upišu (dodaju) novi podaci. Postavljanje nove poruke na nekom Web forumu, primer je ovog tipa operacije. Međutim, u praksi metod POST, kao i PUT, se retko koristi. Metod DELETE služi 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 nalaže serveru da nazad vrati primljenu poruku zahteva. TRACE je koristan u slučajevima kada se zahtevi ne obrađuju korektno, a klijent želi da sazna da li zahtevi uopšte dolaze do servera. Metod CONNECT nema definisanu namenu, već je rezervisan za neku eventualnu buduću primenu. Metod OPTIONS omogućava klijentu da postavi upit serveru koji se odnosi na izvesne parametre rada servera ili parametre nekog konkretnog fajla. Internet i Web tehnologije
66
HTTP - Formati poruka Metodi
DELETE Brisanje (uklanjanje) stranice sa Web servera TRACE Testiranje veze sa serverom Serveru vraća primljenu poruku zahteva. CONNECT Za buduće namene OPTIONS Omogućava klijentu da postavi upit serveru koji se odnosi na izvesne parametre rada servera ili parametre nekog konkretnog fajla. Metod DELETE služi 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 nalaže serveru da nazad vrati primljenu poruku zahteva. TRACE je koristan u slučajevima kada se zahtevi ne obrađuju korektno, a klijent želi da sazna da li zahtevi uopšte dolaze do servera. Metod CONNECT nema definisanu namenu, već je rezervisan za neku eventualnu buduću primenu. Metod OPTIONS omogućava klijentu da postavi upit serveru koji se odnosi na izvesne parametre rada servera ili parametre nekog konkretnog fajla. Internet i Web tehnologije
67
HTTP - Formati poruka Status
Sadržan u prvoj linij odgovora Trocifreni kôd -ukazuje klijentu da li je njegov zahtev uspešno opsluže ili nije i ako nije zašto nije. Kôd Značenje Primer 1xx Informativno 100 - server pristaje da obradi klijentov zahtev 2xx Uspešno 200 - zahtev je prihvaćen i obrađen; odgovor ne sadrži telo 3xx Preusmeravanje 301 - stranica je premeštena na drugu URL lokaciju; keširana stranica je još uvek validna. 4xx Greška klijenta 403 - zabranjen pristup stranici; stranica nije pronađena. 5xx Greška servera 500 - interna greška servera; kasnije pokušaj ponovo Internet i Web tehnologije
68
HTTP - Formati poruka Zaglavlja poruka
Zaglavlje Tip Sadržaj User-Agent Zahtev Informacija o pretraživaču i platformi Accept Tip stranica koje klijent može da procesira Accept-Charset Skup karaktera koji je prihvatljiv za klijenta Accept-Encoding Kodiranje stranice koje klijent može da procesira Accept-Language Prirodni jezik koji klijent može da procesira Host DNS ime servera Authorization Podaci za autorizaciju klijenta Cookie Sadrži cookie kojeg je server prethodno poslao klijentu Date Zahtev/Odgovor Datum i vreme slanja poruke Server Odgovor Opšte informacije o serveru Content-Encoding Način kodiranja stranice Content-Language Prirodni jezik korišćen na stranici Content-Length Veličina stranice u bajtovima Content-Type MIME tip stranice Last-Modified Datum i vreme poslednje promene stranice Location Instrukcija klijentu da zahtev pošalje na neko drugo mesto Set-Cookie Sadrži cookie kojeg server šalje klijentu Internet i Web tehnologije
69
HTTP - Formati poruka Zaglavlja poruka
User-Agent (korisnički agent) - klijent obaveštava servera o tipu pretraživača koji koristi, operativnom sistemu i drugim osobinama Accept obaveštavaju servera kakav sadržaj je klijent spreman da prihvata Accept - MIME tip stranice koji klijentov pretraživač može da obradi (npr. text/html). Accept-Charset - skup karaktera (npr. ISO ili Unicode-1-1) koji klijent prepoznaje Accept-Encoding - metod kompresije koji klijent podržava (npr. gzip) Accept-Language - prirodni jezik (npr. Srpski) koji korisnik razume Ako server ima mogućnost izbora stranice (npr. postoji više varijanti iste stranice), on će izabrati o vratiti klijentu onu koja se uklapa u postavljene zahteve Ako server nije u mogućnosti da udovolji zahtevima klijenta, vratiće odgovor sa postavljenim odgovarajućim kodom greške Zaglavlje User-Agent (korisnički agent) omogućava da klijent obavesti servera o tipu pretraživača koji koristi, operativnom sistemu i drugim osobinama. Četiri zaglavlja koja počinju sa Accept obaveštavaju servera kakav sadržaj je klijent spreman da prihvata. Prvo od ovih zaglavlja (Accept) navodi MIME tip stranice koji klijentov pretraživač može da obradi (npr. text/html). Drugo (Accept-Charset) definiše skup karaktera (npr. ISO ili Unicode-1-1) koji klijent prepoznaje. Treće (Accept-Encoding) definiše metod kompresije koji klijent podržava (npr. gzip), a četvrto (Accept-Language) ukazuje na prirodni jezik (npr. Srpski) koji korisnik razume. Ako server ima mogućnost izbora stranice (npr. postoji više varijanti iste stranice), on će izabrati o vratiti klijentu onu koja se uklapa u postavljene zahteve. Ako server nije u mogućnosti da udovolji zahtevima klijenta, vratiće odgovor sa postavljenim odgovarajućim kodom greške. Internet i Web tehnologije
70
HTTP - Formati poruka Zaglavlja poruka
Host - sadrži ime servera, preuzeto iz URL-a. Ispitivanjem sadržaja ovog polja, sever proverava da li se zahtev odnosi baš na njega. Authorization - neophodno za stranice koje su zaštićene i za koje je klijent u obavezi da dokaže da ima pravo da vidi stranicu Cookie - dva zaglavlja Cookie - koristi ga klijent da vrati serveru sadržaj cookie-a kojeg je ranije poslat klijentu od strane neke mašine iz domena servera Set-Cookie - Koristi ga server za slanje sadržaja cookie-ja klijentu Zaglavlje Host sadrži ime servera, preuzeto iz URL-a. Ovo zaglavlje je obavezno jer se može desiti da za istu IP adresu budu vezana više DNS imena. Ispitivanjem sadržaja ovog polja, sever proverava da li se zahtev odnosi baš na njega. Zaglavlje Authorization je neophodno za stranice koje su zaštićene i za koje je klijent u obavezi da dokaže da ima pravo da vidi stranicu. Cookie-ima su posvećena dva zaglavlja. Preko zaglavlja Cookie klijent vraća serveru sadržaj cookie-a kojeg je ranije poslat klijentu od strane neke mašine iz domena servera. Server šalje cookie klijentu u obliku sadržaja zaglavlja Set-Cookie. Kao što znamo, klijent je u obavezi da zapamti cookie na svoj hard disk, i vrati ga serveru pri svakom narednom obraćanju. Zaglavlje Date (datum) se može koristiti u oba smera i sadrži vreme i datum kada je poruka poslata. Slede zaglavlja koja se javljaju isključivu u odgovorima koje server šalje klijentu. Zaglavlje Server omogućava serveru da saopšti svoj identitet klijentu, ako želi. Sledeća četiri zaglavlja, koja počinju sa Content- (sadržaj) omogućavaju serveru da opiše osobine stranice koje šalje. (Značenje ovih zaglavlja je analogno odgovarajućim Accept- zaglavljima). Zaglavlje Last-Modified sadrži datum i vreme kada je stranica poslednji put modifikovana. Ovo zaglavlja ima bitnu ulogu u keširanju stranica. Server koristi zaglavlje Location kada želi da obavesti klijenta da bi trebalo da pokuša da potraži zahtevanu stranicu na nekom drugom URL-u. Ova mogućnost se koristi ako je stranica premeštena na drugu lokaciju ili ako više od jednog URL-a ukazuje na istu stranicu. Na primer, neka internacionala kompanija može 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. Internet i Web tehnologije
71
HTTP - Formati poruka Zaglavlja poruka
Date (datum) - može se koristiti u oba smera i sadrži vreme i datum kada je poruka poslata. Server - server saopštava svoj identitet klijentu, ako želi. Content- (sadržaj) omogućavaju serveru da opiše osobine stranice koje šalje. (Značenje ovih zaglavlja je analogno odgovarajućim Accept- zaglavljima). Last-Modified sadrži datum i vreme kada je stranica poslednji put modifikovana. Ima bitnu ulogu u keširanju stranica. Location kada želi da obavesti klijenta da bi trebalo da pokuša da potraži zahtevanu stranicu na nekom drugom URL-u. Zaglavlje Date (datum) se može koristiti u oba smera i sadrži vreme i datum kada je poruka poslata. Slede zaglavlja koja se javljaju isključivu u odgovorima koje server šalje klijentu. Zaglavlje Server omogućava serveru da saopšti svoj identitet klijentu, ako želi. Sledeća četiri zaglavlja, koja počinju sa Content- (sadržaj) omogućavaju serveru da opiše osobine stranice koje šalje. (Značenje ovih zaglavlja je analogno odgovarajućim Accept- zaglavljima). Zaglavlje Last-Modified sadrži datum i vreme kada je stranica poslednji put modifikovana. Ovo zaglavlja ima bitnu ulogu u keširanju stranica. Server koristi zaglavlje Location kada želi da obavesti klijenta da bi trebalo da pokuša da potraži zahtevanu stranicu na nekom drugom URL-u. Ova mogućnost se koristi ako je stranica premeštena na drugu lokaciju ili ako više od jednog URL-a ukazuje na istu stranicu. Na primer, neka internacionala kompanija može 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. Internet i Web tehnologije
72
Internet i Web tehnologije
HTTP - Primer odgovora Internet i Web tehnologije
73
Proksi serveri i keširanje stranica
Web klijent i Web server direktno komuniciraju razmenom HTTP poruka preko Interneta. Da, ali ne uvek Komunikacija klijent-server se može ostvarivati i posredstvom jednog ili više među-servera: Firewall Proxy server U dosadašnjem izlaganju o Web-u pretpostavljali smo da klijent i server direktno komuniciraju razmenom HTTP poruka preko Interneta. Međutim, u izvesnim slučajevima komunikacija klijent-server ne mora biti direktna već se može ostvarivati posredstvom jednog ili više među-servera. Dva tipa među-servera su: firewall i proxy server. Internet i Web tehnologije
74
Proksi serveri i keširanje stranica
Proxy - posrednik između lokalnih (intranet) korisnika i Web-a. Omogućava optimizaciju kojom se smanjuje čekanje klijenata na pribavljanje zahtevanih Web stranica. Web pretraživači u mreži koja koristi proxy server su konfigurisani tako da svoje HTTP zahteve ne upućuju direktno udaljenim Web serverima već ih šalju lokalnom proxy serveru koji u njihovo ime obavlja zahtevanu transakciju. Proxy server je posrednik između lokalnih (intranet) korisnika i Web-a (Sl. 6‑25) i omogućava optimizaciju kojom se smanjuje čekanje klijenata na pribavljanje zahtevanih Web stranica. Web pretraživači u mreži koja koristi proxy server su konfigurisani tako da svoje HTTP zahteve ne upućuju direktno udaljenim Web serverima već ih šalju lokalnom proxy serveru koji u njihovo ime obavlja zahtevanu transakciju. Internet i Web tehnologije
75
Internet i Web tehnologije
Proksi serveri Kada prvi korisnik iz intraneta pristupi određenoj Web stranici, proxy mora da pribavi kopiju od servera na kome se stranica nalazi. Proxy ostavlja kopiju u svom kešu i vraća traženu stranicu kao odgovor na zahtev Kada sledeći put neki korisnik pristupi istoj stranici, proxy uzima podatke iz svog keša i ne šalje zahtev preko Interneta Efektivno skraćuju vreme pribavljanja Web stranica, značajno redukuju saobraćaj na Internetu i smanjuju opterećenje Web servera Kada prvi korisnik u korporaciji pristupi određenoj Web stranici, proxy mora da pribavi kopiju od servera na kome se stranica nalazi. Proxy ostavlja kopiju u svom kešu i vraća traženu stranicu kao odgovor na zahtev. Kada sledeći put neki korisnik pristupi istoj stranici, proxy uzima podatke iz svog keša i ne šalje zahtev preko Interneta. Proxy serveri su bitan deo arhitekture Web-a. Osim što efektivno skraćuju vreme pribavljanja Web stranica, proxy serveri značajno redukuju saobraćaj na Internetu i smanjuju opterećenje Web servera. Internet i Web tehnologije
76
Internet i Web tehnologije
Proksi serveri Hijerarhija proxy servera Lokalni proxy - proces na klijentskom računaru Korporacijski proxy - proxy server interaneta ISP proxy Zahtev se šalje lokalnom proxy serveru, Koji, ako nije u stanju da opsluži zahtev, zahtev prosleđuje korporacijskom proxy serveru, a ovaj proxy serveru provajdera internet usluga i tako redom sve dok se u nekom kešu ne pronađe tražena stranica. Ako stranica ne postoji u kešu proxy servera na vrhu hijerarhije, ona se direktno traži od Web servera, a onda prosleđuje nazad do pretraživača koji je uputio zahtev i pri tome pamti u keševima svih posrednih proxy servera. Često, postoji hijerarhija proxy servera. Zahtev se najpre šalje lokalnom proxy serveru, koji, ako nije u stanju da opsluži zahtev, zahtev prosleđuje npr. korporacijskom proxy serveru, a ovaj proxy serveru provajdera internet usluga i tako redom sve dok se u nekom kešu ne pronađe tražena stranica. Tek ako stranica ne postoji u kešu proxy servera na vrhu hijerarhije, ona se direktno traži od Web servera, a onda prosleđuje nazad do pretraživača koji je uputio zahtev i pri tome pamti u keševima svih posrednih proxy servera. Internet i Web tehnologije
77
Internet i Web tehnologije
Proksi serveri Podrška u HTTP, putem nekoliko namenskih zaglavlja Web server može da kontroliše kako proksiji obrađuju svaku Web stranicu Zaglavlje Max_Forewards - maksimalan broj poxy servera između Web servera i klijenta Max_Forewards = 1 - samo jedan proxy Max_Forewards = 0 - zabrana keširanja stranice HTTP sadrži eksplicitnu podršku za proxy servere. Protokol tačno određuje način na koji proksi obrađuje svaki zahtev, kako proksi treba da tumači zaglavlje, kako pretraživač pregovara sa proksijem i kako proksi pregovara sa serverom. Nekoliko HTTP zaglavlja je posebno namenjeno za proksije. Na primer, HTTP omogućava serveru da kontroliše kako proksiji obrađuju svaku Web stranicu. Server može u odgovoru da uključi zaglavlje Max_Forwards i tako ograniči broj proksija koji obrađuju stavku pre nego što se ona isporuči pretraživaču. Ako server odredi samo jedan, Max_Forewards: 1, na putanji od servera do pretraživača dozvoljen je samo jedan proksi. Nula znači da je zabranjeno da proksi obrađuju stavku Internet i Web tehnologije
78
Internet i Web tehnologije
Keširanje Koliko dugo treba stavku čuvati u kešu ? Ako se kopija predugo čuva ona može da zastari, original je u međuvremenu, nakon što je kopija uneta u keš, promenjen Ako se kopija čuva kratko - smanjuje se efikasnosti keširanja zato što sledeći zahtev mora nepotrebno da ide do servera Pojedine Web stranice su podložne čestim promenama (npr. stranica sa rezultatima fudbalskih utakmica), Druge mogu ostati neizmenjene u dužem vremenskom intervalu (npr. stranica posvećena Grčkoj mitologiji). Sklonost stranice promenama može da varira u vremenu Neke stranice se ni u kom slučaju ne mogu keširati (dinamičke Web stranice) Eliminisanjem nepotrebnih prenosa, proxy keš smanjuje i vreme čekanja i mrežni saobraćaj. Glavni aspekt keširanja jeste privremeno čuvanje stranica, a glavno pitanje tiče se vremena čuvanja stranice, tj. koliko dugo treba stavku čuvati u kešu. Sa jedne strane, ako se kopija predugo čuva u kešu ona može da zastari, što se dešava ako je original u međuvremenu, nakon što je kopija uneta u keš, promenjen. Sa druge strane, ako se kopija ne čuva dovoljno dugo, dolazi do smanjenja efikasnosti keširanja zato što sledeći zahtev mora nepotrebno da ide do servera. Pojedine Web stranice su podložne čestim promenama (npr. stranica sa rezultatima fudbalskih utakmica), dok druge mogu ostati neizmenjene u dužem vremenskom intervalu (npr. stranica posvećena Grčkoj mitologiji). Takođe, sklonost stranice promenama može da varira u vremenu (npr. stranica sa rezultatima fudbalskih utakmica se brzom menja samo dok utakmica traja, a onda ostaje neizmenjena do sledećeg kola). Takođe, neke stranice se ni u kom slučaju ne mogu keširati. To je slučaj sa dinamičkim Web stranicama koje se generišu na strani servera na osnovu postavljenog upita. Internet i Web tehnologije
79
Internet i Web tehnologije
Keširanje HTTP dozvoljava da server kontroliše keširanje na dva načina: Prvi način: Koristi zaglavlje Last-Modified Ako je stranica koja se upravo stavlja u keš promenjena pre jednog sata, ona će biti čuvana u kešu jedan sat Zasnovano na predviđanjima i zato ne garantuje da će pretraživaču uvek biti vraćena ažurna kopija stranice HTTP dozvoljava da server kontroliše keširanje na dva načina. Prvi način se oslanja na informaciju iz zaglavlja odgovora Last-Modified kada određuje koliko dugo će stranica biti čuvana u kešu. Ako je stranica koja se upravo stavlja u keš promenjena pre jednog sata, ona će biti čuvana u kešu jedan sat. Ako je promenjena pre dva meseca, u kešu će ostati dva meseca. Iako ovaj pristup često dobro radi u praksi, on je zasnovan na predviđanjima i zato ne garantuje da će pretraživaču uvek biti vraćena ažurna kopija stranice. Internet i Web tehnologije
80
Internet i Web tehnologije
Keširanje Drugi način Uslovni GET zahtev - HTTP poruka koja sadrži zaglavlje: If-Modified-Since (˝ako je modifikovana posle ...˝). Korak 1: Pretraživač upućuje standardni GET zahtev proxy-ju . Pretpostavimo da proxy u svom kešu ima traženu stranicu. Korak 2: proxy šalje uslovnu GET poruku serveru sa upisanim vremenom poslednje modifikacije keširane kopije u zaglavlju If-Modified-Since Drugi pristup eliminiše mogućnost da pretraživač dobije zastarelu strancu, ali na račun izvesnog povećanja saobraćaja i vremena čekanja na pribavljanje stranice. Pristup se oslanja na tzv. uslovni GET zahtev, koji proxy može da pošalje serveru kako bi proverio ažurnost keširane stranice. Uslovni GET zahtev je HTTP poruka koja sadrži zaglavlje If-Modified-Since (˝ako je modifikovana posle ...˝). Procedura je ilustrovana na Sl. 6‑27 i odvija se na sledeći način: Pretraživač upućuje standardni GET zahtev proxy-ju (korak 1). Pretpostavimo da proxy u svom kešu ima traženu stranicu. Svakoj keširanoj stranici pridružena je informacija o datumu i vremenu kada je stranica keširana. Ova informacija je preuzeta iz polja Last-Modified HTTP poruke kojom je originalna stranica ranije preneta od servera do proxy-ja. Pre nego što pretraživaču vrati keširanu stranicu, proxy šalje uslovnu GET poruku serveru sa upisanim vremenom poslednje modifikacije keširane kopije u zaglavlju If-Modified-Since (korak 2). Na Sl. 6‑27 je pretpostavljeno da stranica nije modifikovana u međuvremenu, tj. od datuma i vremena navedenih u zaglavlju If-Modified-Since. Zbog toga server vraća proxy-ju kratak odgovor sa statusnim kodom 304 (Not modified - nije modifikovana) i bez tela (korak 3). Po prijemu odgovora, proxy vraća keširanu stranicu pretraživaču (korak 4). U slučaju da je zahtevana stranica u međuvremenu 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 pretraživaču. Internet i Web tehnologije
81
Internet i Web tehnologije
Keširanje Pretpostavljeno da stranica nije modifikovana u međuvremenu, tj. od datuma i vremena navedenih u zaglavlju If-Modified-Since Korak 3: Server vraća proxy-ju odgovor sa statusnim kodom 304 (Not modified - nije modifikovana) i bez tela. Korak 4: Po prijemu odgovora, proxy vraća keširanu stranicu pretraživaču Da je zahtevana stranica u međuvremenu bila modifikovana, server bi vratio proxy-ju novu kopiju stranice, koju bi proxy smestio u keš (zajedno sa datumom i vremenom iz zaglavlja Last-Modified) Na Sl. 6‑27 je pretpostavljeno da stranica nije modifikovana u međuvremenu, tj. od datuma i vremena navedenih u zaglavlju If-Modified-Since. Zbog toga server vraća proxy-ju kratak odgovor sa statusnim kodom 304 (Not modified - nije modifikovana) i bez tela (korak 3). Po prijemu odgovora, proxy vraća keširanu stranicu pretraživaču (korak 4). U slučaju da je zahtevana stranica u međuvremenu 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 pretraživaču. Internet i Web tehnologije
82
Internet i Web tehnologije
Keširanje Kombinacija dva pristupa: Prvih T sekundi nakon pribavljanja stranice proxy vraća pretraživačima keširanu kopiju bez postavljanja pitanja serveru. Po isteku T sekundi, proxy koristi uslovnu GET poruku za proveru ažurnosti kopije Proaktivno keširanje: Kada proksi pribavi stranicu od servera, on je analizira i izdvaja sadržane hiperveze Proksi pribavlja i smesti u svoj keš stranice na koje ukazuju izdvojene hiperveze, za slučaj da korisnik naknadno zatraži neku od njih Skraćuje vreme pristupa za buduće zahteve Povećava, a ne smanjuje saobraćaj (pribavljaju se i stranice koje nikada neće biti korišćene). Još jedan način za poboljšanje performansi keširanja naziva se proaktivnim keširanjem. Kada proksi pribavi stranicu od servera, on je analizira i izdvaja sadržane hiperveze. Nakon toga, proksi može da pribavi i smesti u svoj keš stranice na koje ukazuju izdvojene hiperveze, za slučaj da korisnik naknadno zatraži neku od njih. Na ovaj način moguće je skratiti vreme pristupa za buduće zahteve za slučaj da korisnik izabere neki od linkova na upravo učitanoj stranici. Međutim, pribavljajući i stranice koje nikada neće biti potrebne, ova tehnika ne smanjuje već povećava saobraćaj na Internetu Internet i Web tehnologije
83
Internet i Web tehnologije
Firewall Intranet - lokalne mreže na kojima se koristi TCP/IP: Lakšan je pristup Web-u od strane računara povezanih na intranet (lokalni računari na isti način komuniciraju međusobno kao i sa udaljenim serverima) Omogućeno je spoljnim Internet korisnicima da pristupaju informacijama i servisima dostupnim na korporacijskim serverima (kao što je korporacijski Web server) Iz sigurnosnih razloga, spoljnim korisnicima obično nije dozvoljen direktan pristup korporacijskim serverima, već se ostvaruje posredstvom specijalizovanog server, tzv. firewall ili sigurnosni gateway, koji nadgleda i filtrira mreži saobraćaj Internet i Web tehnologije
84
Internet i Web tehnologije
Firewall Firewall kontroliše protok informacija u oba smera Presreće i filtrira pakete koji su sa Interneta upućeni lokalnim serverima, kao i sve zahteve koji se iz intraneta šalju prema Internetu Filtriranje se na osnovu izvornih i odredišnih IP adresa i brojev portova sadržanim u TCP/UDP paketima ili na bazi nekih drugih kriterijuma Internet i Web tehnologije
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.