IX. APLIKACIJSKI SLOJ
- World Wide Web (WWW, W3, Web) - mrežni servis (ili
proširenje i sinteza drugih Internet servisa) koji pomaže u pretraživanju
mrežnih resursa
- projekt koji je omogućio stvaranje univerzalne
informacijske baze podataka koja je na mreži dostupna ljudima širom
svijeta i u kojoj su informacije međusobno povezane tako da se lako
pretražuju
- Internet - fizička mreža računala, WWW - “mreža
ljudskog znanja”
- razvoj započeo u Europskom centru za nuklearna
istraživanja (CERN)
- 1989. Tim Berners-Lee predstavio je projekt mreže
povezanih dokumenata pomoću koje su se trebale razmjenjivati ideje
istraživača te udruge iz različitih zemalja
- 1990. nastaje prvi hipertekstualni prototip
- 1993. Marc Andreessen razvija u NCSA (National Center
for Supercomputing Applications) prvo grafičko sučelje Mosaic
- 1994. Andreessen napušta NCSA i osniva Netscape
Communications kompaniju čiji je cilj da razvija klijente, servere i
ostale programe za WWW
- 1994. CERN i MIT osnivaju World Wide Web Consortium,
organizaciju koja se brine o budućem razvoju Weba i o standardizaciji
protokola (http://www.w3.org/)
- Web je u osnovi klijent-server
(korisničko-poslužiteljski) sustav
3.1 WWW s korisničke strane
- globalni hipermedijski sustav, sastoji se od kolekcije
dokumenata (stranica) međusobno povezanih hiperlinkovima ili hipervezama (hyperlinks)
- hipertekst - nelinearni tekst sa vezama na druge
dokumente
- multimedija - kombinacija teksta, slika, zvuka,
animacije, videa objedinjenih putem računala; odnosi se prvenstveno na
medije koji su po svojoj prirodi netekstualni, a ako je uključen tekst
riječ je o kraćim uputama - komandama ili objašnjenjima
- hipermedija - kombinacija hiperteksta s
multimedijskim elementima:
hipermedija = hipertekst + multimedija
- WWW klijent (preglednik, browser) je program
koji predstavlja korisničko sučelje prema WWW mreži i koji prikazuje HTML
dokumente dohvaćene s WWW servera (tekstualni: Lynx; grafički: Mosaic,
Netscape, MS Internet Explorer, Opera, Mozilla Firefox; glasovni (voce-based)
preglednici...)
- za datoteke sa slikovnim, zvučnim, video... zapisima
koje preglednik ne može prikazati, pozivaju se pomoćni programi:
- samostalni programi - helper application,
- dodaci pregledniku - plug-in, external viewer,
- preglednik dohvaća stranu tako da uspostavi TCP vezu sa
računalom na kojem se strana nalazi, te zatim po uspostavljenoj vezi šalje
poruku tražeći stranu
- primjer Web modela:

Slika: Primjer
Web modela (Tanenbaum,
1996)
- koraci između korisničkog odabira hiperveze koja
upućuje na Web stranicu TheProject.html koja se nalazi na serveru
www.w3.org i prikaza te stranice na ekranu su:
- preglednik određuje adresu stranice (URL) na
osnovu selektirane veze
-
preglednik
od DNS traži IP adresu za
www.w3.org
- DNS odgovara s 18.23.0.23
-
preglednik
uspostavlja TCP vezu na portu 80
računala 18.23.0.23
-
preglednik
šalje naredbu (GET /hypertext/WWW/TheProject.html
)
- www.w3.org server šalje datoteku
TheProject.html
- TCP veza se oslobađa
-
preglednik
prikazuje na ekranu tekst datoteke
TheProject.html
-
preglednik
dohvaća i prikazuje slike i ostale
multimedijske datoteke u TheProject.html (jednu po jednu)
- za svaki element na stranici (sliku, zvuk, ...)
preglednik treba uspostaviti novu vezu sa serverom, koristiti je i
osloboditi je - neefikasna ali jednostavna implementacija
3.2 WWW s poslužiteljske strane i HTTP
- na svakom Web sjedištu (site-u) nalazi se server koji na
TCP portu 80 osluškuje dolazeće veze od strane klijenata (obično
preglednika)
- nakon što se veza uspostavi klijent šalje zahtjev, a
server mu šalje odgovor, te se zatim veza oslobađa
- WWW poslužitelji su programi, obično instalirani na
jačim računalima, koji se koriste za spremanje i ustupanje dokumenata za
upotrebu na WWW-u
- primjeri: Apache za Unix platformu, Microsoft Internet
Information Server (IIS) za Windows platformu
- protokol za komunikaciju medu klijentima i serverima je
HTTP (HyperText Transfer Protocol)
- URL (Uniform Resource Locator) - adresa WWW
stranice npr. http://www.w3.org/hypertext/WWW/TheProject.html
HTTP (HyperText Transfer Protocol) protokol
-
HTTP protokol se temelji na
zahtjev/odgovor (request/response) paradigmi
- svaka interakcija kod HTTP protokola se sastoji od
jednog ASCII zahtjeva nakon kojeg slijedi jedan RFC 822 MIME odgovor
-
veza između klijenta i servera
uspostavlja se slijedećim fazama:
1. uspostavljanje veze (connection)
- klijent inicira uspostavljanje veze na
TCP portu 80, a server je
potvrđuje;
2. zahtjev (request)
koji klijent šalje serveru – sastoji se od metode, adrese (URL) i verzije
protokola
3. odgovor (response)
servera klijentu – u
statusnoj liniji sadrži verziju protokola i kod koji označava uspjeh ili
grešku; ako nije bilo greške šalje se traženi dokument ili objekt
4. prekidanje veze (close) - prekida je
server.
- za svaki objekt na HTML stranici uspostavlja i oslobađa
po jedna HTTP veza,
- razvoj novih verzija HTTP protokola (HTTP-NG tj.
HTTP Next Generation) koje bi trebale prenijeti sadržaj cijele
stranice odjednom
- ASCII protokol (kao i SMTP), pa se korištenjem telnet
veze na portu 80 http servera mogu direktno slati naredbe s terminala
(umjesto da to čini preglednik), primjer:

Slika: Dohvaćanje Web strane (Tanenbaum,
1996)
- klijent se prvo spoji na host i zatim šalje komandu
kojom traži stranu i navodi protokol i verziju koju koristi (HTTP/1.0)
- server u prvom retku odgovora ispisuje protokol i k
ôd
200 (znači OK); zatim slijedi RFC 822 MIME dokument koja se sastoji od
polja zaglavlja, te praznog retka nakon kojeg slijedi sam dokument
ako se šalje tekst, polje Content-Type sadrži
text/html tip i podtip, npr. za .gif sliku bi bilo:
Content-Type: Image/GIF
- ugradene metode za zahtjeve klijenta su:
GET -
zahtjev serveru da pošalje stranu kodiranu kao MIME; ako iza GET slijedi
If-Modified-Since zaglavlje, server šalje podatke samo ako su mijenjani
nakon navedenog datuma
HEAD
metoda traži samo zaglavlje Web stranice, npr. za prikupljanje informacija
koje su potrebne za indeksiranje
PUT -
obrnuto od GET, za spremanje strane na server
POST -
slična metoda kao PUT, dodaje podatke na kraj navedenog izvora npr. Web
stranice
DELETE
- briše stranu sa servera (ako je to dozvoljeno)
LINK,
UNLINK - za uspostavljenje i prekidanje veza izmedu strana i drugih
resursa
-
na svaki zahtjev server odgovara, a
odgovor se sastoji od statusne linije i mogućih dodatnih informacija (npr.
Web strana ili njezin dio)
-
statusna linija sadrži ili kod 200
(OK), ili jedan od kodova za greške, npr. 400 (bad request), 403 (forbidden)
3.3 URL (Uniform Resource Locator)
Tipovi URL-a
| Prot.
|
URL |
Objašnjenje |
| HTTP |
http://<host>:<port>/<path>?<search> |
Dohvaćanje s HTTP servera |
| FTP |
ftp://<login>:<password>@<host>:<port>/<path>;
type=<type_code> |
Dohvaćanje s ftp servera |
| Gopher |
gopher://
<host>:<port>/<gopher_path> |
Dohvaćanje s gopher servera |
| e-mail |
mailto:<login@host> |
Slanje emaila |
| Telnet |
telnet://<login>:<password>@<host>:<port>/ |
Spajanje na udaljeno
računalo |
| WAIS |
wais://<host>:<port>/<database>?<search>
wais://<host>:<port>/<database>/<type>/<path> |
Dohvaćanje iz wais baza |
| Usenet |
news:<conference_group>
news: //<host>:<port>/<conference_group>/
<messag_number> |
Dohvaćanje novinskih grupa |
| File |
file:///<host>/<path> |
Dohvaćanje s lokalnog
računala |
3.4 HTML (HyperText Markup Language)
- standardni jezik koji WWW koristi za kreiranje i
prepoznavanje hipermedijskih dokumenata
- podskup je SGML-a (Standard Generalized Markup
Language), složenijeg jezika za formatiranje dokumenata kojeg prvenstveno
zanima sadržaj dokumenta, a ne izgled
- ne ovisi o računalnim sustavima na kojima će se
dokumenti prikazivati
- određuje se struktura dokumenta (koji dio je naslov,
odlomak, lista…), a ne izgled kao kod standardnih programa za obradu
teksta (na pr. Word)
- trenutna verzija je HTML 4.0
HTML dokumenti
- tekstualne (ASCII) datoteke sa sadržajem i naredbama za
formatiranje koje opisuju kako će taj sadržaj biti prikazan na ekranu
- imaju nastavak .html ili .htm; kreiraju se i testiraju
lokalno (off-line), a na poslužitelj na pr. www.riteh.hr korisnik
ih postavlja tako da ih smjesti u public_html direktorij koji
kreira na svome home direktoriju. Svoj home page treba kreirati kao
datoteku posebnog imena index.html koji se tada poziva kao:
http://www.riteh.hr/~login_korisnika/
• HTML dokumenti mogu se kreirati:
- direktno s običnim editorima teksta (na primjer Notepad
za Windows platformu)
- koristeći specijalne editore ili HTML autorske alate,
primjeri:
- MS Word koji nudi spremanje teksta u HTML
formatu
- WebEdit dodaje odabrane HTML oznake u označeni
tekst
- WYSIWYG MS FrontPage prikazuje dodane HTML
elemente u dokumentu onako kako će izgledati u WWW pregledniku

Slika: Primjer HTML dokumenta u Notepadu

Slika: Gornji primjer u pregledniku MS
Internet Explorer

Slika: Gornji primjer u MS Front Page
editoru
HTML oznake (kodovi, naredbe, eng. tags)
- daju informacije o izgledu i hiperlinkovima
- definiraju početak i kraj naslova, odlomaka, listi,
stilova teksta, hiperveza, itd.
- većina HTML elemenata označava se u dokumentu pomoću
početne oznake koja daje ime i atribute elementa, zatim slijedi sam
sadržaj elementa i na kraju završna oznaka
- početna oznaka između znakova < i >, a završna između
znakova </ i >
- nije bitno da li se oznake pišu malim ili velikim
slovima, isto je: <HTML> ili <html> ili <Html> ili <hTmL>.
<B>Ovaj će tekst na ekranu biti podebljan (bold)!</B>
<P>Ovo je primjer vrlo kratkog odlomka.</P>
Za odlomak nije potrebno pisati obje oznake.<P>
• osnovne HTML elemente dijelimo u nekoliko grupa:
1. Strukturalni elementi - označavaju datoteku kao HTML dokument i daju
informacije o podacima u njemu.
2. Oblikovanje odlomaka - označavaju krajeve odlomka,
naslove različitih nivoa
3. Oblikovanje znakova - označavanje dijelova teksta kao
podebljanog, nakošenog, podcrtanog...
4. Označavanje listi - označavanje dijelova teksta kao
listi (numerirana, nenumerirana, definicijska lista...)
5. Kreiranje hiperveza - informacije o međusobnom
povezivanju dokumenata
6. Uključivanje slika i slikovnih mapa - prikazivanje
datoteka sa slikama, kreiranje slikovnih mapa osjetljivih na dodir
7. Kreiranje tablica - služe za strukturalni prikaz
podataka u dokumentu
8. Kreiranje obrazaca (eng. forms) - omogućuju Web
serveru primanje informacije koje unosi korisnik
9. Kreiranje okvira (eng. frames) - stranica se dijeli
na više područja
10. Uključivanje objekata i multimedijalnih zapisa -
prikazivanje datoteka sa zvučnim i video zapisom, animacijom
3.5 Pretraživanje WWW
- tražilice (Search Engines)
- metatražilice (Meta-Search Engines)
- tematski katalozi (Directories)
- portali (portal services)
- lokalne tražilice, katalozi, portali
a) Tražilice (Search Engines)
1. Prikupljanje
- Web se može promatrati kao veliki graf čiji su čvorovi
stranice, a lukovi hiperlinkovi, pa se pri pretraživanju mogu koristiti
algoritmi za obilaženje čvorova grafa (problem: veličina grafa)
- primjer za jednostavnu tražilicu:

