第二章 URL與資源

2022-03-11 12:02:58 字數 4121 閱讀 5457

url 是瀏覽器尋找資訊時所需的資源位置。通過 url,人類和應用程式才能找到、使用並共享網際網路上大量的資料資源。

url是作為uri的乙個子集,uri是一類更通用的資源識別符號,主要是由url和urn構成。http 規範將更通用的概念 uri 作為其資源識別符號,但實際上,http 應用程式處理的只是 uri 的 url 子集。

url主要內容由三部分組成

uri被稱為統一資源識別符號(uniform resource identier,uri)

統一資源名(urn)為uri的第二種形式。其是作為通過名字來識別資源的,和其所處位置無關。也就是說,我們從乙個地方將該資源轉移到另外乙個地方,不會影響他的urn,我們還是能通過其urn定位到該資源

url提供了一種定位internet上資源的手段。但是這些資源可以通過不同的scheme進行訪問(如:http, ftp, stmp),同時使用的schema不同,url的語法也會有一定程度的差異。雖然有差異,但是大部分url都會遵循如下規則:

://:@:/;?#

但是一般看到的url都不會完整包含全部內容,一般都只是其中某些部分的組合。下表是對每個部分的說明:

scheme用於規定如何訪問指定資源的主要表示識別符號,會告訴負責解析url的應用程式使用什麼協議。由第乙個":"符號將其餘url其他元件分開(如http:表示用的http協議),同時其是大小寫不敏感的,即:「http:」和「http:」是等價的。

前面的scheme只是告訴伺服器用什麼協議來訪問資源,但是要怎麼找到安裝有伺服器的機器呢,就是通過主機,找到主機後,有可能一台主機上面會有很多服務,我們需要找到指定的服務(應用程式),這個時候就需要指定該應用程式監聽的埠。所以最終通過主機和埠就能最終確定服務所在的位置了。

方式         位址

ip位址   

網域名稱    

假設上述的161.58.288.45的ip就是對網域名稱www.example.com對應的ip的話,那兩者訪問的就是同一伺服器上的同一資源。

使用者名稱和密碼用「@」符號將它和其他url元件分隔開來,但並不是所有的url都會有使用者名稱和密碼,如:

這些都是合法的url位址。第乙個是沒有使用者名稱和密碼的,第二個是只有使用者名稱,第三個是有使用者名稱和密碼的。

url中的路徑元件說明了資源存在於伺服器的什麼位置。

如:這個url中的「/seasonal/index-fall.html」就是路徑。一般用「/」將路徑分為各路徑段。

引數是乙個不太常見的url元件,但是有部分伺服器僅從路徑名和埠是不足以讓伺服器提供所需資源,還需要一些引數。引數元件是由鍵值對組成,一般通過「;」字元和其他元件分隔開。

如:該url裡面就包含乙個type=d的引數元件。

很多資源,比如資料庫服務,都是可以通過提問題或進行查詢來縮小所請求資源型別範圍的。一般通過「?」字元同其他元件隔開,

如:裡面的item=12731就是乙個查詢字串。如果乙個查詢字串包含多個查詢引數,可以使用"&"隔開,

如:&color=blue

有些資源型別,比如 html,除了資源級之外,還可以做進一步的劃分。比如,對乙個帶有章節的大型文字文件來說,資源的 url 會指向整個文字文件,但理想的情況是,能夠指定資源中的那些章節。

為了引用部分資源或資源的乙個片段,url 支援使用片段(frag)元件來表示乙個資源內部的片段。比如,url 可以指向 html 文件中乙個特定的或小節。

http伺服器通常只處理整個物件,而不是物件的片段,客戶端不能將片段傳送給伺服器。瀏覽器從伺服器獲得了整個資源之後,會根據片段來顯示你感興趣的那部分資源。

這裡所說的「快捷方式」是指一些不完整的url,如:相對url,自動擴充套件等

如果寫過前端html頁面的朋友對這個概念應該不會陌生。大部分html文件內的跳轉鏈結都使用了相對url。所謂的相對url,就是相對於乙個基礎url(baseurl)。如乙個html文件的資源url是該文件內容如下:

有些瀏覽器會在使用者提交 url 之後,或者在使用者輸入的時候嘗試著自動擴充套件 url。這就為使用者提供了一條捷徑:使用者不需要輸入完整的 url,因為瀏覽器會自動擴充套件。自動擴充套件主要有以下幾種方式:

