URL入門(mén)
時(shí)間:2023-01-30 11:36:02 | 來(lái)源:建站知識(shí)
時(shí)間:2023-01-30 11:36:02 來(lái)源:建站知識(shí)
WWW = URL + HTTP + HTML
HTTP: Hyper Text Transfer Protocol 超文本傳輸協(xié)議
HTTP(協(xié)議)是基于TCP和IP兩個(gè)協(xié)議
IP協(xié)議:Internet Protocal
它主要約定了兩件事:1、如何定位一臺(tái)設(shè)備; 2、如何封裝數(shù)據(jù)報(bào)文,以跟其他設(shè)備交流。
IP分為內(nèi)網(wǎng)IP和外網(wǎng)IP,以路由器為一個(gè)界限。
如何獲取外網(wǎng)
IP?
終端輸入命令 ipconfig 或登陸 ip138.com 網(wǎng)址
IPV4地址——內(nèi)網(wǎng)地址(不同設(shè)備內(nèi)網(wǎng)地址也不同)
默認(rèn)網(wǎng)關(guān)——路由器地址(路由器也可稱(chēng)作網(wǎng)關(guān))
幾個(gè)特殊的
IP:
127.0.0.1 表示自己
localhost 通過(guò) hosts 指定為自己
0.0.0.0 不表示任何設(shè)備
關(guān)于
hosts文件:
hosts文件以 # 開(kāi)頭的表示注釋
hosts中可以添加一行 127.0.0.1 Jung, 讓Jung成為127.0.0.1的別稱(chēng)
hosts一般需要管理員權(quán)限才能編輯
端口
有了IP,還需要端口。IP用來(lái)定位設(shè)備,端口用來(lái)定位設(shè)備的服務(wù)。有了IP和端口,就能定位一個(gè)設(shè)備的服務(wù)。IP和端口缺一不可。
一臺(tái)機(jī)器可以提供很多服務(wù),每個(gè)服務(wù)一個(gè)號(hào)碼,這個(gè)號(hào)碼就叫端口號(hào)port(一共有65535個(gè)端口)。
要提供HTTP服務(wù)最好使用80端口
要提供HTTPS服務(wù)最好使用443端口
要提供FTP服務(wù)最好使用21端口
端口使用規(guī)則:
0到1023 (2的10次方減1) 號(hào)端口是留給系統(tǒng)使用的。你只有擁有了管理員權(quán)限后,才能使用這1024個(gè)端口
其他端口可以給普通用戶使用,比如http-server默認(rèn)使用8080端口
一個(gè)端口如果被占用,你就只能換一個(gè)端口
域名
域名就是對(duì)IP的別稱(chēng)
一個(gè)域名可以對(duì)應(yīng)不同IP,這個(gè)叫做均衡負(fù)載,以防一臺(tái)機(jī)器扛不住
一個(gè)IP可以對(duì)應(yīng)不同域名,這個(gè)叫做共享主機(jī)
域名和
IP是怎么對(duì)應(yīng)起來(lái)的?
通過(guò)DNS,過(guò)程:
你的Chrome瀏覽器會(huì)向電信/聯(lián)通提供的DNS服務(wù)器詢問(wèn)
http://xxx.com對(duì)應(yīng)什么IP
電信/聯(lián)通會(huì)回答一個(gè)IP
然后Chrome才會(huì)向?qū)?yīng)IP的80/443端口發(fā)送請(qǐng)求
請(qǐng)求內(nèi)容是查看
http://xxx.com的首頁(yè)
拓展:關(guān)于
http://www.xxx.com和
http://xxx.com是什么關(guān)系?
http://www.xxx.com和
http://xxx.com不是同一個(gè)域名
com是頂級(jí)域名
http://xxx.com是二級(jí)域名(俗稱(chēng)一級(jí)域名)
http://www.xxx.com是三級(jí)域名(俗稱(chēng)二級(jí)域名)
他們之間是父子關(guān)系,
http://xxx.com是父。比如
http://github.io就是把子域名
http://xxx.github.io免費(fèi)給用戶使用
http://www.xxx.com和
http://xxx.com 可以是同一家公司的,也可以不是,主要看他是否都購(gòu)買(mǎi)了這兩個(gè)域名
www是多余的
在同一服務(wù)器上請(qǐng)求不同頁(yè)面
通過(guò)路徑可以做到(不能加后綴,比如.com之類(lèi)的),如:
https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS工具:通過(guò)Chrome開(kāi)發(fā)者工具Network面板查看區(qū)別
同一個(gè)頁(yè)面,不同內(nèi)容
通過(guò)更改查詢參數(shù)可以做到,如:
http://www.baidu.com/s?wd=hihttp://www.baidu.com/s?wd=hello同一個(gè)內(nèi)容,不同位置
通過(guò)錨點(diǎn)可以做到,如:
https://developer.mozilla.org/zh-CN/docs/Web/CSS#參考書(shū)
https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
注意:錨點(diǎn)看起來(lái)有中文,但實(shí)際上是不支持中文的。鏈接中的錨點(diǎn) #參考書(shū) 會(huì)變成一長(zhǎng)串的字符串。錨點(diǎn)事無(wú)法在Network面板看到的,因?yàn)殄^點(diǎn)不會(huì)傳給服務(wù)器,服務(wù)器無(wú)法接收。
URL (
Uniform Resource Locator)
URL = 協(xié)議 + 域名或IP + 端口號(hào) + 路徑 + 查詢字符串 + 錨點(diǎn),舉例:
https://www.baidu.com/s?wd=hello&rsv_spt=1#5https:// 表示HTTPS協(xié)議,HTTPS默認(rèn)端口是443 (前端一般只使用兩個(gè)協(xié)議:HTTP和HTTPS)
http://www.baidu.com 是域名
/s 是路徑
?wd=hello&rsv_spt=1 是查詢參數(shù)
#5 是錨點(diǎn)
curl命令
在終端用
curl可以發(fā)
HTTP請(qǐng)求:
curl -v
http://baidu.comcurl -s -v --
https://www.baidu.com請(qǐng)求過(guò)程
url會(huì)被curl工具重寫(xiě),先請(qǐng)求DNS獲得IP
進(jìn)行TCP鏈接,TCP鏈接成功后,開(kāi)始發(fā)送HTTP請(qǐng)求
> 符號(hào)跟的是請(qǐng)求內(nèi)容
< 符號(hào)跟的是響應(yīng)內(nèi)容
響應(yīng)結(jié)束后,關(guān)閉TCP鏈接(終端里看不出來(lái))
TCP關(guān)閉后才是真正的結(jié)束
HTTP的作用:規(guī)定請(qǐng)求和響應(yīng)的格式是什么
DNS全稱(chēng)
Domain Name Systerm,DNS保存了一張域名(domain name)和與之相對(duì)應(yīng)的IP地址的表,以解析消息的域名。
資料來(lái)源:饑人谷