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的結構
- URL的返回方式 —— 三種結構
- 使用反射對繫結url引數到結構體反射結構體
- 結構化分析
- uboot 結構分析boot
- 什麼是WordPress中的SEO友好URL結構
- PE結構分析(二)
- SPA單應用-請求介面URL結構設計
- 分析Angular目錄結構Angular
- Mina--結構分析
- ArrayList 資料結構分析資料結構
- wsdl檔案結構分析
- bitmap indexes 的結構分析Index
- Unbound資料結構分析資料結構
- 資料結構與演算法——迭代開啟url問題(連結串列)資料結構演算法
- C/S結構與B/S結構的特點分析
- lucene 總結收集(url)
- iOS探索 類的結構分析iOS
- REdis AOF檔案結構分析Redis
- Android 目錄結構分析Android
- HashMap+concurrentHashMap 結構分析HashMap
- LinkedList 資料結構分析資料結構
- Dedecms 資料庫 結構分析資料庫
- Android 原始碼結構分析Android原始碼
- ResultSet的方法和結構分析
- Laravel的目錄結構分析Laravel
- 任意檔案下載漏洞的介面URL構造分析與討論
- python 爬取指定url的ICP備案資訊(結構化抓取)Python
- slab原始碼分析--主要資料結構分析原始碼資料結構
- Faiss原始碼剖析:類結構分析AI原始碼
- Webstorm 新建 Express 專案結構分析WebORMExpress
- HTML-5-頁面結構分析HTML
- Redis 字典結構實現分析BTRedis
- C語言結構體大小分析C語言結構體
- VFS檔案系統結構分析
- 【軟考】--結構化分析設計
- X公司人力資源結構分析