HTTP全解筆記(一)URL是什么
時(shí)間:2023-01-31 14:56:01 | 來源:建站知識(shí)
時(shí)間:2023-01-31 14:56:01 來源:建站知識(shí)
李爵士發(fā)明的三樣?xùn)|西
WWW( World Wide Web ) = URL( Uniform Resource Locator) + HTTP( Hyper Text Transfer Protocol ) + HTML
URL( Uniform Resource Locator)的意思是統(tǒng)一資源定位系統(tǒng),那么一個(gè)URL的完整是什么
URL = 協(xié)議 + 域名或IP + 路徑 + 查詢字符串 + 錨點(diǎn) + 端口號(hào) , 如
https://www.baidu.com/s?wd=URL&rsv_spt=2#2是由以下組成
https:// 協(xié)議
http://www.baidu.com 域名 /s 路徑 ?wd=URL&rsv_spt=2 查詢參數(shù) #5 錨點(diǎn)
一、網(wǎng)絡(luò)和IP
IP(Intelnet Protocal)就是網(wǎng)絡(luò)之間互連的協(xié)議。
1.主要做兩件事:
(1)如何定位一臺(tái)設(shè)備
(2)如何封裝數(shù)據(jù)報(bào)文,以跟其他設(shè)備交流
2.IP分為內(nèi)網(wǎng)和外網(wǎng)
3.如何獲取外網(wǎng)IP
如: 點(diǎn)擊獲取
4.查看內(nèi)網(wǎng)IP
cmder 輸入 ipconfig 查看內(nèi)網(wǎng)IP 和 路由器IP
5.幾個(gè)特殊的IP(表示本地)
可以直接通過特殊IP訪問自己電腦上的文件
(1)127.0.0.1 表示自己
(2)localhost 通過 hosts 指定為自己
hosts 地址:C:/Windows/System32/drivers/etc
(3)0.0.0.0 不表示任何設(shè)備
二、端口 port
用來定位一個(gè)設(shè)備的服務(wù)1.一臺(tái)機(jī)器可以提供不同服務(wù)
(1)要提供 HTTP 服務(wù)最好使用 80 端口
(2)要提供 HTTPS(S=安全) 服務(wù)最好使用 443 端口
(3)要提供 FTP 服務(wù)最好使用 21 端口
(4)一共有 65535 個(gè)端口
2.規(guī)則
(1) 0~1023 (2的10次方減1)號(hào)端口是留給系統(tǒng)使用的
(2)管理員權(quán)限才能使用這1024個(gè)端口
(3)其他端口可以給普通用戶使用
(4)比如 http-server 默認(rèn)使用8080端口
(5)一個(gè)端口如果被占用,就只能換一個(gè)端口
☆☆☆I(lǐng)P與端口缺一不可☆☆☆三、域名、路徑、查詢參數(shù)、錨點(diǎn)
1.域名
(1)域名就是對(duì) IP 的別稱
http://qq.com 對(duì)應(yīng)的
ping
http://qq.com(2)知識(shí)點(diǎn)
① 一個(gè)域名可以對(duì)應(yīng)不同 IP ,這個(gè)叫做均衡負(fù)載,防止一臺(tái)機(jī)器扛不住
② 一個(gè) IP 可以對(duì)應(yīng)不同域名,這個(gè)叫做共享主機(jī)
(3)域名和IP通過DNS (Domain Name Server,域名服務(wù)器)對(duì)應(yīng)
① 過程
1> 當(dāng)輸入一個(gè)網(wǎng)址,你的瀏覽器會(huì)向電信/聯(lián)通提供的 DNS 服務(wù)器詢問網(wǎng)址對(duì)應(yīng)的是什么 IP
2> 然后收到一個(gè)回復(fù)IP,此時(shí)瀏覽器才會(huì)向?qū)?yīng) IP 的 80/443 端口發(fā)送請(qǐng)求
3> 請(qǐng)求內(nèi)容是查看網(wǎng)址
② 為什么是 80 或 443 端口
1> 服務(wù)器默認(rèn)用 80 提供 http 服務(wù)
2> 服務(wù)器默認(rèn)用 443 提供 https 服務(wù)
3> 可以在開發(fā)者工具里看到具體的端口
(3) 如何查詢域名對(duì)應(yīng)的IP地址
nslookup
http://qq.com(4)www和沒有www的關(guān)系
① www
http://www.baidu.com 和
http://baidu.com 不是同一個(gè)域名
② 他們的關(guān)系
1> com 是頂級(jí)域名
2>
http://baidu.com 是二級(jí)域名 (俗稱一級(jí)域名)
3>
http://www.baidu.com 是三級(jí)域名(俗稱二級(jí)域名)
4> 他們是父子關(guān)系
5> 所以
http://www.baidu.com 和
http://baidu.com 可以是同一家公司,也可以不是
2.路徑
如何請(qǐng)求不同的頁面
① 通過路徑做到,如
https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS② 工具
使用瀏覽器開發(fā)者工具 Network 面板看看區(qū)別
3.查詢參數(shù)
同一個(gè)頁面,不同內(nèi)容,查詢參數(shù)可以做到,如:
www.baidu.com/s?wd=hi
www.baidu.com/s?wd=hello
4.錨點(diǎn)
(1)同一個(gè)內(nèi)容,不同位置,通過錨點(diǎn)可以做到,如:
https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
實(shí)際為
https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E6%95%99%E7%A8%8Bhttps://developer.mozilla.org/zh-CN/docs/Web/CSS#參考書
實(shí)際為
https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E5%8F%82%E8%80%83%E4%B9%A6(2)注意事項(xiàng)
① 錨點(diǎn)看起來可以有中文,實(shí)際不支持中文
② 所以即使 #教程 或者 #參考書 依舊會(huì)跳轉(zhuǎn),但是實(shí)際顯示的卻是 #%E6%95%99%E7%A8%8B
③ 錨點(diǎn)是無法在 Network 面板看到的,瀏覽器會(huì)吃掉 # 后面的內(nèi)容
④ 因?yàn)殄^點(diǎn)不會(huì)傳給服務(wù)器
四、curl 命令
1.用 curl 可以發(fā) HTTP 請(qǐng)求
(1)curl -v
http://qq.comRebuilt URL to:
http://qq.com/ 區(qū)別為加了個(gè) / ,默認(rèn)訪問根目錄
Trying 183.3.226.35... 查詢到IP 嘗試訪問IP
TCP_NODELAY set 開始啟動(dòng)TCP
Connected to
http://qq.com (183.3.226.35) port 80 (#0) 開始連接 80 端口
后面以 > 開頭是我發(fā)送了什么,以 < 是 IP 響應(yīng)了什么
(2)curl -s -v --
https://www.baidu.com2.理解以下概念
(1)url 會(huì)被 curl 工具重寫,先請(qǐng)求 DNS 獲得 IP
(2)先進(jìn)行 TCP 連接,TCP 連接成功后,開始發(fā)送 HTTP 請(qǐng)求
(3)請(qǐng)求內(nèi)容
(4)相應(yīng)內(nèi)容
(5)相應(yīng)結(jié)束后,關(guān)閉 TCP 連接(看不出來)
(6)真正結(jié)束