時(shí)間:2023-01-30 18:36:01 | 來(lái)源:建站知識(shí)
時(shí)間:2023-01-30 18:36:01 來(lái)源:建站知識(shí)
一般我們?nèi)粘T谏暇W(wǎng)的時(shí)候,會(huì)在瀏覽器的地址欄里輸入一個(gè)網(wǎng)站的 "網(wǎng)址",點(diǎn)擊下回車(chē),就會(huì)跳到你想去的網(wǎng)站,就類(lèi)似這樣baidu.com
或者qq.com
就能正常上網(wǎng)了,但其實(shí)我們輸入的只是整個(gè)URL中的一小部分http://
這部分就是協(xié)議部分,即指定了URL是以什么協(xié)議發(fā)送網(wǎng)絡(luò)請(qǐng)求的http://
、https://
、ftp://
、file://
,比如: http://
就是超文本傳輸協(xié)議,平時(shí)上網(wǎng)大多用這個(gè)協(xié)議,https://
是以安全為目標(biāo)的HTTP協(xié)議。localhost
就是地址部分,用來(lái)確定URL所要訪(fǎng)問(wèn)的服務(wù)器的網(wǎng)絡(luò)地址(也就是網(wǎng)址)。在URL中,地址可以用三個(gè)形式來(lái)表示:域名
、主機(jī)名
、IP地址
www.baidu.com
、www.qq.com
就是域名,域名也分一級(jí)域名
、二級(jí)域名
、以及頂級(jí)域名
。.com
這種就是頂級(jí)域名
,頂級(jí)域名一般都代表網(wǎng)站屬于某種機(jī)構(gòu)或組織。像.com
(商業(yè)機(jī)構(gòu))、.org
(非盈利組織)、.gov
(政府機(jī)構(gòu))這類(lèi)就是常見(jiàn)的頂級(jí)域名,除此之外,還有些代表國(guó)家的頂級(jí)域名,如:.cn
(中國(guó))、.us
(美國(guó))、.jp
(日本)等等qq.com
就是一級(jí)域名
,看上去十分簡(jiǎn)潔,在頂級(jí)域名.com
前只有一個(gè)單詞短語(yǔ)mail.qq.com
和v.qq.com
這種前面加了mail.
、v.
等字符串的就叫二級(jí)域名
DNS
服務(wù)器找到域名對(duì)應(yīng)的IP地址
,再通過(guò)底層的TCP/IP
協(xié)議路由到對(duì)應(yīng)的機(jī)器上去 (這些內(nèi)容不是本文的重點(diǎn)暫時(shí)略過(guò),先挖個(gè)坑再說(shuō))主機(jī)名
找到你要訪(fǎng)問(wèn)的計(jì)算機(jī)。主機(jī)名和域名一樣,計(jì)算機(jī)和路由器不認(rèn)它,需要通過(guò)HOSTS文件
這樣的技術(shù)找到主機(jī)名
和IP地址
的關(guān)聯(lián)關(guān)系,最后還是翻譯成IP地址
再繼續(xù)發(fā)送網(wǎng)絡(luò)請(qǐng)求localhost
也是主機(jī)名
,但是一種比較特殊的主機(jī)名
,是給 回環(huán)地址的一個(gè)標(biāo)準(zhǔn)主機(jī)名,就是代表本機(jī)自己的地址。IP地址
來(lái)代替域名或主機(jī)名,如192.168.0.1
,關(guān)于IP地址
的相關(guān)知識(shí)點(diǎn)放到以后再講(繼續(xù)挖坑):
后面的那串?dāng)?shù)字8080
就是端口號(hào),一臺(tái)服務(wù)器上可以開(kāi)多個(gè)端口號(hào),往往一個(gè)網(wǎng)絡(luò)服務(wù)程序就對(duì)應(yīng)一個(gè)端口號(hào)Tomcat
和SSH
,讓它們分別關(guān)聯(lián)端口8080
和22
,那URL中如果端口號(hào)是8080
就是會(huì)訪(fǎng)問(wèn)到Tomcat
程序,22
就會(huì)連接SSH服務(wù)。http://www.baidu.com
沒(méi)看到有端口號(hào)啊80
,只是它被隱藏起來(lái)了,我們看不到而已,而這個(gè)80
端口也就是URL的默認(rèn)端口號(hào)80
,如果協(xié)議是http://
,默認(rèn)端口號(hào)為80
,但若是https://
協(xié)議,默認(rèn)端口號(hào)就是443
了/
開(kāi)始,到最后一個(gè)斜杠/
結(jié)束的那部分,也就是圖中/app/user/
那部分即為虛擬目錄
/
為根目錄,每多一個(gè)/
就多進(jìn)入一層目錄/
開(kāi)始,到?
為止,沒(méi)有?
則到#
為止,或者?
和#
都沒(méi)有就是到整個(gè)URL結(jié)束為止的那部分就為文件名info.do
這部分,它一般包含文件名和擴(kuò)展名('.'后面那部分),用來(lái)指代一個(gè)URL所訪(fǎng)問(wèn)的具體文件或資源,它可以是圖片、html文件、css文件,也可以是js文件、字體文件等等,它也可以不是某種文件,而是服務(wù)端后臺(tái)執(zhí)行的某段程序。http://www.baidu.com
這樣的URL就沒(méi)有文件名,但服務(wù)器會(huì)在缺省的情況下給你定位到某個(gè)特定的文件或程序上去。?
后到#
結(jié)束,即圖中的?uid=101&ty=2
為查詢(xún)參數(shù)Query
,它是用來(lái)向服務(wù)端以字符串的形式傳遞參數(shù)和少數(shù)數(shù)據(jù)用的鍵值對(duì)
的形式進(jìn)行表示,如 a=1
、b=2
就是兩個(gè)鍵值對(duì)
,鍵為"a"和"b",值為對(duì)應(yīng)的"1"和"2", 多個(gè)鍵值對(duì)
用&
連起來(lái):a=1&b=2
a&b
這樣字符串,和查詢(xún)參數(shù)鍵值對(duì)的連接符&
沖突了,若不加以區(qū)分就會(huì)產(chǎn)生歧義a&b
變成了a%26b
,就不再包含會(huì)沖突的特殊字符http://localhost/do?url=http://www.baidu.com
key
對(duì)應(yīng)一個(gè)value
,那如果是一個(gè)key
要傳遞多個(gè)值,也就是一個(gè)列表咋辦?也好辦a=1&a=2&a=3
,這里穿了3個(gè)參數(shù)名都為a
的查詢(xún)參數(shù),是完全可以的,可以利用這種特性,按順序?qū)?1
、2
、3
作為參數(shù)a
的列表值[]
,如:a[]=1&a[]=2&a[]=3
#
后面那部分字符串,#abc
就是錨部分Reference
,通常也是用來(lái)傳遞參數(shù)等信息,但與查詢(xún)參數(shù)的本質(zhì)區(qū)別就是這部分內(nèi)容不會(huì)被傳遞到服務(wù)器端vue
、reactjs
等前端框架的興起,錨作為前端javascript
程序處理的參數(shù)載體也越來(lái)越重要了關(guān)鍵詞:
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。