什麼是統一資源定位符? URL(Uniform Resource Locator)

URL是英文Uniform Resource Locator,中文統一資源定位符的簡稱,它被用於定位網路檔案位置,包括打開網站、下載圖片、影片、軟體程式及伺服器上其他類型的檔案。

要在電腦打開某個檔案,只要簡單按擊兩下即可開啟。但要打開網路上伺服器中的某個檔案就要使用URL,以便網路瀏覽器知道去哪找。比如說,我們打開某網頁的HTML檔,就要在瀏覽器的網址列中輸入網址。

URL的其他名稱

統一資源定位符最常被縮寫為URL,但當URL用於HTTP或HTTPS協議時,也被稱為網站位址。

URL的發音通常以單個字母發音(即u – r – l,而不是earl),在1994年被改為統一資源定位符之前,它曾是通用資源定位符的縮寫。

 

URL的例子

通常我們已經習慣輸入URL來打開相關網站,比如用於訪問Google網站的URL:https://www.google.com,再比如本網站的URL:https://template.city這個網站,或是另一個網站的URL:https://tools.city

URL甚至可以連結到如圖片這種比較具體的物件,就像這個維基百科網站上Google logo的圖片連結。點擊它,就可以看到以 “https://” 開頭的位址,指向網站伺服器上圖片所在的確切檔案位置。

同樣的概念也適用訪問路由器的登錄頁面,路由器的IP位址被用作URL,以用於打開配置頁面。

比較常見的URL有Firefox或Chrome等瀏覽器中使用的那些位址,但這些並不是URL的唯一情況。

在所有這些例子中,HTTP協議通常是最常見的,但我們也有其他如FTP、TELNET、MAILTO和RDP協議。URL也可以指向硬碟上的檔案。每個協定都會有一套獨特的語法規則。

 

URL結構

一個URL可以被分解成不同的部分,每一部分在造訪遠端檔案時都有特定的用途。

HTTP和FTP的URL結構相同,都是protocol://hostname/fileinfo。例如,用URL訪問一個FTP檔,就會是這樣的:FTP://servername/folder/otherfolder/programdetails.docx,像這個連結,除了FTP與HTTP的區別之外,結構基本都是一樣的。

這裡有個HTTP位址的例子:https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html

  • https與FTP一樣都是一種協議,它定義了伺服器的類型。
  • security是用來訪問這個網站的主機名稱。
  • googleblog是功能變數名稱。
  • com就是所謂的頂層網域名(TLD),其他一些頂層網域名包括.net、.org、.co等。
  • /2018/01/代表用於組織網頁或檔案的目錄。在存放網站檔的網路服務器上,這就是個實際的資料夾,通過點擊就可找到這個URL所指定的檔案。
  • todays-cpu-vulnerability-what-you-need.html是URL所指向的實際檔案。如果你試圖載入一個圖像、音訊檔或其他檔案類型而不是HTML檔,那麼URL將以該檔案的副檔名結尾(比如PNGMP3)。
  • googleblog.com作為一個組被稱為完整網域名稱(FQDN)。

 

URL語法規則

URL中只允許有數位、字母及以下字元.()!$-‘_*+.,其他字元必須經過編碼(翻譯成程式碼)才能被接受。

有些URL有參數,用於從額外的變數中分割出特定網站。例如,在Google上搜尋模範城市,https://www.google.com.tw/search?q=模範城市

這個網址中的問號是向Google伺服器發送一個特定的命令,以獲得自訂的結果。

Google用於執行搜尋的腳本,URL的?q=部分之後的內容既為關鍵字。

比如類似的,我們在YouTube搜索最佳貓咪的影片,這時出現的URL,

https://www.youtube.com/results?search_query=可愛+貓咪+影片

雖然URL中不允許有空格,但有些網站使用+號,Google和YouTube均是如此,其他網站則使用相當於空格的編碼,即%20。

一些URL可以根據上下文在參數之間進行交換,比如給YouTube影片添加時間戳記。有些連結需要一個問號等。

URL也會使用錨點,這些錨點位於最末端,用於描述連結要跳轉的頁面。錨點是在向網頁添加連結時創建的,它們使用記號”#”。這是維基百科中的一個例子,https://zh.wikipedia.org/wiki/中華民國#歷史

使用多個變數的URL會在問號後使用一個或多個符號,例如在Amazon 搜尋Windows 10產品,https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=windows+10

部分URL是要區分大小寫的,就是功能變數名稱之後的所有內容包含目錄和檔案名稱。當改成大寫後,再嘗試打開該網頁就會出現無法載入的情況,因為該檔案在伺服器上不存在。

 

關於URL的更多資訊

若一個URL指向的是可線上顯示的檔案,比如JPG圖片,那就無需進行實際下載操作。然而如PDFDOCXEXE檔等不能線上顯示的,則必須要下載到電腦,再使用專用的軟體打開。

URL為我們提供了一種簡單的方式來訪問一個伺服器的IP,這種從URL到IP位址的轉換就是DNS伺服器的作用。

有些URL很長很複雜,這個時候最方便的操作方式既是點擊這個連結或將它複製貼上到網位欄。URL的報錯一般是400系列的HTTP狀態碼錯誤,最常見的類型是404錯誤。

比如我們如果嘗試打開tsadcg.com,就會出現404錯誤,因為伺服器上不存在這個頁面,這些類型的錯誤非常普遍。

有時我們還會遇到一些其他的錯誤回報,那麼你可以在網路上參考解決URL中錯誤的方法。

像google.com這種大多數URL都不需要給出埠號,但我們可以在URL末尾添加埠號,比如http://www.google.com:80,如果該網站改用8080埠號執行,即可用替換埠號的方式訪問該網頁。

預設情況下,FTP網站使用的是21埠號,其他網站可能設置為22埠號或其他不同的埠。如果FTP網站沒有使用21埠號,那就必須指定它使用的埠號,同樣的概念也適用於其他URL。