最近我在做前端面試題總結系列,感興趣的朋友可以新增關注,歡迎指正、交流。
爭取每個知識點能夠多總結一些,至少要做到在面試時,針對每個知識點都可以侃起來,不至於啞火。
引言
不知道有多少人是和我一樣分不清 URL 和 URI 的?
說來慚愧,之前自己一直以為 URL 和 URI 是一樣的,所以在稱呼它們的時候經常混著用,當偶然得知它們是兩種不同概念的時候,我的狀態是這樣的:
用一個詞形容就是:汗顏!如果一直無知下去,或許還好,可一旦知道真相,就會想著自己以前是不是因為這個鬧了笑話而不自知……往事不堪回首!為了避免以後可能的出糗,這兩個概念是一定要弄明白的!
URL
概念
全稱為 Uniform Resource Locator,翻譯為“統一資源定位符”,用於標示網路資源的位置。
URL 是 Internet 上資源的地址,可以定義為引用地址的字串,用於指示資源的位置以及用於訪問它的協議。
URL 是在網路上定位資源的最普遍使用的方式,它提供了一種通過描述其網路位置或主要訪問機制來檢索物理位置的表示的方法。
URL 中描述了協議,用於檢索資源和資源名稱。如果資源是 Web 型別資源,則 URL 在開頭包含 http / https。同樣,如果資源是檔案,則以 ftp 開頭,如果資源是電子郵件地址,則以 mailto 開頭。
組成
URL 包含以下資訊:
- 用於訪問資源的協議
- 伺服器的位置(無論是通過IP地址還是域名)
- 伺服器上的埠號(可選)
- 資源在伺服器目錄結構中的位置
- 片段識別符號(可選)
比如:
https://juejin.cn/user/2893570333750744/posts
作用
URL 主要用於連結網頁,網頁元件或網頁上的程式,藉助訪問方法(http,ftp,mailto 等協議)來檢索位置資源。
URI
概念
全稱為 Uniform Resource Identifier,翻譯為“統一資源識別符號”,用於標示一個抽象或者物理資源。
URI 是標識邏輯或物理資源的字元序列,與 URL 類似,也是一串字元。通過使用位置,名稱或兩者來標識 Internet 上的資源,它允許統一識別資源。
有兩種型別的URI,統一資源識別符號(URL)和統一資源名稱(URN)。
組成
任何URI的通用形式都是:
scheme:[// [user:password @] host [:port]] [/] path [?查詢] [#片段]
其中:
- Scheme(方案):該方案列出了具體語法和URI的任何相關協議。方案不區分大小寫,後跟冒號。理想情況下,URI方案應該在網際網路號碼分配機構(IANA)註冊,但也可以使用非註冊方案。
- 許可權元件:許可權元件由多個部分組成:可選的身份驗證部分,主機(由註冊名稱或IP地址組成) , 以及可選的埠號。身份驗證部分包含使用者名稱和密碼,用冒號分隔,後跟at(@)符號。在@之後是主機名,然後是冒號,然後是一個埠號。請務必注意,IPv4地址必須採用點十進位制表示法,並且IPv6地址必須括在括號中。
- 查詢(可選):查詢包含一串非分層資料。雖然語法沒有明確定義,但通常是由分隔符分隔的屬性值對序列,例如&符號或分號。查詢通過問號與前一部分分開。
- 片段(可選):片段包含片段識別符號,該識別符號為輔助資源提供方向。
作用
URI 用於定義專案的標識,此處單詞識別符號表示無論使用的方法是什麼(URL 或 URN),都要將一個資源與其他資源區分開來。
總結
通過上面 URL 和 URI 內容的學習,總結如下:
- URL 指定要使用的協議型別,而 URI 不涉及協議規範。
- 可以說 URL 是 URI(因為 URL 是 URI 的子集),但 URI 永遠不能是 URL。
~
~本文完,感謝閱讀!
~
學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!
大家好,我是〖程式設計三昧〗的作者 隱逸王,我的公眾號是『程式設計三昧』,歡迎關注,希望大家多多指教!
你來,懷揣期望,我有墨香相迎! 你歸,無論得失,唯以餘韻相贈!
知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!