HTTP權威指南之URL與資源

2022-06-03 18:30:10 字數 2919 閱讀 3560

web基礎中介紹了uri、url與urn;

uri是一類更通用的資源識別符號,url是它的乙個子集;

uri是乙個通用的概念,它主要由url與urn組成;

例如:你想要獲得url 那麼url分為以下三部分:

第一部分:方案,方案可以告知web客戶端怎樣訪問資源,通過何種協議;url並不只是僅使用http協議,如ftp、rtsp、email等協議都是可以的。

第二部分:位址,伺服器的位址,可以是網域名稱也可以是ip位址

第三部分:資源路徑,路徑說明了請求的是伺服器上面的那部分資源

上面講述乙個url的標準格式,大部分的url用上述的格式即可,還有一些特殊的內容可以用到,下面列出url的完整格式,完整格式包含url中所有需要的內容,並對這些內容進行詳解

://:@

:/;?

#

組  件描     述默 認 值

方案;訪問伺服器以獲取資源時要使用哪種協議

無使用者名稱;某些方案訪問資源時需要的使用者名稱

anonymous

密碼;使用者名稱後面可能要包含的密碼,中間由冒號(:)分隔

e-mail位址

主機位址;資源宿主伺服器的主機名或點分 ip 位址

無埠;資源宿主伺服器正在監聽的埠號。很多方案都有預設埠號(http 的預設埠號為 80)

每個方案特有

路徑;伺服器上資源的本地名,由乙個斜槓(/)將其與前面的 url 元件分隔開來。路徑元件的語法是與伺服器和方案有關的(本章稍後會講到 url 路徑可以分為若干個段,每段都可以有其特有的元件。)

無引數;某些方案會用這個元件來指定輸入引數。引數為名 / 值對。 url 中可以包含多個引數字段,它們相互之間以及與路徑的其餘部分之間用分號(;)分隔

無查詢;某些方案會用這個元件傳遞引數以啟用應用程式(比如資料庫、公告板、搜尋引擎以及其他網際網路閘道器)。查詢元件的內容沒有通用格式。用字元「?」將其與 url 的其餘部分分隔開來

無片段;一小片或一部分資源的名字。引用物件時,不會將 frag 字段傳送給伺服器;這個欄位是在客戶端內部使用的。通過字元「#」將其與 url 的其餘部分分隔開來

#

方案;需注意,協議是不區分大小寫的

#主機與埠;主機指向伺服器,埠指向服務

:80#使用者名稱與密碼;

ftp://anonymous:[email protected]/pub/gnu

路徑/images/index.html

#引數;這個例子有兩個路徑段,hammers和index.html。hammers路徑段引數有sale,其值為false;index.html段有引數graphics,其值為true。

/hammers;sale=false/index.html;graphics=true

#查詢字串;檢視編號為12731的字段內容是否存在

/inventory-check.cgi?item=12731

#片段;片段元件用來表示乙個資源內部的片段,比如url指向html文件中乙個特定的或者小節

/tools.html#

drills

絕對url:url中包含訪問資源所需的全部資訊;如:

基礎url:針對同乙個**來講,其相同的url部分,如:

相對url:去除基礎url,剩餘的url就是相對url;如:/new.html,完整顯示為。相對url只是url的片段或一小部分,處理url的應用程式要能在相對和絕對url之間進行轉換。

實現相對url轉換為絕對url的第一步就是找到基礎url,怎麼找基礎url?

答:在資源中顯式提供,有些資源會顯式的提供基礎url。如:html文件中可能會包含了乙個定義基礎url的html標記,通過它來轉換那個html文件中的所有相對url

封裝資源的基礎url,如沒顯式的找到基礎url,可以將其所屬資源的url作為基礎url。簡單理解就是:將該相對url超連結所在頁面絕對url中的基礎url作為其基礎url。

沒有基礎url:只有相對url,但有時可能只是乙個不完整的或損壞了的url

解析相對引用圖

自動擴充套件:很多瀏覽器會在使用者提交url/輸入url時嘗試自動擴充套件url,這樣為使用者提供便捷,使用者不需要輸入完整的url,瀏覽器自動擴充套件

主機名擴充套件:只要有些小提示,瀏覽器就可以幫你將輸入的主機名擴充套件為完整的主機名,比如:輸入baidu,構建出www.baidu.com;弊端在於有時候會為其他http應用程式帶來問題,比如**,後面詳細解釋

歷史擴充套件:將以前使用者訪問過的url記錄儲存起來,當使用者輸入url時將其與歷史記錄中的url字首進行匹配,並提供一些完整的選項供使用者選擇

url作為網際網路資源的標識,必須是可移植的、完整的。意思就是說,乙個url確定後,不管如何複製貼上,這個url的資訊不能丟失!但是,url使用的編碼是ascii,中文是不支援的(當然,不止是中文這麼簡單,ascii無法表示所有字元這才是硬傷)。為了使用ascii,又要支援其他字元,所以,編碼就來了。其實這種編碼就是轉義,使用a代表b(比如url中包含的類似%7e符號,就是轉義之後的,代表著~這個特殊符號)。另外,還有一些特殊的保留字元(就像c語言中的關鍵字一樣),若在保留場合之外使用需要編碼。下面列舉了這些字元:

HTTP權威指南 URL與資源

一.url的語法 1.url的語法 url最重要的3個部分 方案 主機 路徑。2.方案 使用什麼協議 負責解析url的應用程式應該使用什麼協議。沒有大小寫區分。4.路徑 url的路徑說明了資源位於伺服器什麼地方。如 seasonal index fall.html 5.引數 url中有乙個引數元件。...

HTTP權威指南02 URL與資源

1.uri是一類通用的資源識別符號,url是uri的乙個子集。uri是乙個通用的概念,由兩個主要的子集url和urn構成,url是通過資源的位置來標識資源的,而urn則是通過名字來識別資源的,與它們當前所處位置無關。2.http規範將更通用的概念uri作為其資源識別符號,但實際上,http應用程式處...

HTTP權威指南閱讀筆記二 URL與資源

url中的限制字元 在url中,有幾個字元被保留起來,有著特殊的含義。有些字元不在定義的us ascii可列印字符集中。還有些字元會與某些網際網路閘道器和協議產生混淆,因此不贊成使用。下面這些字元是url中的限制字元,在將其用於保留用途之外的場合時,要在url中對其進行編碼。字元保留 受限 保留作為...