絕對地址與相對地址的概念
發(fā)表時間:2023-12-28 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]絕對地址和相對地址是網(wǎng)站開發(fā)基礎(chǔ)知識中很重要的知識點。1.在網(wǎng)頁中插入文件時,不可以使用硬盤的絕對路徑 舉個例子,在網(wǎng)頁中插入圖片,代碼如下:<!DOCTYPE HTML><html><head><meta http-equiv="Cont...
絕對地址和相對地址是網(wǎng)站開發(fā)基礎(chǔ)知識中很重要的知識點。
1.在網(wǎng)頁中插入文件時,不可以使用硬盤的絕對路徑 舉個例子,在網(wǎng)頁中插入圖片,代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>插入圖片</title>
</head>
<body>
<img src="file:///E /MyDocument/Pictures/1.jpg">或<img src="E:\MyDocument\Pictures\1.jpg">
</body>
</html>
意思是:插入一張圖片,圖片路徑是“E:\MyDocument\Pictures\1.jpg”。
即:這張圖片是放在電腦的“E:\MyDocument\Pictures\”文件夾里,圖片文件名是:“1.jpg”。但是,這樣的代碼是錯誤的。
(1)由于HTML代碼是客戶端標(biāo)記語言,這段代碼實際是告訴瀏覽器:顯示一張圖片,它放在客戶端瀏覽者硬盤中的某個文件夾中。但實際上前端代碼并沒有讀取瀏覽者硬盤文件的權(quán)限,它涉及計算機數(shù)據(jù)的安全,如果沒有加以限制,那么通過網(wǎng)頁就可以直接刪除或格式化瀏覽者的硬盤數(shù)據(jù),又或者讀取瀏覽者的硬盤數(shù)據(jù)往網(wǎng)絡(luò)上上傳,任何安全和隱私都將不存在。所以這種越權(quán)讀取文件或數(shù)據(jù)的代碼,網(wǎng)頁無法成功執(zhí)行。
(2)網(wǎng)站開發(fā)者的電腦在該路徑位置確實存在這張圖片,那么即使在網(wǎng)站開發(fā)者的瀏覽器中測試能正常顯示該圖片,當(dāng)將該網(wǎng)頁上傳到服務(wù)器或虛擬主機中,他人訪問網(wǎng)頁時仍然是無法正?吹皆搱D片的。該圖片并不存在于瀏覽者的硬盤中(這張圖片只存在于網(wǎng)站開發(fā)者的電腦中)。
所以在網(wǎng)頁中插入圖片或其它文件時,不可以使用硬盤的絕對路徑。
2.認(rèn)識絕對地址和相對地址
例一,假設(shè)我們電腦E盤的目錄和文件結(jié)構(gòu)如下圖:
(圖2-39)
根據(jù)“E:\UPUPW_AP5.6\Apache2\conf\httpd-vhosts.conf”里的配置,“E:\UPUPW_AP5.6\htdocs\”對應(yīng)網(wǎng)址“http://127.0.0.1/”,那么:
(1)“E:\UPUPW_AP5.6\htdocs\”的“htdocs”文件夾是網(wǎng)站的(服務(wù)器物理路徑)根目錄。
“http://127.0.0.1/”的最后一個斜杠“/”代表網(wǎng)站的(虛擬路徑)根目錄。
這兩者呈對應(yīng)關(guān)系。我們?nèi)绻L問“E:\UPUPW_AP5.6\htdocs\index.html”這個網(wǎng)頁文件,對應(yīng)的網(wǎng)址是“http://127.0.0.1/index.html”;如果要訪問“E:\UPUPW_AP5.6\htdocs\images\001.jpg”這個圖片文件,對應(yīng)的網(wǎng)址是“http://127.0.0.1/images/001.jpg”。
(2)假如我們在“E:\UPUPW_AP5.6\htdocs\index.html”這個網(wǎng)頁文件中插入圖片“E:\UPUPW_AP5.6\htdocs\images\001.jpg”,正確的代碼寫法有三種:
①<img src="images/001.jpg">(這是相對地址,相對于“index.html”網(wǎng)頁本身的地址)
②<img src="/images/001.jpg">(這是絕對地址,以“/”開頭!/”對應(yīng)網(wǎng)站的根目錄,即從網(wǎng)站的根目錄“E:\UPUPW_AP5.6\htdocs\”算起)
③<img src="http://127.0.0.1/images/001.jpg">(這也是絕對地址,是一條完整的網(wǎng)址。但對站內(nèi)文件的引用不推薦這種寫法,一旦網(wǎng)站換域名就要修改很多代碼,增加了維護成本。)
(3)假如我們在“E:\UPUPW_AP5.6\htdocs\member\login.html”這個網(wǎng)頁文件中插入圖片
“E:\UPUPW_AP5.6\htdocs\images\001.jpg”,那么正確的寫法有三種:
①<img src="../images/001.jpg">(這是相對地址,相對于“l(fā)ogin.html”網(wǎng)頁本身的路徑。“../”代表往上一層文件夾,當(dāng)前“l(fā)ogin.html”在“member”文件夾中,“l(fā)ogin.html”往上一層文件夾則到達(dá)“htdocs”文件夾,到達(dá)“htdocs”文件夾后,再定位“images/001.jpg”即是“E:\UPUPW_AP5.6\htdocs\images\001.jpg”)
②<img src="/images/001.jpg">(這是絕對地址,以“/”開頭!/”對應(yīng)網(wǎng)站的根目錄,即從網(wǎng)站的根目錄“E:\UPUPW_AP5.6\htdocs\”算起)
③<img src="http://127.0.0.1/images/001.jpg">(這也是絕對地址,是一條完整的網(wǎng)址。對站內(nèi)文件的引用不推薦使用這種形式。)
(4)區(qū)分斜杠(/)和反斜杠(\)的使用
按常識,硬盤中的物理路徑使用的是反斜杠(\),如:“E:\UPUPW_AP5.6\htdocs\”,那么我們可以這樣記憶:反斜杠(\)用于硬盤的物理路徑。
除了物理路徑,網(wǎng)址、網(wǎng)站中涉及路徑的,我們均使用斜杠(/),如:“/images/001.jpg”。
(5)相對地址、絕對地址也有人稱為相對路徑、絕對路徑。
例二,假設(shè)我們電腦E盤的目錄和文件結(jié)構(gòu)如下圖:
(圖2-40)
根據(jù)“E:\UPUPW_AP5.6\Apache2\conf\httpd-vhosts.conf”里的配置,“E:\UPUPW_AP5.6\htdocs\”對應(yīng)網(wǎng)址“http://127.0.0.1/”,那么:
(1)“E:\UPUPW_AP5.6\htdocs\”的“htdocs”文件夾是網(wǎng)站的(服務(wù)器物理路徑)根目錄。
“http://127.0.0.1/”的最后一個斜杠“/”代表網(wǎng)站的(虛擬路徑)根目錄。
這兩者呈對應(yīng)關(guān)系。我們?nèi)绻L問“E:\UPUPW_AP5.6\htdocs\new\a\b\reg.html”這個網(wǎng)頁文件,對應(yīng)的網(wǎng)址是:“http://127.0.0.1/new/a/b/reg.html”,如果要訪問“E:\UPUPW_AP5.6\htdocs\new\a\b\c\002.jpg”這個圖片文件,對應(yīng)的網(wǎng)址是:“http://127.0.0.1/new/a/b/c/002.jpg”。
(2)假如我們在“E:\UPUPW_AP5.6\htdocs\new\a\b\reg.html”這個網(wǎng)頁文件中插入圖片“E:\UPUPW_AP5.6\htdocs\new\a\b\c\002.jpg”,那么正確的代碼寫法有三種:
①<img src="c/002.jpg">(相對地址)
②<img src="/new/a/b/c/002.jpg">(絕對地址)
③<img src="http://127.0.0.1/new/a/b/c/002.jpg">(絕對地址)
(3)假如我們在“E:\UPUPW_AP5.6\htdocs\new\a\b\reg.html”這個網(wǎng)頁文件中插入圖片“E:\UPUPW_AP5.6\htdocs\new\d\e\003.jpg”,那么正確的代碼寫法有三種:
①<img src="../../d/e/003.jpg">(相對地址)
②<img src="/new/d/e/003.jpg">(絕對地址)
③<img src="http://127.0.0.1/new/d/e/003.jpg">(絕對地址)
(4)假如我們在“E:\UPUPW_AP5.6\htdocs\new\a\b\reg.html”這個網(wǎng)頁中,要鏈接“E:\UPUPW_AP5.6\htdocs\new\d\e\test.html”這個網(wǎng)頁,那么正確的代碼寫法有三種:
①<a href="../../d/e/test.html">test</a>(相對路徑)
②<a href="/new/d/e/test.html">test</a>(絕對路徑)
③<a href="http://127.0.0.1/new/d/e/test.html">test</a>(絕對路徑)
(5)假如我們在“E:\UPUPW_AP5.6\htdocs\new\a\b\reg.html”這個網(wǎng)頁中,要鏈接“E:\UPUPW_AP5.6\Apache2\”文件夾中的文件,有辦法嗎?
<a href="../../../Apache2/filename.ext">test</a>(錯誤)
當(dāng)網(wǎng)站的物理路徑根目錄在服務(wù)器里(Apache)配置為“E:\UPUPW_AP5.6\htdocs\”,那么絕對地址開頭的“/”符號即是指網(wǎng)站的根目錄,對應(yīng)“E:\UPUPW_AP5.6\htdocs\”;而相對路徑“../../../../../../../../”無論向上多少層,最上層只能到達(dá)網(wǎng)站的根目錄“E:\UPUPW_AP5.6\htdocs\”,不會再向上一層。這也是屬于安全問題。假如通過向上一層的路徑關(guān)系可以突破我們配置的網(wǎng)站物理路徑根目錄“E:\UPUPW_AP5.6\htdocs\”,那么意味著通過網(wǎng)頁可以鏈接和使用服務(wù)器里的任意文件,包括服務(wù)器系統(tǒng)盤里的系統(tǒng)文件。當(dāng)使用網(wǎng)頁程序語言(如ASP、PHP、.NET、JSP)來編寫網(wǎng)站代碼時,那么將可以操作讀取服務(wù)器里的任意文件,還可以刪除服務(wù)器里的任意文件,包括服務(wù)器的系統(tǒng)文件……這是多么可怕的事情。所以涉及服務(wù)器安全性的問題,會有權(quán)限限制。
以上就是絕對地址和相對地址的概念的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。