URL 結構分析
關於URL多數人應該不會陌生,對它的直觀印象就是網址。
本文所要介紹的內容就是我們所熟悉的網址,對其結構進行詳細分析。
特別說明:
(1).當前較為規範的技術文件一般不再將網址稱為URL,而是統一使用URI替代。
(2).URL並不僅僅包括網址,本文僅介紹網址的結構。
關於URI的概念本文不做介紹,具體可以參閱URI、URL與URN區別一章節。
可能不少朋友認為URL結構這麼簡單,還有什麼好介紹的,這麼想的朋友一般有兩種情況:
(1).確實對URL結構非常瞭解,當然感覺非常簡單。
(2).對其沒有太多的瞭解,且由於經常使用,所以感覺很簡單。
的確,URL的結構確實非常簡單,只是有些朋友沒有注意到一些細節,所以本文進行詳細介紹。
首先看一個URL例子:
[HTML] 純文字檢視 複製程式碼http://www.softwhy.com/forum.php?mod=forumdisplay&fid=119
上面就是我們經常見到的URL網址的一個簡單例子,它有幾個部分構成,下面會進行詳細介紹。
URL的結構組成:
[HTML] 純文字檢視 複製程式碼schema://host[:port]/path/.../[?query-string][#anchor]
結構分析如下:
(1).schema:URL的協議部分,當前網址的兩種協議分別是http與https。
(2).host:伺服器部分,站點總要在一個伺服器中執行,此部分規定了伺服器的網路地址。
(3).port:埠部分,比如80埠,當然也可以是其他埠,很多朋友可能會有這樣的疑問,為什麼網址中很少看到埠,因為預設都是使用80埠,此埠可以省略。
(4).path:請求具體網址的路徑,後面會通過例項分析。
(5).query-string:查詢字串,通過它可以向伺服器傳遞一些引數,然後利用這些引數進行查詢一些資料。
(6).#anchor:錨部分,通過它可以實現業內定位功能,具體參閱HTML 錨點定位一章節。
為了加深一下對結構各部分的理解,下面對一個URL進行一下剖析:
[HTML] 純文字檢視 複製程式碼http://www.softwhy.com:80/forum.php?mod=forumdisplay&fid=119
(1).schema:http,為了安全,當前越來越多的網站採用https協議。
(2).host:www.softwhy.com,域名會解析繫結到一個IP,此IP對應一個伺服器,那麼就可以通過此域名找到站點伺服器,也可以直接就是IP地址(是否可以具有由服務商決定)。
(3).port:上述網址埠是80,預設可以省略,這也是絕大多數網址都沒有註明埠的原因。
(4).path:/forum.php,請求的資源在伺服器中的地址,會涉及到路徑問題。
(5).query-string:?mod=forumdisplay&fid=119,以鍵值對形式存在,可以給伺服器傳遞一些引數。
關於錨的部分就不掩飾了,具體可以參閱上文所推薦的文章,裡面有詳細的介紹,HTML 錨點定位一章節。
最後再附加說明一點,當前眾多網站,為了SEO優化,對搜尋引擎更加友好一點,都會將上述帶有查詢字串的動態網址轉換為靜態網址,看如下例子:
[HTML] 純文字檢視 複製程式碼forum.php?mod=viewthread&tid=1394
上面是一個動態網址,可以將其轉換為HTML靜態方式:
[HTML] 純文字檢視 複製程式碼thread-1394.html
在搜尋引擎與瀏覽者眼中,這是一個靜態頁面,當實際向伺服器發起請求的時候,還是會對映到對應的動態頁面請求資料,大致是這個原理,本文不多介紹,感興趣的朋友可以自行在網上查詢相關知識。
相關文章
- Java培訓教程之JDBC URL結構分析JavaJDBC
- 【思考】URI和URL的區別?以及URL的結構
- 結構化分析
- 什麼是WordPress中的SEO友好URL結構
- PE結構分析(二)
- SPA單應用-請求介面URL結構設計
- Android 目錄結構分析Android
- 分析Angular目錄結構Angular
- LinkedList 資料結構分析資料結構
- ArrayList 資料結構分析資料結構
- Unbound資料結構分析資料結構
- Linux 目錄結構:/lib 分析Linux
- iOS探索 類的結構分析iOS
- REdis AOF檔案結構分析Redis
- 任意檔案下載漏洞的介面URL構造分析與討論
- Webstorm 新建 Express 專案結構分析WebORMExpress
- Redis 字典結構實現分析BTRedis
- Faiss原始碼剖析:類結構分析AI原始碼
- C語言結構體大小分析C語言結構體
- HTML-5-頁面結構分析HTML
- 【頂級結構】CSGO經典爆破模式地圖的A區結構分析Go模式地圖
- HongHu雲架構common-service程式碼結構分析架構
- 資料結構與演算法分析——連結串列資料結構演算法
- vue-cli#4.7專案結構分析Vue
- EOS原始碼分析(7)目錄結構原始碼
- 螞蟻金服RPC框架結構分析RPC框架
- elastic-job-lite 資料結構分析AST資料結構
- 玩法設計的結構化分析思路
- JAVA常用資料結構及原理分析Java資料結構
- 表`t`的INODE結構檔案分析
- INODE結構二進位制頁分析
- 輕量級 Web 框架 Gin 結構分析Web框架
- ArrayList底層結構和原始碼分析原始碼
- Deflection Pro for Mac(結構梁分析軟體)Mac
- 前端資料結構---複雜度分析前端資料結構複雜度
- 【頂級結構】CSGO經典爆破模式地圖的B區結構分析Go模式地圖
- urlcat:JavaScript的URL構建器庫JavaScript
- Spring Cloud Ribbon之URL重構(三)SpringCloud