url為了達到可移植和安全傳輸的特性,所以url只能使用一些較小的,相對安全的字母表中的字元。但是一些使用url的人又希望用一些不在規定字母表中的字元,這個時候就需要對這些字元進行編碼轉義,然後再進行傳輸。

我想從事計算機相關行業的人對us-ascii 字符集都不會陌生,而且由於其歷史悠久,所以可移植性也非常好,但是該字符集對英語語言非常友好,但是對於其他語言比如中文的支援非常不好。url 的設計者就將轉義序列整合了進去。通過轉義序列,就可以用 us-ascii 字符集的有限子集對任意字元值或資料進行編碼了,這樣就實現了可移植性和完整性。

為了達到上述的目的,傳輸和使用一些非ascii字符集的字元或者資料,就設計出了一種編碼機制,通過「轉義」的方式來表示那些不安全的的字元。其表示方法為:**乙個百分號(%),後面跟著兩個表示字元 ascii 碼的 十六進製制數。**比如:

在 url 中,有幾個字元被保留起來,有著特殊的含義,或者一些其他用途的字元。這些字元一般對使用有限制,除了用在其本身保留使用的場合外,也需要在url中對齊編碼。

這裡列出一些常見的協議和簡要說明:

方 案描  述

超文字傳輸協議方案,除了沒有使用者名稱和密碼之外,與通用的url格式相符。如果省略了埠,就預設為80。基本格式:

http://:/?#。示例:

方案https與方案http是一對。唯一的區別在於方案https使用了網景的ssl,ssl為http連線提供了端到端的加密機制。其語法與http的語法相同,預設埠為443。

基本格式:https://:/?#示例:

mailto   

mailto url指向的是e-mail位址。由於e-mail的行為與其他方案都有所不同(它並不指向任何可以直接訪問的物件),所以mailto url的格式與標準url的格式也有所不同。網際網路e-mail位址的語法記錄在rfc 822中。基本格式:

mailto:示例:

mailto:[email protected]

ftp    

rtsp,rtspu    

方案file表示一台指定主機(通過本地磁碟、網路檔案系統或其他一些檔案共享系統)上可直接訪問的檔案。各字段都遵循通用格式。如果省略了主機名,就預設為正在使用url的本地主機。基本格式:

file:///示例:

file://office-fs/policies/casual-fridays.doc

news    

根據rfc 1036的定義,方案news用來訪問一些特定的文章或新聞組。它有乙個很獨特的性質:news url自身包含的資訊不足以對資源進行定位。news url中缺乏到何處獲取資源的資訊——沒有提供主機名或機器名稱。從使用者那裡獲取此類資訊是解釋程式的工作。比如,在網景瀏覽器的「選項」(options)選單中,就可以指定自己的nntp(news)伺服器。這樣,瀏覽器有了news url的時候就知道應該使用哪個伺服器了。新聞資源可以從多台伺服器中獲得。它們被稱為位置無關的,因為對它們的訪問不依賴於任何乙個源伺服器。news url中保留了字元「@」,用來區分指向新聞組的news url和指向特定新聞文章的news url。基本格式:

news:

news:示例:

news:rec.arts.startrek

telnet   

方案telnet用於訪問互動式業務。它表示的並不是物件自身,而是可通過telnet協議訪問的互動式應用程式(資源)。基本格式:

telnet://:@:/示例:

telnet:

永久統一資源定位符purl :基本思想是在搜尋資源的過程中引入另乙個中間層,通過乙個中間資源定位符(resource locator)伺服器對資源的實際url進行登記和追蹤。

URL與資源 http權威指南第二章

本章將介紹 url語法,以及各種url元件的含義及其所做的工作 很多web客戶端都支援的url快捷方式,包括相對url和自動擴充套件url url編碼和字元規範 支援各種網際網路資訊系統的常見url方案 url的未來 1.瀏覽網際網路資源 大多數url都有同樣的 方案 伺服器位置 路徑 結構 url...

HTTP 權威指南 第二章 URL 與資源

這一章節講述了關於 url 的相關知識,主要包括下面的內容 url 語法 url 快捷方式 url 編碼與字元規則 常見的 url 方案 url 的未來 urn 一般格式 九個元件 url 主要的三個元件 第一部分 url 的 方案 scheme 第二部分 url 的 主機 host 第三部分 ur...

第二章 類與物件

c 中物件的型別稱為類 class 類是物件的抽象,而物件是類的具體例項。類是抽象的,不占用記憶體,物件是具體的,占用儲存空間。類的宣告格式 class 類名 public 公用的資料和成員函式 private 私有的資料和成員函式 private和public稱為成員訪問限定符,被宣告為私有的成員...