和 Hypertext 以及 HTTP 同樣,URL是Web中的一個核心概念。它是瀏覽器用來檢索web上公佈的任何資源的機制。html
URL指的是統一資源定位符(Uniform Resource Locator)。URL無非就是一個給定的獨特資源在Web上的地址。理論上說,每一個有效的URL都指向一個獨特的資源。這個資源能夠是一個HTML頁面,一個CSS文檔,一幅圖像,等等。而在實際中,有一些例外,最多見的狀況就是URL指向了不存在的或是被移動過的資源。因爲經過URL呈現的資源和URL自己由Web服務器處理,所以web服務器的擁有者須要認真地維護資源以及與它關聯的URL。web
一些URL的示例:瀏覽器
https://developer.mozilla.org
https://developer.mozilla.org...
https://developer.mozilla.org...安全
一個URL由不一樣的部分組成,其中一些是必須的,而另外一些是可選的。讓咱們如下面這個URL爲例看看其中最重要的部分:服務器
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument網絡
http://
是協議。它代表了瀏覽器必須使用何種協議。它一般都是HTTP協議或是HTTP協議的安全版,即HTTPS。Web須要它們兩者之一,但瀏覽器也知道如何處理其餘協議,好比mailto:(打開郵件客戶端)或者
`ftp:(處理文件傳輸),因此當你看到這些協議時,沒必要驚訝。`url
www.example.com
是域名。 它代表正在請求哪一個Web服務器。或者,能夠直接使用IP address, 可是由於它不太方便,因此它不常常在網絡上使用。.spa
:80
是端口。 它表示用於訪問Web服務器上的資源的技術「門」。若是Web服務器使用HTTP協議的標準端口(HTTP爲80,HTTPS爲443)來授予其資源的訪問權限,則一般會被忽略。不然是強制性的。3d
/path/to/myfile.html
是網絡服務器上資源的路徑。在Web的早期階段,像這樣的路徑表示Web服務器上的物理文件位置。現在,它主要是由沒有任何物理現實的Web服務器處理的抽象。code
?key1=value1&key2=value2
是提供給網絡服務器的額外參數。 這些參數是用 &
符號分隔的鍵/值對列表。在返回資源以前,Web服務器可使用這些參數來執行額外的操做。每一個Web服務器都有本身關於參數的規則,惟一可靠的方式來知道特定Web服務器是否處理參數是經過詢問Web服務器全部者。
#SomewhereInTheDocument
是資源自己的另外一部分的錨點. 錨點表示資源中的一種「書籤」,給瀏覽器顯示位於該「加書籤」位置的內容的方向。例如,在HTML文檔上,瀏覽器將滾動到定義錨點的位置;在視頻或音頻文檔上,瀏覽器將嘗試轉到錨表明的時間。值得注意的是,#後面的部分(也稱爲片斷標識符)歷來沒有發送到請求的服務器。
參考:什麼是url