浏览器如何生成URL
點擊頁面中的鏈接,瀏覽器會根據(jù)源碼中相對URL路徑作不同的處理:
(1)有協(xié)議名稱,但沒有域名信息
對于這種形式的URL,它的協(xié)議,路徑,查詢字符串和片段ID都以它自身為準(zhǔn),但域名信息的部分,以引用它的那個頁面地址為準(zhǔn)。
(2)沒有協(xié)議名,但有域名信息
協(xié)議名稱由原發(fā)起頁面確定,而所有接下來的URL信息都取自這個相對URL,構(gòu)成完整的URL。
(3)沒有協(xié)議名,沒有域名信息,但有路徑
如果網(wǎng)頁中明確給出了base標(biāo)簽, 那么得到的URL是 base URL 路徑。
如果沒有給出base標(biāo)簽,這種情況下分為兩種結(jié)果:
a) 如果相對URL的開頭是斜杠(根目錄),則忽略當(dāng)前頁面自身的URL信息,直接把相對路徑拼在當(dāng)前頁面的域名后面。
b) 如果相對URL的開頭不是斜杠,則將當(dāng)前頁面URL的最后一個/之后的內(nèi)容去掉,將剩余的內(nèi)容返回作為base URL,相對路徑拼接在其后。
(4)沒有協(xié)議名,沒有域名信息,沒有路徑,但有查詢字符串
協(xié)議,域名,路徑信息全部原封不動的從原引用URL復(fù)制過來,查詢字符串和片段ID則來自相對URL。
(5)只有fragment
只替換fragment部分,其他所有信息從原引用URL復(fù)制過來。
<base>標(biāo)簽
瀏覽器會從當(dāng)前頁面的 UR中提取相應(yīng)的部分來填寫相對 URL 中的空白。使用 <base> 標(biāo)簽可以改變這一點。瀏覽器隨后將不再使用當(dāng)前文檔的 URL,而使用指定的基本 URL 來解析所有的相對 URL。這其中包括 <a>、<img>、<link>、<form> 標(biāo)簽中的 URL。
瀏覽器也會在當(dāng)前頁面URL的基礎(chǔ)上對..和.進行相應(yīng)調(diào)整,在地址欄生成新的請求URL。
?
總結(jié)
以上是生活随笔為你收集整理的浏览器如何生成URL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css 如何让背景图片拉伸填充避免重复显
- 下一篇: HTML中三种定位relative,ab