Perusteet haltuun

URL-osoitteen rakenne

Helppo
30 min

Mikä on URL-osoite?

URL tulee sanoista Uniform Resource Locator ja on yksi HTTP-protokollan kulmakivistä. Kaikessa yksinkertaisuudessaan, URL-osoite viittaa yksittäiseen resurssiin verkkosivulla, joka voi olla esimerkiksi HTML-sivu, HTML-sivun käyttämä resurssi tai vaikkapa tavallinen tekstitiedosto.

Erilaisia URL-osoitteita:

http://hakatemia.fi/
http://hakatemia.fi/index.html
http://hakatemia.fi/robots.txt
https://hakatemia.fi/kuva.png
https://hakatemia.fi/kansio/tiedosto.txt
https://hakatemia.fi/rekisteroidy?nimi=aku&sposti=aku.ankka@gmail.com

URL-osoitteen osat

URL-osoite muodostuu eri komponenteista, joista osa ovat pakollisia kun taas jotkin ovat vapaaehtoisia. URL-osoitteessa käytettävät komponentit ovat osittain sovelluksen kehittäjien määriteltäviä vaikkakin käyttäjä pystyy näitä itse muokkaamaan.

Sovellus voi esimerkiksi sisältää linkin, jossa sovellus määrittää haluamansa URL-osoitteen ja tämän sisältämät komponentit, mutta mikään ei estä käyttäjää muuttamasta tätä osoitetta.

Skeema

Ensimmäinen komponentti URL osoitteessa on skeema. Skeema kertoo selaimelle, millä protokollalla pyyntö suoritetaan. Protokolla on tavallisesti suojaamaton HTTP- tai suojattu HTTPS-protokolla.

Auktoriteetti tai domain

Skeeman jälkeen tuleva osa on resurssia ylläpitävän auktoriteetin nimi, eli domain. Kuten tietoverkot osuudessa jo kerrottiin, domain on vain helpommin muistettava nimi IP-osoitteelle, eli domain-nimen tilalla voi myös käyttää IP-osoitetta suoraan.

Auktoriteetti kertoo siis selaimelle, miltä palvelimelta kyseinen resurssi täytyy hakea. Esimerkiksi, www.google.com kertoo selaimelle, että resurssi haetaan Googlen palvelimelta jolloin selain luonnollisesti yrittää kommunikoida verkon yli Googlen kanssa.

Portti

Auktoriteetin jälkeen on mahdollista antaa lisäohje selaimelle, että mihin porttiin HTTP-pyyntö halutaan ohjata. Jos porttia ei määritä, niin selain käyttää skeeman protokollan mukaista standardiporttia. Eli oletusarvoisesti, jos skeema on http:// niin selain lähettää pyynnön porttiin 80 (HTTP-protokollan standardiportti), kun taas https://-skeeman tapauksessa porttiin 443 (HTTPS-protokollan standardiportti).

Kuvan URL-osoite kertoisi selaimelle, että pyyntö täytyy lähettää porttiin 8080.

Resurssipolku

Auktoriteetin ja portin jälkeen on mahdollista tarkentaa resurssipolku, johon HTTP-pyyntö kohdennetaan. Resurssipolkua voidaan esimerkiksi ajatella verkkosivupalvelimen tiedostopolkuna.

Tämä ei kuitenkaan ole näin yksinkertaista nykyaikana, sillä nykyään resurssipolut ovat useimmiten abstraktioita, jolloin verkkosivun eri resurssipolut tai "reitit" ja näihin kohdistuvat pyynnöt käsitellään koodissa, eivätkä polut ole konkreettisia tiedostoja.

Parametrit

Parametrit ovat kysymysmerkin jälkeen tulevia vaihtoehtoisia avain-arvo-yhdistelmiä, joita erottelee &-symboli. Verkkosivu voi käyttää näitä parametreihin määriteltyjä arvoja halutessaan. Parametrien käyttö ja käsittely on täysin verkkosivun tekijöiden varalla ja näiden käyttö vaihtelee laajasti.

Parametrit ovat merkittävä tapa välittää yksityiskohtaista tietoa selaimen ja sovelluksen välillä. Siksi käytössä olevat parametrit ovat myös tietoturvatestaamisen kannalta mielenkiinnon aihe. Monet haavoittuvuudet johtuvat siitä, että sovellukset eivät käsittele parametrien sisältämiä arvoja oikein.

Ankkuri

Ankkuri on URL-osoitteen viimeinen pala, joka on myös täysin vaihtoehtoinen. Ankkuri kertoo selaimelle, että mikä tietty kohta haetusta resurssista halutaan käyttäjälle näyttää. Eli, jos haettava resurssi olisi vaikka resepti, niin ankkuri voisi olla #mitat, jolloin selain siirtyisi automaattisesti kyseiseen kohtaan kun resurssi on haettu selaimeen.

Mikä seuraavista URL-osoitteista EI ole sama osoite?

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.