舉例如下: http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument 協議(Protocol) http://為協議名,標明瞭請求需要使用的協議,通常使用的是HTTP協議或 ...
舉例如下:
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
協議(Protocol)
http://
為協議名,標明瞭請求需要使用的協議,通常使用的是HTTP
協議或者安全協議 HTTPS
.其他協議還有mailto:
用戶打開郵箱的客戶端,和ftp:
用來做文件的轉換, file
用來獲取文件,data
獲取外部資源等
功能變數名稱(Domain)
www.example.com
為功能變數名稱,標明瞭需要請求的伺服器的地址.
埠(Port)
:80
是埠號,標明瞭獲取伺服器資源的入口
:80
是埠號,標明瞭獲取伺服器資源的入口
埠號用於區分服務的埠,一臺擁有IP地址的伺服器可以提供許多服務,比如Web
服務、FTP
服務、SMTP
服務等.那麼,伺服器的資源通過“IP地址+埠號”來區分不同的服務.
如果把伺服器比作房子,埠號可以看做是通向不同服務的門,
文件路徑
/path/to/myfile.html
表示伺服器上資源的路徑,過去這樣的路徑標記的是伺服器上文件的物理路徑,但是現在,路徑表示的只是一個抽象地址,並不指代任何物理地址.
參數(query)
?key1=value1&key2=value2
是請求里提供的額外參數.這些參數是以鍵值對的形式,通過&
符號分隔開來,伺服器可以通過這些參數進行相應的個性化處理
片段(fragment)
#SomewhereInTheDocument
是對資源的部分補充.fragment
可以理解為資源內部的書簽
.用來想伺服器指明展示的內容所在的書簽
的點.例如對於HTML
文件來說,瀏覽器會滾動到特定的或者上次瀏覽過的位置.對於音頻或者視頻資源來說,瀏覽器又會跳轉到對應的時間節點.
補充 : 相對路徑和絕對路徑
我們上面所說的都是絕對路徑
,但是URL
也有相對路徑
的表現形式.
URL
所請求的資源依賴於請求所在的上下文,也就是當前環境,在瀏覽器的輸入框內URL
沒有上下文,所以必須提供絕對路徑
.
但是當URL
用於文件中時,例如HTML
的頁面,情況就大有不同了,因為瀏覽器已經擁有了文件的URL
,所以可以自動填補文件內使用的URL
丟失的部分,例如協議
,功能變數名稱
,埠
等,所以我們可以較為直觀的區分相對路徑
和絕對路徑
.
如果URL
以/
開頭,瀏覽器會從根伺服器去獲取資源,而不是從給定的文件夾中獲取.
我們用一些例子來直觀的理解下
完整的URL
: