RP1 - XHTML

✓XHTML1

Linkovi

Kao što je već rečeno, a element služi za povezivanje XHTML dokumenata -- kako međusobno, tako i s ostalim objektima širom cijelog Interneta. Ideja je određeni dio teksta proglasiti (hiper)linkom -- poveznicom s nekim drugim dokumentom, ili njegovim dijelom. Taj dio teksta se obično 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čno će ponuditi korisniku skidanje (download) datoteke na njegov disk.
Browser najčešće pruža način kako se vratiti natrag na polazni dokument, jednom kad pročitamo ono na što nas je link uputio (gumb "Back" na toolbaru, ili tipka "Backspace" na tipkovnici, su česti izbori).

(Postoji još bar jedan element namijenjen povezivanju dokumenata. To je link element, koji je donekle sličan a elementu, no glavna razlika je u tome što 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ži uglavnom da ga računalo pročita i interpretira -- vidjeli smo primjer povezivanja dokumenta sa CSS datotekom.)

Dakle, sadržaj a elementa je jednostavno tekst (ili slika, ili bilo kakav linijski sadržaj), koji će biti proglašen 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šljen kao adresa bilo kojeg dokumenta ili njegovog imenovanog elementa na Internetu.

URI se, grubo govoreći, 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 želimo povezati. Obavezno počinje imenom protokola (za obično surfanje webom to je "http://"), te završava s "/" ("/" na kraju će većina browserā dodati sama, ali "http://" moramo napisati ako želimo 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ći do datoteke koju tražimo. Ako se ne navede, podrazumijeva se tzv. osnovni direktorij, koji je najčešće (ako nije drugačije postavljeno u samom dokumentu) trenutni direktorij u kojem se dokument nalazi. Također završava s "/", i također će većina browserā 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 želimo dohvatiti. Obično ima ekstenziju (dio imena iza zadnje točke, ako postoji), koja govori kojeg je datoteka tipa. XHTML dokumenti obično imaju ekstenziju ".html" ili ".xhtml". Ako nije navedeno, a navedena je osnova ili staza, obično 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đuje točno 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ći 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š browser renderira primjere navedene u poglavlju o često korištenim linijskim elementima. Unutar tog dokumenta, postoji npr. element <h5 id="code">code, kbd, var, samp</h5>. Vidimo da on ima atribut id, čija je vrijednost code. To znači da će nas URI http://xrl.us/veky/rp1/vjezbe3/renderline.html#code odvesti direktno na taj element, usred gore navedene stranice.

(Prethodni HTML standardi dopuštali su povezivanje samo preko a elemenata, koji su onda u tu svrhu imali poseban atribut name za "doskočno mjesto" u dokumentu. U XHTMLu svaki element može poslužiti kao doskočno mjesto, pa tako i a element -- ali ne postavljanjem njegovog name atributa, već postavljanjem id atributa, kao i za svaki drugi element. detaljnije...)

Kamo link pokazuje, najčešće možemo vidjeti u status baru u dnu prozora browsera, no taj podatak se može krivotvoriti, pa mu ne treba slijepo vjerovati ako se radi o nečem važnom. Ako želimo biti sigurni, najsigurnije je direktno u address bar utipkati URI koji želimo.


Dakle, kad želimo povezati naš dokument s drugim dokumentom u istom direktoriju, možemo kao URI navesti samo ime datoteke. Čak i ako nisu u istom direktoriju, možemo pomoću nečeg poput "../../dir1/dir2/datoteka.html" opisati relativan položaj jednog dokumenta u odnosu na drugi. To ima svojih prednosti, jer ako kasnije premjestimo svoj site na drugu adresu, svi unutrašnji linkovi će 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četi s http:// (ili kakvim drugim protokolom). Česta je greška napisati početni a tag kao "<a href='www.google.com'>", no to skoro sigurno nije ono što smo htjeli. Gornji URI će jednostavno u trenutnom direktoriju pokušati naći datoteku s imenom "www.google.com", vrlo vjerojatno je neće naći i prijavit će grešku. Zato zapamtite: ime protokola je jedino što razlikuje apsolutne od relativnih URIa. Iako je nama "očito" da je "www.google.com" web site, a ne ime datoteke, računalnom programu to i ne mora biti tako očito.

Za HTTP protokol, osnova se sastoji ili od nekoliko riječi razdvojenih točkama, ili od 4 broja razdvojena točkama. U potonjem slučaju to je numerička IP adresa, a inače se riječi razdvojene točkama zovu, čitajući unatrag vršna domena (TLD), domena, te poddomene. Na primjer, u "http://labs.google.com/", com je TLD, google je domena, a labs je poddomena. Često se kao ime poddomene može navesti i ime pojedinog servera na toj domeni kojem želimo pristupiti, recimo s http://degiorgi.math.hr/ pristupamo serveru Degiorgi na domeni math.hr (često se TLD piše zajedno s imenom domene).

Svaka URI osnova ima barem TLD i domenu. Vršne domene se dijele na nacionalne (imaju 2 slova, u skladu s imenima državā -- za Hrvatsku je .hr), tradicionalne (ostatci davnog ARPANet sustava -- imaju tri slova, za neprofitne organizacije je .org), te moderne (obično s više od 3 slova, poput .info, .museum i sl.).

Postoje i drugi protokoli. Kao što je HTTP pogodan za prijenos hipertekstualnih dokumenata, tako je FTP pogodan za prijenos (većih količinā) proizvoljnih datotekā. Na primjer, link na ftp://ftp.math.hr će vas spojiti na FTP server domene math.hr, na kojem, doduše, nema baš puno datotekā.

Postoje i "kvazi-protokoli", koji, iako nisu protokoli u punom smislu riječi, poštuju slična pravila za interakciju. Najčešće korišten takav je "mailto:", koji služi za slanje emaila. Na primjer, klikom na link mailto:vedgar+rp1@gmail.com, moći ćete mi poslati email. Naravno, to će raditi jedino ako imate ispravno podešen program za slanje emaila.
Napomena: Ako nemate dobre spam filtere, nemojte stavljati svoju email adresu na web! Današnjim spam engineima nije nikakav problem skupiti milijune email adresa, koje imaju veliku vrijednost na crnom tržištu -- čak ni ako su "zaštićene" metodama poput "vedgarNOSPAM@gmail.MAKNIOVO.com", ili "veky na math u hr". Ili se pobrinite za kvalitetno rješenje spam problema, ili ne ostavljajte svoju email adresu nigdje javno dostupnom -- pogotovo na webu.