WEB o World Wide Web ili samo Web
WEB o World Wide Web (ili samo Web) - kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u. Internet i Web tehnologije
Hipertekst o Koncept stranice koja sadrži pokazivače na druge srodne stranice. Internet i Web tehnologije
Web na Internetu o Dve komponente: n Web pretraživač (browser) - klijent o o n Aplikacioni program za pribavljanje i prikazivanje stranica. Najpoznatiji pretraživači: Internet Explorer i Natscape Navigator Web server o Čuva i isporučuje Web stranice Internet i Web tehnologije
Web na Internetu Internet i Web tehnologije
Web pretraživač o o o 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 n n 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 Internet i Web tehnologije /home/index. html. Pretraživač pribavlja i prikazuje sve slike iz ovog fajla.
Web pretraživač o o HTML - jezik za pisanje Web stranica Web pretraživač - HTML interpretator + o Dodatne funkcije koje olakšavaju navigaciju na Web-u: n n n 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 o Web stranice osim HTML mogu sadržati: n n n o o Dokumente u PDF formatu Fotografije u JPEG formatu Muziku u MP 3 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 o o 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: n n Plug-in-ovi (dodaci programu) Pomoćne (helper) aplikacije Internet i Web tehnologije
Plug-in o o 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 n n n 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 o o o 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 plugin-a, ali ne zahteva bilo kakvu izmenu u pretraživaču Internet i Web tehnologije
Pomoćne aplikacije o Kompletni programi koji se izvršavaju nezavisno od pretraživača n o o 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. Internet i Web tehnologije
Pomoćne aplikacije o Koriste MIME tip application n n o o 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). n 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 o o o 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 o o o 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 o Web server - program koji neprekidno, u petlji, obavlja sledeći niz aktivnosti: n n n o 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 o o 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. n n 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 o o Kako obraditi veći broj zahteva u sekundi ? Prvo rešenje - keš: n n 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 o o o 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 Internet i Web tehnologije disk
Web server - multithreading server o U zavisnosti od tipa pristiglog zahteva, pozadinski modul obavlja neki podskup sledećeg niza aktivnosti: n n n n n 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 o o o 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š n n 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 Internet i Web tehnologije
URL o o URL-u (Uniform Resource Locator - uniformni lokator resursa) - mehanizma za imenovanje i lako lociranje stranica Daje odgovor na pitanja: 1. 2. 3. o o 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 o Ime fajla: relativna putanja + ime samog fajla Deo za ime fajla može biti izostavljen: n n o 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 n n http: //es. elfak. ni. ac. yu/iw/ Web server se preusmerava na podrazumevani fajl u tom direktorijumu o http: //es. elfak. ni. ac. yu/iw/index. html Internet i Web tehnologije
URL o 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: CoursesIWTuwt. doc news Newsgroup news: comp. os. minix gopher Gopher gopher: //gopher. tc. umn. edu/11/Libraries mailto slanje elektronske pošte mailto: ppetrovic@elfak. ni. ac. yu telnet Udaljeni login telnet: //www. w 3. org: 80 Internet i Web tehnologije
Cookie o Web ne koristi koncept stanja. (Kaže se da je Web stateless (bez stanja) ili bez memorije). Kod Web-a ne postoji sesija: n o 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 n n n 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 o Da li je dovoljno da sever vodi evidenciju od IP adresama sa kojih se upućuju zahtevi ? n Ne o o o 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 n n Mali (najviše 4 KB) 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 o Sadrži do pet polja: n o o o (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 o Kako se koristi: n n 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) o o 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 n n o o oblast 1=tehnika oblast 2=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 o o 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 o o HTML (Hyper. Text 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 Umeće novi red (prelom linije) <p> Započinje novi paragraf <hr> Umeće horizonalnu liniju po celoj dužini stranice <img src = “. . . “> Prikazuje. Internet sliku i 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> <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 </tr> <tr><th>Slike <td> x </tr> <tr><th>Liste <td> x </tr> <tr><th>Aktivne mape i slike<td> <td>x<td>x</tr> <tr><th>Forme<td>   <td> x </tr> <tr><th>Formule<td>   <td> x </tr> <tr><th>Tulbarovi<td>   <td> <td> x </tr> <tr><th>Tabele<td> <td>x</tr> <tr><th>Ugradnja objekata<td> <td> <td>x </tr> <tr><th>Skripte<td> <td> <td>x</tr> </table> </body> </html> Internet i Web tehnologije
HTML - Forme o o 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: n n 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> <h 1> Forma za narucivanje knjiga </h 1> <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 o Kada korisnik klikne na Submit dugme, pretraživač pakuje informacije prikuljene sa forme u jednu dugačku liniju i šalje je serveru na obradu: n o 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 o o HTML, sa ili bez formi, ne bavi se struktuiranjem podataka na Web stranici niti razdvaja sadržaj od formatiranja. Nove aplikacije, novi zahtevi n 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 o o W 3 C - organizacija koja se bavi razvojem Web-a i standardizacijom protokola za Web uvela je Dva nova jezika: n n XML (e. Xtesible Markup Language). opisuje Web sadržaj na struktuirani način XSL (e. Xtensible 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> <title> Internetworking with TCP/IP, Vol I</title> <author> Douglas E. Comer </author> <year> 2000 </year> </book> <title> Data Communications and Networking</title> <author> Behrouz A. Forouzan, 2/e </author> <year> 2001 </year> </book> Internet i Web tehnologije </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
XML o Omogućava kreiranje složenijih struktura: n n n o 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. w 3. 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> o o 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 o XML/XSL predstavlja daleko fleksibilnije rešenje od HTML n n n 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 o Ne postoje u unapred definisanom obliku, već se kreiraju na zahtev. n n 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 1. Klijent šalje zahtev serveru 2. Na strani servera se izvršava program koji kreira dokument 3. Server vraća klijentu kreirani dokument vs. Aktivni 1. Klijent šalje zahtev serveru 2. Server vraća klijentu kopiju programa 3. Program se izvršava na strani klijenta i kreira dokument. Internet i Web tehnologije
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 Internet i Web tehnologije
Dinamički dokumenti - PHP o o 1. PHP (Hypertext Processor) Skript sadržan u HTML stranici <? php. . . ? > Klijent upućuje zahtev za. php stranicom n 2. http: //www. abcd. com/test. php <html> <body> <h 2>Ovo je sve sta znam o tebi: </h 2> <? 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> <h 1> Odgovor: </h 1> Zdravo <? php echo $name; ? >. Predvidjanje: sledece godine imaces <? php echo $age + 1; ? > godina </body> </html> <body> <h 1> Odgovor: </h 1> 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 o PHP n n o 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: n JSP (Java. Server Pages). o n 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 o o o 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 o Dva načina za kreiranje aktivnih dokumenata: n n 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 (Java. Script) Internet i Web tehnologije
Aktivni dokumenti - Java o o 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 o o 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” n CLASSID = ˝java: bgsound. class˝ Direktorijum na serveru koji n DATA = ˝bgsound. data˝ sadrži aplete n CODETYPE = ˝audio/MP 3˝></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 n o Učitani Aplet se prosleđuje virtuelnoj mašini gde se izvršava n U primeru: reprodukuje muziku Internet i Web tehnologije sadržanu u bgsound. data
Aktivni dokumenti - Java/Active. X o Aplet može da sadrži i grafičku animaciju ili video. n o o o 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: Active. X kontrole - Microsoft-ov odgovor na Java aplete n n n 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 - Java. Script o o 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
Java. Script 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; formu document. open(); document. writeln("<html><body>"); document. writeln("Zdravo" + person + ". "); 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
Java. Script vs. PHP o 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 Internet i Web tehnologije
HTTP o o o Protokol koji se koristi za komunikaciju između Web pretraživača i Web servera HTTP (Hyper. Text 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 o Neperzistentna veza (verzije 0. 9 i 1. 0) n n n 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 o Perzistentna veza (verzija 1. 1) n n n 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 Internet i Web tehnologije
HTTP - Formati poruka Metodi o 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 o GET n n o Klijent zahteva od servera da pošalje traženu stranicu GET ime_fajla HTTP /1. 1 HEAD n n Klijent traži od servera ne celu stranicu već samo njeno zaglavlje Zaglavlje stranice sadrži informacije o stranici tipa: o o PUT n n n o 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 n n n 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 o DELETE n o TRACE n n o Testiranje veze sa serverom Serveru vraća primljenu poruku zahteva. CONNECT n o Brisanje (uklanjanje) stranice sa Web servera Za buduće namene OPTIONS n 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 o o 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 1 xx Informativno 100 - server pristaje da obradi klijentov zahtev 2 xx Uspešno 200 - zahtev je prihvaćen i obrađen; 204 - odgovor ne sadrži telo 3 xx Preusmeravanje 301 - stranica je premeštena na drugu URL lokaciju; 304 - keširana stranica je još uvek validna. 4 xx Greška klijenta 403 - zabranjen pristup stranici; 404 - stranica nije pronađena. 5 xx 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 o o 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 n n o o 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 o o o 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 n n 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 Internet i Web tehnologije
HTTP - Formati poruka Zaglavlja poruka o o o 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 URLu. Internet i Web tehnologije
HTTP - Primer odgovora Internet i Web tehnologije
Proksi serveri i keširanje stranica o o o 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: n n Firewall Proxy server Internet i Web tehnologije
Proksi serveri i keširanje stranica o o o 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. Internet i Web tehnologije
Proksi serveri o o 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 Internet i Web tehnologije
Proksi serveri o o Hijerarhija proxy servera n Lokalni proxy - proces na klijentskom računaru n Korporacijski proxy - proxy server interaneta n 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. Internet i Web tehnologije
Proksi serveri o o Podrška u HTTP, putem nekoliko namenskih zaglavlja Web server može da kontroliše kako proksiji obrađuju svaku Web stranicu n n n 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 o Koliko dugo treba stavku čuvati u kešu ? n n n 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 o o HTTP dozvoljava da server kontroliše keširanje na dva načina: Prvi način: n n n 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 o Drugi način n Uslovni GET zahtev - HTTP poruka koja sadrži zaglavlje: If-Modified -Since (˝ako je modifikovana posle. . . ˝). n Korak 1: Pretraživač upućuje standardni GET zahtev proxy-ju. Pretpostavimo da proxy u svom kešu ima traženu stranicu. n Korak 2: proxy šalje uslovnu GET poruku serveru sa upisanim vremenom poslednje modifikacije keširane kopije u zaglavlju If. Modified-Since Internet i Web tehnologije
Keširanje o o 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) Internet i Web tehnologije
Keširanje o Kombinacija dva pristupa: n n o 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: n n 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 o Intranet - lokalne mreže na kojima se koristi TCP/IP: n n n 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 o o o 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
- Slides: 84