Slika: Podatkovne strukture jednostave
tražilice (Tanenbaum,
1996)
- potrebne su 3 podatkovne strukture:
- tablica (linear array) url-table koja
ima po jedan redak za svaku Web stranicu, a koji sadrži 2 pointera:
jedan na URL stranice i jedan na naslov stranice (title)
- heap - za čuvanje URL-a
i naslova stranice (stringovi varijabilne dužine)
- hash tablica (hash
table) sa n redaka - svaki URL hash funkcija pretvara u neki
nenegativni integer izmedu 0 i n; svi URL koji su dobili neku istu
vrijednost k grupiraju se zajedno u listu koja započinje u k-tom retku
tabele: svaki URL koji se dodaje u url-table dodaje se i u
hash tablicu, a njezina je glavna svrha da se počne traženje sa
zadanim URL-om i da se brzo ustanovi da li je već prisutan u url-table
- razlikuju se dvije faze: traženje i indeksiranje:
Traženje
- osnova jednostavne tražilice je rekurzivna procedura
process_url koja uzima kao ulaz URL string i hash-ira ga da provjeri
je li već prisutan u url-table
- ako je URL nepoznat (nije u tabeli), stranica se
dohvaća, URL i naslov se kopiraju na heap i pointeri na ta dva
stringa se dodaju u url-table, a URL se dodaje i u hash
tablicu
- process_url izvlači sve
hiperlinkove na stranici i poziva rekurzivno process_url za svaki
link sa njegovi URL-om kao ulaznim parametrom
- problem kod algoritma: traži prvo u dubinu (depth-first
search) i rekurzivno se ponavlja onoliko puta koliko je duga najduža
neciklička staza na Webu, pa se može desiti da se nikada ne završi
pretrazivanje; zato se u praksi koristi pretrazivanje u širinu (breadth-first)
Indeksiranje ključnih riječi
- procedura za indeksiranje linearno obilazi url-table
gledajući naslove i selektirajući sve riječi koje nisu na “stop-listi”
(lista prijedloga, veznika, članova...)
- za svaku selektiranu riječ, procedura ispisuje u
datoteku redak koji se sastoji od te riječi iza koje slijedi njezin
trenutni broj u url-table
- tako dobivena datoteka sortira se po riječima i sprema
na disk
2. Pretraživanje preko korisničkog sučelja
- korisnik unaša tražene ključne riječi u formu za unos
podataka uključenu u HTML dokument
- POST zahtjev šalje ključne riječi CGI skripti
(programu) koja u datoteci-indeksu pronalazi koji riječi u url-table
odgovaraju unosu; ako je za povezivanje ključnih riječi korišteno Boolean
AND, računa se presjek, ako se koristilo OR, računa se unija
- u url-table se pronalaze naslovi i URL-ovi od
kojih se složi Web stranica koja se šalje natrag korisniku kao odgovor na
POST zahtjev, a nakon što pretraživač prikaže tu stranicu, korisnik može
odabrati neki od ponuđenih hiperlinkova
- zastarjeli URL-ovi (pokazuju na strane koje više ne
postoje),
- računala sa Web serverima koja su privremeno
nedostupna
- sve strane ne mogu se dohvatiti od polaznog URL-a
- neke se strane mogu dohvatiti samo preko mapa
osjetljivih na dodir (clickable maps)
- neki dokumenti ne mogu se indeksirati (npr. zvučni
zapisi)
- svi dokumenti nemaju naslov
- search engine može potrošiti svu memoriju ili prostor
na disku
- čitavi proces može trajati predugo
Primjeri:
Google (http://www.google.com)
AltaVista (http://www.altavista.com)
AskJeeves
(http://www.ask.com/)
Excite (http://www.excite.com/)
FAST (http://www.alltheweb.com)
HotBot (http://hotbot.lycos.com)
Go (http://www.go.com/)
Lycos (http://www.lycos.com/)
b) Metatražilice (Meta-Search Engines)
c) Tematski katalozi (Directories)
-
Web resursi su organizirani u hijerarhijske
kataloge po područjima ili kategorijama (na primjer, umjetnost, obrazovanje,
računala, politika, znanost, zabava,…)
-
odabiranje i organizaciju resursa vrše ljudi,
a ne automatizirani programi
-
pretraživanje započinje od najvišeg nivoa od
kojeg se spušta po hijerarhiji ovisno o izboru korisnika
-
nedostatak: ne može se uvijek predvidjeti
način na koji su teme klasificirane – ponekad se koriste standardne sheme
kao što je UDK za biblioteke
Primjeri:
Yahoo (http://www.yahoo.com)
AltaVista (http://www.altavista.com)
LookSmart (http://www.looksmart.com)
Netscape Search (http://search.netscape.com/)
d) Portali (portal services)
-
"ulazne točke" na Internet koje nude
različite informacije
-
objedinjuju karakteristike tražilica i
tematskih kataloga, te nude i druge usluge, na primjer pronalaženje email i
poštanskih adresa, telefona i fax brojeva, čitanje vijesti i vremenskih
izvještaja, online trgovinu, besplatne email adrese
-
često personalizirane usluge za
prijavljenog korisnika
Primjeri:
Microsoft Network (http://www.msn.com)
Yahoo (http://www.yahoo.com)
Excite (http://www.excite.com)
Go/InfoSeek (http://infoseek.go.com)
e) Lokalne tražilice, katalozi,
portali
direktorij WWW.HR (http://www.hr/wwwhr/)
– home page Hrvatske http://www.hr
portal HThinet
http://moj.hinet.hr
portal VIPonline
http://www.vip.hr/
Iskon katalog
http://www.iskon.hr/
|
 |
 |
|