RP1 - XHTML

✓XHTML1

Linkovi

Kao ~sto je ve~t re~ceno, a element slu~zi za povezivanje XHTML dokumenata -- kako me~dusobno, tako i s ostalim objektima ~sirom cijelog Interneta. Ideja je odre~deni dio teksta proglasiti (hiper)linkom -- poveznicom s nekim drugim dokumentom, ili njegovim dijelom. Taj dio teksta se obi~cno renderira u drugoj boji i potcrtan, te se klikanjem na njega trenutni dokument zatvara, a otvara se onaj dokument na kojeg link pokazuje. Ako browser ne zna prikazati polinkani dokument u svom prozoru, obi~cno ~te ponuditi korisniku skidanje (download) datoteke na njegov disk.
Browser naj~ce~s~te pru~za na~cin kako se vratiti natrag na polazni dokument, jednom kad pro~citamo ono na ~sto nas je link uputio (gumb "Back" na toolbaru, ili tipka "Backspace" na tipkovnici, su ~cesti izbori).

(Postoji jo~s bar jedan element namijenjen povezivanju dokumenata. To je link element, koji je donekle sli~can a elementu, no glavna razlika je u tome ~sto je link element namijenjen "nevidljivom" povezivanju: nalazi se unutar head elementa (ne unutar body elementa kao a), ne renderira se unutar glavnog prozora, i slu~zi uglavnom da ga ra~cunalo pro~cita i interpretira -- vidjeli smo primjer povezivanja dokumenta sa CSS datotekom.)

Dakle, sadr~zaj a elementa je jednostavno tekst (ili slika, ili bilo kakav linijski sadr~zaj), koji ~te biti progla~sen linkom, i aktivirati vezu kad ga korisnik "pokrene" (na primjer, klikne na njega). Kamo veza pokazuje, govori href (hyperreference) atribut a elementa. Njegova vrijednost je URI, niz znakova koji je zami~sljen kao adresa bilo kojeg dokumenta ili njegovog imenovanog elementa na Internetu.

URI se, grubo govore~ti, sastoji od 4 dijela: osnova, staza, ime datoteke, i identifikator. Naravno, ne moraju se svi navesti.

  1. Osnova je adresa sitea odnosno servera/domene na kojoj se nalazi dokument koji ~zelimo povezati. Obavezno po~cinje imenom protokola (za obi~cno surfanje webom to je "http://"), te zavr~sava s "/" ("/" na kraju ~te ve~tina browser~a dodati sama, ali "http://" moramo napisati ako ~zelimo navesti apsolutnu adresu). Ako se ne navede, podrazumijeva se site na kojem se nalazi trenutni dokument. Primjer: http://www.google.com/.
  2. staza pokazuje kako od korijenskog web direktorija osnove (ako je osnova navedena), ili od trenutnog direktorija (ako osnova nije navedena), do~ti do datoteke koju tra~zimo. Ako se ne navede, podrazumijeva se tzv. osnovni direktorij, koji je naj~ce~s~te (ako nije druga~cije postavljeno u samom dokumentu) trenutni direktorij u kojem se dokument nalazi. Tako~der zavr~sava s "/", i tako~der ~te ve~tina browser~a sama staviti "/" na kraj ako ga mi ne stavimo. Primjer osnove zajedno sa stazom: http://www.math.hr/~veky/unix/perl/.
  3. Ime datoteke locira konkretni dokument kojeg ~zelimo dohvatiti. Obi~cno ima ekstenziju (dio imena iza zadnje to~cke, ako postoji), koja govori kojeg je datoteka tipa. XHTML dokumenti obi~cno imaju ekstenziju ".html" ili ".xhtml". Ako nije navedeno, a navedena je osnova ili staza, obi~cno se podrazumijeva "index.html". Primjer URIa oblika osnova+staza+datoteka: http://www.elon.edu/e-web/academics/math/muse.xhtml.
  4. I za kraj, identifikator, ako postoji, i ako ime datoteke odgovara XHTML dokumentu, odre~duje to~cno mjesto unutar dokumenta na koje link vodi. Ako ne navedemo ime datoteke (ni osnovu ni stazu), podrazumijeva se mjesto unutar trenutno otvorenog dokumenta.
    Identifikator se postavlja daju~ti bilo kojem elementu dolaznog dokumenta atribut imena id. Prilikom referenciranja na taj identifikator, moramo prije njega staviti znak "#". Na primjer, URI http://xrl.us/veky/rp1/vjezbe3/renderline.html bi vas odveo na stranicu na kojoj je prikazano kako va~s browser renderira primjere navedene u poglavlju o ~cesto kori~stenim linijskim elementima. Unutar tog dokumenta, postoji npr. element <h5 id="code">code, kbd, var, samp</h5>. Vidimo da on ima atribut id, ~cija je vrijednost code. To zna~ci da ~te nas URI http://xrl.us/veky/rp1/vjezbe3/renderline.html#code odvesti direktno na taj element, usred gore navedene stranice.

