李爵士發(fā)明的三樣?xùn)|西 WWW=URL+HTTP+HTML
今天主要講解什么是URL
IP(協(xié)議)
IP協(xié)議用來(lái)表示每個(gè)設(shè)備的地址蜈敢。
IP是Internet Protocol(網(wǎng)絡(luò)之間互連的協(xié)議)的縮寫(xiě)擂红,是TCP/IP體系中的網(wǎng)絡(luò)層協(xié)議。
IP主要約定了兩件事:
1.如何定位一臺(tái)設(shè)備
有IP就可以定位一臺(tái)設(shè)備
2.如何封裝數(shù)據(jù)報(bào)文藕咏,以跟其它設(shè)備交流
IP分內(nèi)網(wǎng)IP和外網(wǎng)IP
外網(wǎng)就是路由器之外,內(nèi)網(wǎng)就是路由器包括的有線和無(wú)線
如何獲取外網(wǎng)IP
1.從電信租用寬帶,一年一千多
2.買個(gè)貓(調(diào)制解調(diào)器)昧狮,光貓就是把光信號(hào)變成電信號(hào)。把光信號(hào)變成路由器能理解的網(wǎng)絡(luò)信號(hào)
3.買個(gè)路由器边苹,手機(jī)和電腦分別連接路由器廣播出來(lái)的有線WIFI
只要路由器通過(guò)光貓連上電信的服務(wù)器陵且,那么路由器就會(huì)有個(gè)「外網(wǎng)IP」,比如「14.17.32.211」,這就是你在互聯(lián)網(wǎng)中的地址个束。
4.但是如果你重啟路由器慕购,那么你很有可能被重新分配一個(gè)「外網(wǎng)IP」。也就是說(shuō)你的路由器沒(méi)有「固定的外網(wǎng)IP」
查看外網(wǎng)IP
1’終端命令
ipconfig
2’網(wǎng)站 ip138.com
不能告訴別人茬底,別人會(huì)通過(guò)地址找到你
你的路由器的外網(wǎng)IP如果是14.17.32.211那么你的手機(jī)和電腦的IP又是什么呢沪悲?
是「內(nèi)網(wǎng)」
內(nèi)網(wǎng)IP
1.路由器會(huì)在你家創(chuàng)建個(gè)內(nèi)網(wǎng),內(nèi)網(wǎng)中的設(shè)備使用內(nèi)網(wǎng)IP阱表,一般這個(gè)IP格式是192.168.xxx.xxx
2.一般路由器會(huì)給自己分配個(gè)好記的內(nèi)網(wǎng)IP殿如,如192.168.1.1
3.然后路由會(huì)再給每一個(gè)內(nèi)網(wǎng)中的設(shè)備分配一個(gè)不同的內(nèi)網(wǎng)IP,比如電腦是192.168.1.2最爬,手機(jī)是192.169.1.3涉馁,以此類推
路由器的功能
路由器有兩個(gè)IP,一個(gè)外網(wǎng)IP和一個(gè)內(nèi)網(wǎng)IP
內(nèi)網(wǎng)中的設(shè)備可以互相訪問(wèn)爱致,但是不能直接訪問(wèn)外網(wǎng)
內(nèi)網(wǎng)設(shè)備想要訪問(wèn)外網(wǎng)必須經(jīng)過(guò)路由器中轉(zhuǎn)
外網(wǎng)中的設(shè)備可以互相訪問(wèn)但無(wú)法訪問(wèn)你的內(nèi)網(wǎng)
外網(wǎng)設(shè)備想要把內(nèi)容送到內(nèi)網(wǎng)也必須通過(guò)路由器
也就是說(shuō)內(nèi)網(wǎng)和外網(wǎng)就像兩個(gè)隔絕的空間烤送,無(wú)法互通,唯一的聯(lián)通點(diǎn)就是路由器
所以路由器有時(shí)候也被叫做「網(wǎng)關(guān)」
幾個(gè)特殊的IP
1.127.0.0.1 表示自己
2.可以通過(guò)hosts將localhost指定為自己
127.0.0.1:8080 = localhost:8080
hosts可使任意字符串變成一個(gè)對(duì)應(yīng)的ip
hosts文件在哪糠悯?
MAC修改hosts文件
hosts文件位于 /private/etc/hosts帮坚,可以通過(guò)下面的方法修改。
1.終端命令
sudo vi /etc/hosts
回車后再輸入密碼互艾,再回車就可以打開(kāi)我們的hosts文件了试和。
2.輸入 i 就可以編輯了,此時(shí)狀態(tài)為insert
加上要配置的 ip+空格+域名
3.編輯好后纫普,按 esc鍵退出,然后輸入:wq
端口port
一臺(tái)機(jī)器可以提供很多服務(wù)
每個(gè)服務(wù)一個(gè)號(hào)碼阅悍,這個(gè)號(hào)碼就叫端口號(hào)port
一.一臺(tái)機(jī)器可以提供不同服務(wù)
1.要提供HTTP服務(wù)最好使用80端口
超文本傳輸協(xié)議- 用于傳輸網(wǎng)頁(yè)
2.要提供HTTPS服務(wù)最好使用443端口
超文本傳輸安全協(xié)議或QUIC
3.要提供FTP服務(wù)最好使用21端口
文件傳輸協(xié)議 - 控制端口
一共有65535個(gè)端口(基本夠用)
怎么知道應(yīng)該使用什么端口?
維基百科
二.端口使用還有什么規(guī)則?
規(guī)則
0到1023號(hào)端口是留給系統(tǒng)使用的
你只有擁有了管理員權(quán)限后节视,才能使用這1024個(gè)端口
不推薦你使用0到1023號(hào)端口
一般用8080做開(kāi)發(fā)晦墙,等你真正的部署你的服務(wù)器之后,才能用80端口
其它端口可以給普通用戶使用肴茄,隨便用晌畅,超過(guò)1024就可以了
在本機(jī)的1025上起個(gè)服務(wù)
終端命令
cd ~/Desktop/
hs -c-1 -p 1025
比如http-server默認(rèn)使用8080端口
一個(gè)端口如果被占用,你就只能換個(gè)端口
總結(jié)
IP是用來(lái)定位一個(gè)設(shè)備的寡痰;
端口是用來(lái)定位一個(gè)設(shè)備的服務(wù)的抗楔;
IP端口缺一不可
有了IP和端口就可以定位一個(gè)設(shè)備提供的服務(wù)(騰訊的設(shè)備提供的聊天服務(wù))
域名
域名就是對(duì)IP的別稱
baidu.com對(duì)應(yīng)什么IP?
終端命令
ping baidu.com
mac會(huì)得到不停的回復(fù),中斷control+c
知識(shí)點(diǎn)
1.一個(gè)域名可以對(duì)應(yīng)不同IP
一般ping同一個(gè)域名會(huì)得到不同的IP
這個(gè)叫負(fù)載均衡拦坠,防止一臺(tái)機(jī)器扛不住
可以把這個(gè)域名綁定到多個(gè)不同的IP
引流,將壓力平均分給多個(gè)IP分?jǐn)?br>
這樣连躏,假設(shè)即使同時(shí)有100萬(wàn)人訪問(wèn)百度,但有了多個(gè)IP的同時(shí)分擔(dān)贞滨,也能輕松應(yīng)對(duì)入热。
2.一個(gè)IP可以對(duì)應(yīng)不同域名
這個(gè)叫做共享主機(jī),窮開(kāi)發(fā)者會(huì)這么做
DNS 域名系統(tǒng)
那么域名和IP是怎么對(duì)應(yīng)起來(lái)的?
通過(guò) DNS(全稱域名系統(tǒng))
DNS怎么運(yùn)作的晓铆?
當(dāng)你輸入baidu.com
過(guò)程
你的Chrome瀏覽器會(huì)向電信/聯(lián)通提供的DNS服務(wù)器 詢問(wèn)baidu.com對(duì)應(yīng)什么IP
終端命令
nslookup baidu.com
電信/聯(lián)通會(huì)回答一個(gè)IP
然后Chrome才會(huì)向?qū)?yīng)IP的80/443端口發(fā)送請(qǐng)求
請(qǐng)求內(nèi)容是查看baidu.com的首頁(yè)
為什么是80/443端口
服務(wù)器默認(rèn)用80提供http服務(wù)
服務(wù)器默認(rèn)用443提供https服務(wù)
可以在開(kāi)發(fā)者工具里看到具體的端口
題外話
1.www www.baidu.com和baidu.com不是同一個(gè)域名
2.他們是什么關(guān)系
com是頂級(jí)域名
baidu.com是二級(jí)域名(俗稱一級(jí)域名)
www.baisu.com是三級(jí)域名(俗稱二級(jí)域名)
他們之間是父子關(guān)系勺良,baidu.com是www.baisu.com的父級(jí) > github.io把子域名xxx.github.io免費(fèi)給你使用
所以你應(yīng)該知道www.baidu.com和baidu.com可以不是同一家公司,也可以是
www是多余的骄噪,只有外行才去用尚困,程序員網(wǎng)站一般都不提供www前綴
URL 統(tǒng)一資源定位服務(wù)
URL = 協(xié)議+域名或IP+端口號(hào)+路徑+查詢字符串+錨點(diǎn)
1.對(duì)前端來(lái)說(shuō)只有兩種協(xié)議http或者h(yuǎn)ttps
https默認(rèn)端口號(hào)443
2.查詢參數(shù)?wd=,同一頁(yè)面我們想看不同的查詢結(jié)果
3.錨點(diǎn)#,查詢頁(yè)面的某一塊內(nèi)容
注意:錨點(diǎn)看起來(lái)有中文,實(shí)際不支持中文
錨點(diǎn)是無(wú)法在Network面板看到的
因?yàn)殄^點(diǎn)不會(huì)傳給服務(wù)器!
HTTP(協(xié)議)
HTTP(協(xié)議)用來(lái)表示如何傳輸網(wǎng)頁(yè)的链蕊。
是基于TCP和IP兩個(gè)協(xié)議發(fā)明的
一.curl命令
1.用curl可以發(fā)HTTP請(qǐng)求
curl -v http://baidu.com
curl -s -v --https://www.baidu.com
2.理解以下概念
(1)url 會(huì)被curl工具重寫(xiě)事甜,先請(qǐng)求DNS獲得IP
先進(jìn)行TCP連接,成功后開(kāi)始發(fā)送HTTP請(qǐng)求
請(qǐng)求內(nèi)容看一眼
響應(yīng)內(nèi)容看一眼
效應(yīng)結(jié)束后滔韵,關(guān)閉TCP連接(看不出來(lái))
真正結(jié)束
3.HTTP
規(guī)定請(qǐng)求的格式是什么逻谦,響應(yīng)的格式是什么
終端命令
curl -v http://www.baidu.com
http到底是做什么的呢?
http作用陪蜻,規(guī)定如何寫(xiě)這5行請(qǐng)求
以及如何返回這幾十行響應(yīng)的文件
http就是個(gè)文件邦马,上面寫(xiě)了請(qǐng)求怎么寫(xiě),響應(yīng)怎么寫(xiě)