HTTP協(xié)議
之前說(shuō)了HTTP協(xié)議浴捆,HTTP協(xié)議包括4個(gè)部分,格式為:
一般有3個(gè)部分稿械,有時(shí)候有4個(gè)部分选泻,登陸賬號(hào)時(shí),需要上傳數(shù)據(jù)美莫,有會(huì)有四個(gè)部分页眯。基本格式是
第一部分:Get - 訪問(wèn)的路徑 - 協(xié)議 - 版本號(hào)
第二部分:key? : value? (定義第四部分?jǐn)?shù)據(jù)的格式厢呵,和各種聲明)
第三部分:? ?用于是一個(gè)回車
第四部分:上傳的數(shù)據(jù)?
響應(yīng)有四個(gè)部分組成窝撵,基本格式是
第一部分:協(xié)議-版本-狀態(tài)碼
第二部分:key:value (定義第四部分,和各種聲明)
第三部分:永遠(yuǎn)是個(gè)回車
第四部分:服務(wù)器給你的反饋的東西? ?
這就是HTTP協(xié)議的請(qǐng)求和響應(yīng)
TCP/IP協(xié)議
TCP 的中文是傳輸控制協(xié)議襟铭,顧名思義TCP是一種傳輸?shù)膮f(xié)議碌奉,類似古代我們要傳個(gè)信,我們是把信先寫(xiě)好寒砖,然后綁在鴿子的腳上赐劣,然后放飛,這是古代傳輸?shù)姆绞搅ǘ迹荰CP就是互聯(lián)網(wǎng)傳輸?shù)姆绞娇妫且环N協(xié)議,因?yàn)槔锩嬗泻芏嘁?guī)則要去遵守
TCP和UDP的區(qū)別
TCP是可靠(傳輸?shù)某晒εc否漠嵌,我是知道的)咐汞,面向連接(需要建立一個(gè)連接),相對(duì)UDP較慢
UDP是不可靠儒鹿,不面向鏈接化撕,相對(duì)于TCP較快
怎么理解上面的話呢 TCP和UDP都是傳輸?shù)膮f(xié)議,UDP傳輸可以理解成挺身,我們把信綁在鴿子身上侯谁,放走,至于有沒(méi)有傳到收信手里,我是不知道的墙贱。(因?yàn)楣艜r(shí)候會(huì)射箭的人還是蠻多的陈莽,自己腦補(bǔ))塞绿,tcp可以理解成小時(shí)候玩的千里傳音轴合,用跟線連接兩個(gè)紙杯晓殊,然后A說(shuō)話,B可以聽(tīng)見(jiàn)魁衙。 A和B中間是有跟線連著的报腔,所以說(shuō)TCP面向連接,UDP放鴿子就沒(méi)有那根線剖淀,并且A說(shuō)話:你能聽(tīng)到嗎纯蛾? B會(huì)告訴A 我可以聽(tīng)到,所以TCP是可靠的纵隔,UDP就不可能翻诉,對(duì)方有沒(méi)有收到信息,我是不知道了 捌刮,因?yàn)轼澴涌赡軙?huì)被射死或者飛回家了碰煌。至于UDP比TCP快,這里只能死記了绅作。
TCP三次握手
客戶端:喂芦圾,能聽(tīng)到我說(shuō)話嗎
服務(wù)器:嗯,能聽(tīng)到
客戶端:那我要開(kāi)始說(shuō)話了
不多說(shuō)了俄认,看上面就應(yīng)該可以看懂了?
IP網(wǎng)絡(luò)協(xié)議
路由器:只要路由器連上電信的服務(wù)器个少,那么路由器就會(huì)有一個(gè)外網(wǎng)IP,如果重啟路由器眯杏,很有可能被重新分配一個(gè)外網(wǎng)IP稍算。
也可以租用一個(gè)固定IP(萬(wàn)維網(wǎng)IP,公網(wǎng)IP)
路由器里面就有一個(gè)HTTP服務(wù)器役拴,所以我們就用通過(guò) 192.168.1.1(一般默認(rèn)的網(wǎng)關(guān)) 訪問(wèn)路由器
路由器外部叫外網(wǎng) 路由器內(nèi)部叫內(nèi)網(wǎng),也可以叫局域網(wǎng)
外部(baidu.com qq.com) 要給 內(nèi)網(wǎng)設(shè)備(手機(jī)钾埂,電腦河闰,ipad) 內(nèi)容,是通過(guò)路由器褥紫,被路由器指定的一條路姜性,分發(fā)給設(shè)備
內(nèi)網(wǎng)設(shè)備(手機(jī),電腦髓考,ipad)要給 外部(baidu.com qq.com)發(fā)請(qǐng)求部念,也是通過(guò)路由器
路由器類似于一個(gè)雙料間諜,它知道外網(wǎng)的信息,也知道內(nèi)網(wǎng)的信息儡炼,所以路由器也被叫為網(wǎng)關(guān)妓湘,在網(wǎng)絡(luò)的關(guān)鍵節(jié)點(diǎn)的一個(gè)設(shè)備,負(fù)責(zé)分發(fā)請(qǐng)求和響應(yīng)
127.0.0.1 表示自己 乌询,永遠(yuǎn)表示設(shè)備自己榜贴。
端口 port
一個(gè)服務(wù)器,提供很多服務(wù)妹田,比如ftp http smtp等等各種服務(wù)唬党,所以服務(wù)器上面有很多端口,每個(gè)端口號(hào)負(fù)責(zé)一個(gè)服務(wù)鬼佣,比如21端口就負(fù)責(zé)FTP服務(wù)驶拱,80端口就負(fù)責(zé)HTTP服務(wù),1080端口就負(fù)責(zé)代理服務(wù)
如果沒(méi)有這些端口晶衷,如果同時(shí)來(lái)了3個(gè)服務(wù)蓝纲,服務(wù)器就down了。我們?cè)谠L問(wèn)服務(wù)器的時(shí)候需要輸入端口號(hào)房铭。為什么我們平時(shí)不輸入80呢驻龟?因?yàn)闉g覽器默認(rèn)了幫我們輸入了80.
一個(gè)機(jī)器有65535個(gè)端口(2的10次方減1) 一個(gè)機(jī)器可以提供60000多種服務(wù)
0-1023號(hào)端口,是留給系統(tǒng)用的缸匪,只有管理員權(quán)限后翁狐,才能用這1024個(gè)端口。用管理員權(quán)限打開(kāi)Gitbash 凌蔬,才能獲取管理員權(quán)限露懒,才能用這1024個(gè)端口。
通過(guò)上面我們就可以來(lái)想一想從輸入url 到網(wǎng)頁(yè)打開(kāi) 發(fā)送了什么 砂心?
1.瀏覽器會(huì)看我們輸入的地址懈词,如果沒(méi)有輸入路徑,就會(huì)幫我們補(bǔ)充/? 如果沒(méi)有端口號(hào)辩诞,就幫我們補(bǔ)上端口號(hào)坎弯,如果沒(méi)有輸入?yún)f(xié)議,就幫我們補(bǔ)充HTTP
2.開(kāi)始找輸入域名所對(duì)應(yīng)的IP译暂,這里分三步抠忘,1.在瀏覽器緩存里面找 2.在系統(tǒng)hosts里面找 3.問(wèn)DNS服務(wù)器
3.得到IP后,在根據(jù)之前的端口外永,我們就會(huì)訪問(wèn)服務(wù)器的80端口
4.服務(wù)器接到我們的請(qǐng)求崎脉,就會(huì)根據(jù)我們的請(qǐng)求路徑,給我們一個(gè)響應(yīng)(其實(shí)就是一個(gè)HTML的文件)
5.瀏覽器下載這個(gè)文件伯顶,然后開(kāi)始解析囚灼,展現(xiàn)到我們眼前骆膝,在解析過(guò)程里面,遇到link灶体,就會(huì)在給服務(wù)器發(fā)給請(qǐng)求阅签,請(qǐng)求CSS文件 ,遇到img赃春,就會(huì)再發(fā)請(qǐng)求愉择,請(qǐng)求圖片文件。反正展現(xiàn)一個(gè)頁(yè)面织中,瀏覽器要向服務(wù)器發(fā)很多請(qǐng)求锥涕。