淺析URL

URL的組成部分

image.png

URL的組成有:協(xié)議、域名、路徑、查詢參數(shù)、錨點(diǎn)。接下來將依次分析這五部分。

協(xié)議

主要有HTTP協(xié)議和HTTPS協(xié)議,HTTP協(xié)議默認(rèn)使用端口號80, HTTPS協(xié)議默認(rèn)使用端口號443

域名

ip

ip地址是用來定位互聯(lián)網(wǎng)世界中的一臺(tái)設(shè)備,每個(gè)上網(wǎng)的設(shè)備都有自己獨(dú)立的IP地址

IP分為外網(wǎng)IP和內(nèi)網(wǎng)IP

image.png

可以用Ping命令查看域名的IP地址

image.png

如上圖,域名taobao.com對應(yīng)的IP地址是140.205.220.96

還可以用nslookup查看域名的ip地址:

image.png

端口

一臺(tái)服務(wù)器可以提供很多服務(wù),每個(gè)服務(wù)有不同的號碼,這個(gè)號碼就是端口。類似于,在麥當(dāng)勞點(diǎn)餐,有咖啡窗口、快餐窗口、甜品站窗口,只能在咖啡窗口點(diǎn)咖啡、甜品站窗口點(diǎn)甜品。

一臺(tái)機(jī)器可以提供很多不同的服務(wù)

  • 80端口:HTTP服務(wù)
  • 443端口: HTTPS服務(wù)
  • 21端口: FTP服務(wù)

域名

域名是IP的別稱

  • 一個(gè)域名可以對應(yīng)多個(gè)IP, 這叫負(fù)載均衡,防止一臺(tái)機(jī)器無法同時(shí)為大量用戶提供服務(wù)

  • 不同地區(qū)ping taobao.com會(huì)看到不同的ip地址

  • 一個(gè)IP也可以對應(yīng)多個(gè)域名,這叫主機(jī)共享

域名通過 DNS 解析成 IP

當(dāng)你輸入www.baidu.com

  • chrome瀏覽器會(huì)向電信/聯(lián)通提供的DNS服務(wù)器詢問www.baidu.com對應(yīng)什么IP

  • 然后電信/聯(lián)通會(huì)回復(fù)一個(gè)IP

  • 然后chrome瀏覽器會(huì)向?qū)?yīng)IP地址的80/ 443端口發(fā)送請求

  • 服務(wù)器默認(rèn)用80端口提供HTTP服務(wù)

  • 服務(wù)器默認(rèn)用443端口提供HTTPS服務(wù)

  • 請求內(nèi)容是查看www.baidu.com的首頁

關(guān)于域名的其他知識(shí)

www.baidu.combaidu.com是不同的域名

  1. .com是頂級域名
  2. baidu.com是二級域名(俗稱一級域名)
  3. www.baidu.com 是三級域名(俗稱二級域名)
  4. 所以www.baidu.combaidu.com的子域名
  5. 例如,github.io是github的域名, userid.github.io是每個(gè)用戶的域名

路徑

如何請求同一服務(wù)器上不同網(wǎng)頁?

用路徑即可

路徑是沒有必要有后綴的

https://developer.mozilla.org/zh-CN/docs/Web/HTML

https://developer.mozilla.org/zh-CN/docs/Web/CSS

查詢參數(shù)

請求同一個(gè)頁面,能得到不同內(nèi)容嗎?

用查詢參數(shù)即可

http://www.baidu.com/s?wd=hi

http://www.baidu.com/s?wd=hello

錨點(diǎn)

同一內(nèi)容,不同位置?

用錨點(diǎn)即可

https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程

錨點(diǎn)不支持中文,會(huì)把中文進(jìn)行編碼

注意!

錨點(diǎn)不會(huì)經(jīng)過服務(wù)器,因?yàn)槭潜镜貎?nèi)容

所以服務(wù)器不會(huì)閱讀井號 # 之后的內(nèi)容,不可以拿這個(gè)傳參數(shù)!

URL舉例

最后我們再來看看URL的不同部分

image.png

https默認(rèn)用443端口

所以www.baidu.com 等同于 www.baidu.com:443

curl使用示例

curl -v http://www.baidu.com

整個(gè)過程:

  • 向DNS查詢域名對應(yīng)的IP地址

  • 建立TCP連接,TCP連接建立好之后,開始發(fā)送HTTP請求

  • 下圖中以大于號開始的

  • GET / HTTP/1.1到 > Accept: /是請求頭

image.png
  • 之后服務(wù)器會(huì)發(fā)送回來一個(gè)響應(yīng)

  • 分為響應(yīng)頭和響應(yīng)體

  • 以下內(nèi)容是響應(yīng)頭

  • image.png
  • 響應(yīng)體就是HTML頁面

  • 響應(yīng)結(jié)束后,關(guān)閉TCP連接

  • HTTP請求結(jié)束

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容