筆者以以下鏈接為例進行了詳細介紹:
http:// news.qq 【防HX】.com / a /20160209/012154.htm?a=1&b=2&c=3
protocol:協議
Http://,這意味着訪問協議。
協議是一組規則,定義了數據封裝、打包、解包和解釋的規則。
Http://,即只能通過Http規則訪問此頁資源。用戶是否見過HTTPS、FTP、thunder協議頭?URL地址標識一個資源,協議頭表示我們可以通過不同的規則(協議)訪問它。
當然,前提是存放這些資源的服務器支持這個協議。在劇院,座位可以看作資源,觀眾只有獲取資源,才能看到劇目。過年時觀眾比較多,為了防止發生踩踏事件,劇院不但開放正門,還開放兩個側門。
你可以想象觀眾的票面上,一定標識了座位的信息(幾排幾號),這相當於URL的后半部分。有的票面標了從正門進,有的標了從側門進,這就相當於URL的協議頭標識了協議,一種是按走正門的規則進入,另一種是按走側門的規則進入,觀眾拿着走正門的票從側門進入,會被拒絕而無法獲取資源(座位),所以采用何種協議至關重要。前面討論的前提都是要側門開放,即服務器支持這種協議。如果不開放側門,地址就是無效的,訪問不到這個資源。
總之,協議頭標識了訪問特定資源的規則。當用戶在將來看到不同的協議頭時,請考慮這個例子。
hostname:主機名
主機名稱為主機名。在本例的URL中,news.xxcom是主機名。主機可以理解為一台名為news.xxxxcom的機器,它位於xxcom域名下。Xxcom被稱為一級域名。很多人認為www.xxcom是一個一級域名。實際上,它只是一個二級域名。WWW相當於剛剛介紹的新聞。Www.xx、news.xx、qzone.xx和v.xx都是二級主機域名。
port:端口
端口稱為端口號。一般來說,HTTP的端口號是80,HTTPS的端口號是443。可以理解,計算機提供服務有很多方面。例如,默認端口80可用於提供服務,或端口81可用於提供服務。如果把一個主機比作一個房子,房子可以有65536個門,門號就是端口號,所以很多端口都可以達到訪問的目的。上面的URL中沒有端口號,默認為80。
path:路徑
下一個是/A/20160209/012154.html/。主機名后面的長字符串都稱為path,意思是“path”,即最后一個文件的路徑和文件名。但是,這個地址的文件存儲在騰訊的服務器上,也就是在幾個域名news.xxcom下的機器上。
parameters:參數
?a=1&b=2&c=3
?a=1&b=2&c=3
這部分稱為參數,也稱為查詢。
它的目的是在URL中帶上一些本地的信息傳給服務器,a、b、c三個字符是作者為方便用戶理解杜撰的,這些KeyValue的鍵值對標識了一些特定的意義,最終要由服務器進行判斷處理。