Računalne mreže
 Studij elektrotehnike
 Tehnički fakultet Sveučilišta u Rijeci
 
 

 

WWW

 

 

Home : O kolegiju : Predavanja : Vježbe : Ocjenjivanje

 

IX. APLIKACIJSKI SLOJ


3. WORLD WIDE WEB (WWW)

  • 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:
  1. preglednik određuje adresu  stranice (URL) na osnovu selektirane veze
  2. preglednik od DNS traži IP adresu za www.w3.org
  3. DNS odgovara s 18.23.0.23
  4. preglednik uspostavlja TCP vezu na portu 80 računala 18.23.0.23
  5. preglednik šalje naredbu (GET /hypertext/WWW/TheProject.html )
  6. www.w3.org server šalje datoteku TheProject.html
  7. TCP veza se oslobađa
  8. preglednik prikazuje na ekranu tekst datoteke TheProject.html
  9. 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)

  • standardna adresa koja se koristi za pronalaženje stranice Web poslužitelja ili drugog resursa na Webu ili Internetu i predstavlja opis lokacije
  • mrežno proširenje standardnog koncepta imena datoteke, potrebno naznačiti:
    • ime datoteke u direktoriju,
    • na kojem se računalu u mreži nalaze ta datoteka i direktorij,
    • pomoću koje metode (protokola) se datoteka može dohvatiti

    protokol://ime.računala/direktorij/datoteka

     

  • resurs koji se naznačuje ne mora biti datoteka, može biti upit, rezultat finger ili archie naredbe, email adresa,...
  • tri osnovna dijela URL adrese:
    1. ime protokola za dohvat podatak nakon kojeg slijedi dvotočka i dvije kose crte (://)
    2. DNS ime Internet računala na kojem se nalazi traženi servis (opciono slijedi i broj porta) nakon kojeg slijedi jedna kosa crta (/)
    3. ime datoteke i direktorija u kojima se ona nalazi
  • potpuni URL: navode se sva tri dijela URL-a
  • djelomičan URL: ovisno o tipu URL-a neki od 3 dijela se može izostaviti
     

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)

  • na automatiziran način korištenjem posebnih programa (spiders, worms, knowbots - knowledge robots) pregledavaju se i indeksiraju Web stranice te se podaci o njima dodaju u bazu podataka
  • korisnik u obrasce za unos podataka na Web sučelju tražilice upisuje ključne riječi po kojima se pretražuje baza
  • kao rezultat pretraživanja ispisuju se URL-ovi stranica koje odgovaraju upitu
    kod tražilica 2 elementa:

    1. programi za prikupljanje i indeksiranje (katalogiziranje) sadržaja na WWW

    2. programi za pretraživanje preko sučelja koje koristi forme za unos ključnih riječi
     

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:
  1. 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)
  2. heap - za čuvanje URL-a i naslova stranice (stringovi varijabilne dužine)
  3. 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

 

  •  mogući problemi:
  • 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)

  • korisnik putem jedinstvenog sučelja postavlja upit kojeg metatražilica prosljeđuje većem broju tražilica

  • nemaju vlastite baze podatak i robot programe

  • Primjeri:

    Metacrawler (http://www.metacrawler.com/)

    Search. com (http://www.search.com/

 

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

  • ograničeni na pretraživanje ograničenih zenljopisnih područja
    primjeri u Hrvatskoj:
     

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/


© 2004. N.Hoić-Božić