Transcript Slide 1
WEB World Wide Web (ili samo Web) - kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u. Sajt B Sajt A Sajt C Sajt F Sajt G Sajt E Internet i Web tehnologije Sajt D Hipertekst Koncept stranice koja sadrži pokazivače na druge srodne stranice. Računar je digitalna elektronska mašina koju čine CPU, upravljačka jedinica i memorija. Memorija sa prizvoljnim pristupom Obavlja matematička i logička izračunavanja Deo računara koji upravlja protokom podataka Može biti RAM ili ROM. Koristi se za čuvanje informacija Internet i Web tehnologije Memorija koja može samo da se čita 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 Internet i Web tehnologije Web na Internetu Trenutno prikazana stranica u pretraživaču Ljk kjls fsf Dfsaf f adf Fafadf fadfaf Server xyzw.com Server abcd.com Klijent Hiperlink na abcd.com Sde f Dfsaf f adf Fafad Disk Hiperlink na xyzw.com kjls fsf Dfsaf f adf Fafad Disk TCP konekcija Web pretraživač Web server INTERNET Internet i Web tehnologije Web server 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://www.abcd.com/products.html http - ime protokola www.abcd.com - simboličko (DNS) ime računara kome se pristupa /products.html - ime datoteke koja sadrži stranicu Internet i Web tehnologije Web pretraživač 1. 2. 3. 4. 5. 6. 7. 8. Pretraživač se obraća DNS serveru tražeći od njega IP adresu hosta www.elfak.ni.ac.yu. DNS server odgovara sa 160.99.1.1 Pretraživač uspostavlja TCP konekciju sa hostom 160.99.1.1 na portu 80. Preko otvorene TCP konekcije, pretraživač šalje zahtev tražeći fajl /home/index.html. Server www.elfak.ni.ac.yu odgovara slanjem fajla /home/index.html. TCP konekcija se zatvara. Pretraživač prikazuje tekst sadržan u falju /home/index.html. i Web tehnologije Pretraživač pribavlja i Internet prikazuje sve slike iz ovog fajla. 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. Internet i Web tehnologije 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 ? Internet i Web tehnologije 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 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) 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 Klijetski računar Pretraživač Pretraživa Pretraživač se izvršava kao jedan proces Interfejs pretraživača (koristi ga plug-in) Program Pretraživača Interfejs plug-in-a (koristi ga pretraživač) plug-in Internet i Web tehnologije Proces 1 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. Klijetski računar Klijetski računar Pretraživač Pretraživač Pomoćna aplikacija Pretraživač se izvršava kao jedan proces Program retraživača plug-in Proces 1 Internet i Web tehnologije Proces 2 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. Internet i Web tehnologije 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) 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 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 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 ! 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. Internet i Web tehnologije 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 Web server Ima smisla ako u sistemu postoji više od jednog hard Pozadinski modul (nit) 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 Internet i Web tehnologije disk Keš Pristupni modul Zahtev Odgovor 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 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 Ruter Čvor (računar) (CPU + keš + k diskova) LAN Pristupni Internetmodul i Web tehnologije URL URL-u (Uniform Resource Locator - uniformni lokator resursa) - mehanizma za imenovanje i lako lociranje stranica Daje odgovor na pitanja: 1. 2. 3. 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: 1. 2. 3. 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 URL http://es.elfak.ni.ac.yu/iw/iw.htm Protokol Ime fajla: relativna putanja + ime samog fajla Deo za ime fajla može biti izostavljen: Host http://es.elfak.ni.ac.yu 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 http://es.elfak.ni.ac.yu/iw/ Web server se preusmerava na podrazumevani fajl u tom direktorijumu http://es.elfak.ni.ac.yu/iw/index.html 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) http://es.elfak.ni.ac.yu 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 mailto:[email protected] telnet Udaljeni login telnet://www.w3.org:80 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 ... 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 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 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. Internet i Web tehnologije 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. Internet i Web tehnologije 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 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. 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 = “...“> PrikazujeInternet slikui Web tehnologije <a href=“...“> ... </a> Definiše hipervezu 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> <col align = center> <col align = center> <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 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 HTML - Forme <html> <head><title> FORMA ZA NARUCIVANJE KNJIZARE CENTAR</title></head> <body> <h1> Forma za narucivanje knjiga </h1> <form ACTION="http://www.centar-knjiga.com/cgi-bin/narudzba" 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> Polje za unos teksta MASTER <input name="cc" type=radio value="mastercard"> VISA <input name="cc" type=radio value="visacard"></p> Radio dugme <p>Narucujem knjigu <input name="knjiga" size=46></p> <p>Povez Tvrdi <input name="povez" type=radio value="tvrdi"> Kvadrat za štikliranje Meki <input name="povez" type=radio value="meki"> Dostava preko brze poste <input name="express" type=checkbox></p> Dugme Submit <p><input type=submit value="narucivanje"></p> Hvala na poverenju. </form> </body> </html> 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=1234567890&istice=9/07 &cc=mastercard&povez=tvrdi&express=on Server tumači dobijeni string i preduzme odgovarajuće akcije. 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 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 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> <book> <title> Internetworking with TCP/IP, Vol I</title> <author> Douglas E. Comer </author> <year> 2000 </year> </book> <book> <title> Data Communications and Networking</title> <author> Behrouz A. Forouzan, 2/e </author> <year> 2001 </year> </book> </book_list> Internet i Web tehnologije Tagovi ukazuju na smisao informacije Laka pretraga po različitim kriterijumima Sadrži podatke, ali ne kazuje ništa o tome kako prikazati podatke 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> Internet i Web tehnologije Primer XSL dokumenta <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> Početak HTML dokumenta <body> <table border="2"> <tr> <th> Title </th> Naslovna vrsta tabele <th> Author </th> <th> Year </th> </tr> <xsl:for-each select="book_list/book"> <tr> <td><xsl:value-of select="title"/></td> Vrste sa podacima <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="year"/></td> </tr> </xsl:for-each> </table> </body> Kraj HTML dokumenta </html> </xsl:template> Internet i Web tehnologije </xsl:stylesheet> Definiše način prikazivanja podataka iz XML dokumenta Objašnjava kako XML dok. transformisati u HTML dok. 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. 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 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) Internet i Web tehnologije Dinamički vs. 1. Klijent šalje zahtev serveru Aktivni 1. Klijent šalje zahtev serveru Program Zahtev Zahtev Server Klijent 2. Na strani servera se izvršava program koji kreira dokument 2. Server vraća klijentu kopiju programa Program Dokument Server Klijent 3. Program se izvršava na strani klijenta i kreira dokument. Program Program Program Dokument Internet i Web tehnologije Klijent Program Program Server 3. Server vraća klijentu kreirani dokument Server Klijent Dokument Klijent Program Server Klijent Server Dinamički dokumenti - CGI 1. 2. 3. 4. 5. 6. 7. 8. CGI (Common Gateway Interface Korisnik popunjava formu opšti interfejs pristupa). CGI predstavlja Forma se vraća serveru standardizovani interfejs koji omogućava Web serveru da ˝razgovara˝ Forma se predaje CGI-u sa pozadinskim programima CGI postavlja upit bazi podataka Iz baze se preuzimaju traženi podaci CGI kreira HTML stranicu Stranica se vraća klijentu Zastereli pristup i prikazuje u pretraživaču Pretraživač Korisnik Baza podataka na hard disku CGI skript Web server 1 2 3 4 8 7 tehnologije Internet i Web 6 5 Dinamički dokumenti - PHP 1. PHP (Hypertext Processor) Skript sadržan u HTML stranici <?php . . . ?> Klijent upućuje zahtev za .php stranicom 2. http://www.abcd.com/test.php <html> <body> <h2>Ovo je sve sta znam o tebi:</h2> <?php echo $HTTP_USER_AGENT?> </body> </html> Web server otvara fajl test.php, pronalazi u njemu PHP skript, uzvršava ga, modifikuje stranicu i vraća je klijentu Internet i Web tehnologije 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 Dinamički dokumenti - PHP Primer 2/2 <html> action.php Parametri iz forme <body> <h1> Odgovor:</h1> Zdravo <?php echo $name;?>. Predvidjanje: sledece godine imaces <?php echo $age + 1;?> godina </body> </html> <html> <body> <h1> Odgovor:</h1> Zdravo Barbara. Predvidjanje: sledece godine imaces 25 godina </body> </html> Internet i Web tehnologije Web server procesira i modifikuje stranicu action.php pre nego što je vrati klijentu 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 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) 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) Internet i Web tehnologije 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. Internet i Web tehnologije 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=”http://www.elfak.ni.ac.yu/java-apps” CLASSID = ˝java:bgsound.class˝ Direktorijum na serveru koji DATA = ˝bgsound.data˝ sadrži aplete CODETYPE = ˝audio/MP3˝></OBJECT> Ime fajla u kome je smešten Tip podataka sadržanih u aplet bgsound.data Ime fajla sa podacima koje aplet treba da procesira Učitani Aplet se prosleđuje virtuelnoj mašini gde se izvršava U primeru: reprodukuje muziku Internet i Web tehnologije sadržanu u bgsound.data 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 Internet i Web tehnologije 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 JavaScript Primer - procesiranje forme <html> <head> <script language="javascript" type="text/javascript"> function response(test_form){ var person = test_form.name.value; Funkcija koja procesira var years = eval(test_form.age.value) + 1; document.open(); formu 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> Događaj koji startuje Unesi svoje ime: <input type="text" name="name"> <p> funkciju Koliko imas godina?: <input type="text" name="age"> <p> <input type=submit value="submit" onclick="response(this.form)"></form> </body> </html> Internet i Web tehnologije JavaScript vs. PHP Pretraživač Server 1 2 1 4 3 2 Korisnik Korisnik PHP modul Pretraživač JavaScript Moguće je, i uobičajeno, da Web stranica sadrži oba skript jezika, sa raspodeljenim zadacima Internet i Web tehnologije Generisanje i obrada Web sadržaja XSL interpretator Klijentski racunar Serverski racunar Pretraživač Web server PHP XML interpretator Pomocne aplikacije ASP JSP HTML interpretator JavaScript Plug-in Java virtuelna masina interpretator Internet i Web tehnologije CGI 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 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. 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 Internet i Web tehnologije HTTP - Formati poruka Zahtev Odgovor Metod Statusna linija Zaglavlje Zaglavlje Prazna linija Prazna linija Telo (opciono) Telo (opciono) Internet i Web tehnologije 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 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: PUT Kada je stranica kreirana ili poslednji put modifikovana, tip sadržaja stranice i sl. 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 Internet i Web tehnologije HTTP - Formati poruka Metodi DELETE TRACE Testiranje veze sa serverom Serveru vraća primljenu poruku zahteva. CONNECT Brisanje (uklanjanje) stranice sa Web servera 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. Internet i Web tehnologije 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; 204 - odgovor ne sadrži telo 3xx Preusmeravanje 301 - stranica je premeštena na drugu URL lokaciju; 304 - keširana stranica je još uvek validna. 4xx Greška klijenta 403 - zabranjen pristup stranici; 404 - stranica nije pronađena. 5xx Greška servera 500 - interna greška servera; 503 - kasnije pokušaj ponovo Internet i Web tehnologije HTTP - Formati poruka Zaglavlja poruka Zaglavlje Tip Sadržaj User-Agent Zahtev Informacija o pretraživaču i platformi Accept Zahtev Tip stranica koje klijent može da procesira Accept-Charset Zahtev Skup karaktera koji je prihvatljiv za klijenta Accept-Encoding Zahtev Kodiranje stranice koje klijent može da procesira Accept-Language Zahtev Prirodni jezik koji klijent može da procesira Host Zahtev DNS ime servera Authorization Zahtev Podaci za autorizaciju klijenta Cookie Zahtev 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 Odgovor Način kodiranja stranice Content-Language Odgovor Prirodni jezik korišćen na stranici Content-Length Odgovor Veličina stranice u bajtovima Content-Type Odgovor MIME tip stranice Last-Modified Odgovor Datum i vreme poslednje promene stranice Location Odgovor Set-Cookie Odgovor Instrukcija klijentu da zahtev pošalje na neko drugo mesto Internet i Web tehnologije Sadrži cookie kojeg server šalje klijentu 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-8859-5 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 Internet i Web tehnologije 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 cookiea 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 Internet i Web tehnologije 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. Internet i Web tehnologije HTTP - Primer odgovora Internet i Web tehnologije 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 Internet i Web tehnologije 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. Web server Klijent LAN Proksi Globalni Internet Web server Keš Web server 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 Web server Klijent LAN Proksi Globalni Internet Web server Keš Web server 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. Pretraživač Proksi Proksi Ruter Internet Klijentski računar LAN Internet i Web tehnologije ISP LAN 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 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) 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 Internet i Web tehnologije Keširanje Drugi način Uslovni GET zahtev - HTTP poruka koja sadrži zaglavlje: IfModified-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 IfModified-Since GET /page.htm HTTP /1.1 If-Modified-Since: datum, vreme GET /page.htm HTTP /1.1 1 2 Proksi server Pretraživač 4 HTTP /1.1 200 Accepted Content-type: text/html [zahtevana HTML stranica u telu poruke] Web server 3 Internet i Web tehnologije HTTP /1.1 304 Not-modified [prazno telo poruke] 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) GET /page.htm HTTP /1.1 If-Modified-Since: datum, vreme GET /page.htm HTTP /1.1 1 2 Proksi server Pretraživač 4 HTTP /1.1 200 Accepted Content-type: text/html [zahtevana HTML stranica u telu poruke] Web server 3 Internet i Web tehnologije HTTP /1.1 304 Not-modified [prazno telo poruke] 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). 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 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 Klijent Globalni Internet Firewall Internet i Web tehnologije intranet Web server