(Prethodni HTML standardi dopu~stali su povezivanje samo preko a elemenata, koji su onda u tu svrhu imali poseban atribut name za "dosko~cno mjesto" u dokumentu. U XHTMLu svaki element mo~ze poslu~ziti kao dosko~cno mjesto, pa tako i a element -- ali ne postavljanjem njegovog name atributa, ve~t postavljanjem id atributa, kao i za svaki drugi element. detaljnije...)

Kamo link pokazuje, naj~ce~s~te mo~zemo vidjeti u status baru u dnu prozora browsera, no taj podatak se mo~ze krivotvoriti, pa mu ne treba slijepo vjerovati ako se radi o ne~cem va~znom. Ako ~zelimo biti sigurni, najsigurnije je direktno u address bar utipkati URI koji ~zelimo.


Dakle, kad ~zelimo povezati na~s dokument s drugim dokumentom u istom direktoriju, mo~zemo kao URI navesti samo ime datoteke. ~Cak i ako nisu u istom direktoriju, mo~zemo pomo~tu ne~ceg poput "../../dir1/dir2/datoteka.html" opisati relativan polo~zaj jednog dokumenta u odnosu na drugi. To ima svojih prednosti, jer ako kasnije premjestimo svoj site na drugu adresu, svi unutra~snji linkovi ~te i dalje raditi. S druge strane, kad se povezujemo na neki drugi site na Internetu, moramo navesti njegovu apsolutnu adresu, i tada URI moramo zapo~ceti s http:// (ili kakvim drugim protokolom). ~Cesta je gre~ska napisati po~cetni a tag kao "<a href='www.google.com'>", no to skoro sigurno nije ono ~sto smo htjeli. Gornji URI ~te jednostavno u trenutnom direktoriju poku~sati na~ti datoteku s imenom "www.google.com", vrlo vjerojatno je ne~te na~ti i prijavit ~te gre~sku. Zato zapamtite: ime protokola je jedino ~sto razlikuje apsolutne od relativnih URIa. Iako je nama "o~cito" da je "www.google.com" web site, a ne ime datoteke, ra~cunalnom programu to i ne mora biti tako o~cito.

Za HTTP protokol, osnova se sastoji ili od nekoliko rije~ci razdvojenih to~ckama, ili od 4 broja razdvojena to~ckama. U potonjem slu~caju to je numeri~cka IP adresa, a ina~ce se rije~ci razdvojene to~ckama zovu, ~citaju~ti unatrag vr~sna domena (TLD), domena, te poddomene. Na primjer, u "http://labs.google.com/", com je TLD, google je domena, a labs je poddomena. ~Cesto se kao ime poddomene mo~ze navesti i ime pojedinog servera na toj domeni kojem ~zelimo pristupiti, recimo s http://degiorgi.math.hr/ pristupamo serveru Degiorgi na domeni math.hr (~cesto se TLD pi~se zajedno s imenom domene).

Svaka URI osnova ima barem TLD i domenu. Vr~sne domene se dijele na nacionalne (imaju 2 slova, u skladu s imenima dr~zav~a -- za Hrvatsku je .hr), tradicionalne (ostatci davnog ARPANet sustava -- imaju tri slova, za neprofitne organizacije je .org), te moderne (obi~cno s vi~se od 3 slova, poput .info, .museum i sl.).

Postoje i drugi protokoli. Kao ~sto je HTTP pogodan za prijenos hipertekstualnih dokumenata, tako je FTP pogodan za prijenos (ve~tih koli~cin~a) proizvoljnih datotek~a. Na primjer, link na ftp://ftp.math.hr ~te vas spojiti na FTP server domene math.hr, na kojem, dodu~se, nema ba~s puno datotek~a. ~:

Postoje i "kvazi-protokoli", koji, iako nisu protokoli u punom smislu rije~ci, po~stuju sli~cna pravila za interakciju. Naj~ce~s~te kori~sten takav je "mailto:", koji slu~zi za slanje emaila. Na primjer, klikom na link mailto:vedgar+rp1@gmail.com, mo~ti ~tete mi poslati email. Naravno, to ~te raditi jedino ako imate ispravno pode~sen program za slanje emaila.
Napomena: Ako nemate dobre spam filtere, nemojte stavljati svoju email adresu na web! Dana~snjim spam engineima nije nikakav problem skupiti milijune email adresa, koje imaju veliku vrijednost na crnom tr~zi~stu -- ~cak ni ako su "za~sti~tene" metodama poput "vedgarNOSPAM@gmail.MAKNIOVO.com", ili "veky na math u hr". Ili se pobrinite za kvalitetno rje~senje spam problema, ili ne ostavljajte svoju email adresu nigdje javno dostupnom -- pogotovo na webu.