URL

**Web-adresa** (; skraćeno **URL**, od ***uniformni resursni lokator***, ) je specijalni niz znakova koji se sastoji od izvora prema resursu. Većina internetskih preglednika prikazuje web-adresu web-stranice iznad stranice u adresnoj traci. Tipični URL može ovako izgledati:
 
https://sh.wikipedia.org/wiki/Glavna_stranica

RFC 3986 (2005) klasificira URL-ove kao specijalni tip uniformnog resursnog identifikatora (URI), iako većina ljudi koristi oba termina naizmjenično. URL implicira načine pristupa traženom resursu, koji nije istinit za svaki URI. URL-ovise pojavljuju veoma često da opišu web stranice (http), ali imaju također ulogu u transferu datoteka (ftp), slanju emailova (mailto), pristup bazama podataka (JDBC), i mnoge druge aplikacije.

URL-ovi su specificirani u 3986 (2005), te u WHATWG URL Living Standardu.

## Historija
Uniformni resursni lokator je standardiziran 1994. godine od strane Tim Berners-Lee-ja i URI radne grupe na IETF-u kao rezultat kolaboracije počete na IETF Living Documents "Birds of a Feather" sesiji 1992. godine. Format kombinira predpostojeći sistem naziva domena (kreiran 1985.) sa sintaksom puta datoteke, gdje su kose linije korištene da odvoje direktorije od imena datoteka. Dogovori su svakako postojali gdje se ispred imena servera mogao dodati neki znak da dopuni lokaciju resursa, obično dvije kose crte (//).

Berners-Lee je kasnije zažalio zbog korištenja tačaka da odvoji dijelove imena domene unutar URI-ja, želeći ipak koristiti kose linije. Naprimjer,  bi bio napisan kao . Berners-Lee je također rekao, prateći šemu URI-ja, dvije kose crte prije imena domene su također bespotrebne.

## Sintaksa
Svaka HTTP web-adresa sastoji se iz sljedećeg, u datom redoslijedu. Neke šeme za razliku od HTTP također dijele ovaj generalni format, sa nekim varijacijama.
* ime šeme (stručni naziv: protokol)
* colon, dvije kose crte,
* host, normalno dato kao ime domene, ali ponekad kao IP adresa
* broj port nakon colona
* potpuna lokacija resursa

Šema govori *kako* se spojiti, host govori *gdje* se spojiti, a ostatak govori *šta* da se traži.

Za programe kao što su Common Gateway Interface (CGI) skripte, ovo je praćeno od upita niza, i identifikator opcionalnog fragmenta.

Sintaksa je: 

Detalji komponente:
* Šema, često označavana kao protokol, definira kako će resurs biti dobavljen. Primjeri uključuju http, https, ftp, file i mnoge druge. Iako su šeme neosjetljive na velika/mala slova, kanonična forma se piše malim slovima.
* Ime domene ili doslovno numerička IP adresa daju lokaciju destinacije za URL. Bukvalna numerička IPv6 adresa može biti data, ali mora biti ograničena sa ; npr. .
*:Domena google.com, ili njegova brojna IP adresa , je adresa web-sajta Google.
* Dio naziva domene URL-a ne zavisi od malih/velikih slova pošto DNS ignorira veličinu:
*: i  otvaraju istu stranicu.
* Broj porta, dat u decimalnom brojnom sistemu, je opcionalan; ako je izostavljen, podrazumjevani za shemu se koristi.
*:Naprimjer,  se spaja na port 5800 od vnc.example.com, koji može biti odgovarajući za VNC daljinsku kontrolnu sesiju. Ako je broj porta izostavljen za http: URL, preglednik će se spojiti na port 80, podrazumijevani HTTP port. Podrazumijevani port za https: zahtjev je 443.
* Path se koristi za specificiranje i možda pronalazak traženog resursa. Zavisi od veličine slova, iako može biti tretiran kao neosjetljiv na veličinu slova na nekim serverima, posebno onim baziranim na operativnom sistemu Microsoft Windows.
*:Ako server ovisi o veličini slova i  je tačan, onda  ili  će prikazati HTTP 404 stranicu za grešku, dok ovi URL-ovi nisu upereni u validne resurse samostalno.
* Niz upita sadrži podatke koji treba da budu usvojeni za softver koji se koristi za pokretanje servera. Može sadržavati ime/vrijednost parove odvojene ampersandom, naprimjer:
*:?first_name=John&last_name=Doe.
* Identifikator djelića, ako postoji, specificira dio ili poziciju unutar cjelokupnog resursa ili dokumenta.
*:Kada se koristi s HTML-om, često specificira dio ili lokaciju unutar stranice, i korišten u kombinaciji sa Anchor Tags preglednik je pomaknut da prikaže taj dio stranice.

Ime šeme definira prostor za ime, svrhu i sintaksu ostatka dijela URL-a. Softver će pokušati procesirati URL prema njegovoj šemi i konstekstu. Naprimjer, internetski preglednik će često dereferencirati URL  obavljanjem HTTP zahtjeva prema hostu na , koristeći broj porta 80.

Ostali primjeri imena šema uključuju https, gopher, wais, ftp. URL-ovi sa https kao šemom (kao ) zahtjevaju da zahtjevi i odgovori budu napravljeni preko sigurne konekcije sa web-sajtom. Neke šeme koje zahtjevaju ovjeru dopuštaju korisničko ime (username), i možda šifru također, da budu ugrađeni u URL, naprimjer . Šifre ugrađene ovim načinom nisu pogodne za sigurnost, ali potpuna moguća sintaksa je:

Ostale šeme ne prate HTTP uzorak. Naprimjer, mailto šema samo koristi validne email adrese. Kada je kliknuta unutar aplikacije, URL  može startati e-mail program sa adresom  u 'Prema' polju. Šema tel je čak više različita; koristi javne telefonske mreže za adresiranje, umjesto imena domena koje reprezentiraju Internet hostove.

## Lista dopuštenih URL znakova
### Nerezervirani
Mogu biti kodirani, ali to nije potrebno:

`A B C D E F G H I J K L M N O P Q R S T U V W X Y Z<br/>
a b c d e f g h i j k l m n o p q r s t u v w x y z<br/>
0 1 2 3 4 5 6 7 8 9 - _ . ~`

### Rezervirani
Moraju ponekad biti kodirani:

`! * ' ( ) ; : @ & = + $ , / ? % # [ ]`

Dalji detalji mogu biti npr. nađeni u  and http://www.w3.org/Addressing/URL/uri-spec.html.

## Veza sa URI
URL je URI koji, u dodatku sa identificiranjem web-resursa, omogućava načine lociranja resursa opisivanjem svog primarnog pristupnog mehanizma (npr. svoje mrežne lokacije).

## Internet host imena
Na Internetu, ime hosta je ime domene povezan sa host računarom. Ovo je često kombinacija host lokalnog imena sa svojim parent imenom domene. Naprimjer, en.example.org se sastoji od lokalnog imena hosta (*en*) i imena domene *example.org*. Ime hosta je prevedeno u IP adresu preko datoteke lokalnog hosta ili domain name system (DNS) rezolvera. Moguće je za jedan host računar da ima više imena hosta; ali generalno operativni sistem hosta preferira imati jedno ime koje host koristi za sebe.

Svako ime domene može također biti ime hosta, dok su god ograničenja spomenuta ispod ispoštovana. Naprimjer, i "en.example.org" i "example.org" mogu biti imena hosta ako oba imaju IP adrese povezane sa njima. Ime domene "xyz.example.org" može i da nema ime hosta ako nema IP adresu, ali "aa.xyz.example.org" može i dalje biti ime hosta. Sva imena hosta su imena domene, ali sva imena domene nisu imena hosta.

## Protokolno-relativne URL adrese
Protokol, ili šema, URL-a definira kako će resurs biti dobavljen. Najčešći protokoli na webu su HTTP i HTTPS. Zbog različitih razloga, većina sajtova se prebacuje dozvoljavanjem pristupa preko HTTP i HTTPS protokola. Svaki protokol ima prednosti i mahane, uključujući da za neke korisnike jedan ili drugi protokol bilo ne radi, ili nije baš poželjan. Kada link sadrži specifikator protokola to rezultira u pregledniku praćenje linka koristeći specifični protokol nezavisno od potencijalnih želja korisnika. Moguće je konstruirati validne URL-ove bez specificiranja protokola koji se nazivaju protokolno-relativni linkovi (PRL) ili protokolno-relativne URL adrese. Korištenjem PRL-ova na stranici dozvoljava prikazivaču stranice da posjećuje nove stranice koristeći bilo koji protokol koji je korišten za dobavljanje koja sadrži link. Ovo podržava nastavak korištenja bilo kojeg protokola koji je prikazivač izabrao da koristi za dobavljanje trenutne strance kada pristupa novim stranicama.

Primjer PRL-a je [//en.wikipedia.org/wiki/Main%20Page //en.wikipedia.org/wiki/Main_Page] koji je kreiran uklanjanjem prefiksa protokola.

## Moderna upotreba
Veliki kompjuterski proizvođači kao Apple su počeli osuđivati API-je koji uzimaju lokalne pathove kao parametre, umjesto korištenja web-adresa. Ovo je zbog toga što udaljeni i lokalni resursi (preko datotečne šeme) mogu oboje biti reprezentirani korištenjem URL-a, ali mogu dodatno omogućiti protokol (djelomično koristan za udaljene predmete) i svjedodžbe.

## Reference

## Vanjske veze
* RFC 3986 Uniform Resource Identifier (URI): Generic Syntax (ASCII version)
* FGA: Making "http://example.com./" work like "http://www.example.com./"