一、HTTP協(xié)議
HTTP協(xié)議的底層其實(shí)是TCP協(xié)議和IP協(xié)議構(gòu)建的
- TCP(Transmission Control Protocol)傳輸控制協(xié)議
TCP和UDP的區(qū)別是什么
TCP是可靠的,面向連接的數(shù)據(jù)流傳輸,較UDP較慢
UDP是不可靠的,非面向連接的數(shù)據(jù)流傳輸,較TCP較快
可靠與否是看當(dāng)成功后能否反饋給你。
- TCP的三次握手指的什么
每次建立連接前,客戶端和服務(wù)端都要有三次對話才開始正是傳輸內(nèi)容
第一次,客戶端:喂,我要連接你了
第二次,服務(wù)端:en,我準(zhǔn)備好了,連接吧
第三次,客戶端:好的,那我開始傳輸了
開始傳輸內(nèi)容
也就是說我們客戶端和服務(wù)端需要三次對話才能正式傳輸,我們可能會好奇為什么是三次,因?yàn)檫@是能夠達(dá)成可靠溝通的最小值,為了保證服務(wù)端能收接受到客戶端的信息并能做出正確的應(yīng)答而進(jìn)行前兩次(第一次和第二次)握手,為了保證客戶端能夠接收到服務(wù)端的信息并能做出正確的應(yīng)答而進(jìn)行后兩次(第二次和第三次)握手。如果沒有這三次對話,那就和UDP 一樣直接傳輸了。
- IP協(xié)議
- 只要你在互聯(lián)網(wǎng)中,你就會有IP。通俗意義上,IP分為內(nèi)網(wǎng)IP和外網(wǎng)IP。
- 你從電信那里買來帶寬,電信給你提供DNS 服務(wù)。
- 你的電腦手機(jī)等設(shè)備連接到路由器廣播出來的WiFi上。
- 路由器連接到電信服務(wù)器,我們就有了一個(gè)外網(wǎng)IP,這就是我們在互聯(lián)網(wǎng)中的地址。
- 路由器又會在我們的家里創(chuàng)造一個(gè)內(nèi)網(wǎng),給每個(gè)設(shè)備分配一個(gè)IP,這個(gè)IP就是內(nèi)網(wǎng)IP。
- 現(xiàn)在路由器就有了兩個(gè)IP,內(nèi)網(wǎng)IP和外網(wǎng)IP,這有什么用呢?
- 內(nèi)網(wǎng)之間設(shè)備可以直接訪問,但是不能直接訪問外網(wǎng)
- 我們的手機(jī)電腦等這些設(shè)備就是內(nèi)網(wǎng)IP,所以我們想訪問外網(wǎng),就必須由路由器進(jìn)行中轉(zhuǎn)。
- 同理,外網(wǎng)發(fā)出回應(yīng)頁面,也是傳給路由器中轉(zhuǎn),路由器知道如何給這些頁面指路。
注:HTTP是負(fù)責(zé)如何書寫內(nèi)容的協(xié)議
TCP協(xié)議是負(fù)責(zé)如何傳輸?shù)膮f(xié)議
IP協(xié)議是負(fù)責(zé)如何聯(lián)網(wǎng)的協(xié)議
- 端口
我們訪問一個(gè)設(shè)備(前提是使用TCP或UDP協(xié)議),僅僅指定IP是不夠的,我們的服務(wù)器不止提供一種服務(wù),比如它提供HTTP服務(wù)(網(wǎng)頁服務(wù))FTP服務(wù)(下載服務(wù))SMTP服務(wù)(郵件發(fā)送服務(wù)),那么我們只指定了IP,服務(wù)器怎么知道我們需要什么服務(wù)呢?
所以我們必須要指定端口,端口是一個(gè)編號。
重要原則:一個(gè)端口對應(yīng)一個(gè)服務(wù)。
比如:
- 要提供HTTP服務(wù),你最好使用80端口
- 要提供HTTPS服務(wù),你最好使用443端口
- 要提供FTP服務(wù),你最好使用21端口
你可能會問了
Q1:我咋知道我用啥端口???
0-1023端口
Q2:一共有多少個(gè)端口? - 每個(gè)機(jī)器一共有65535(2的16次方-1)個(gè)端口(這是協(xié)議規(guī)定的)
- 0-1023(2的10次方-1)號端口是給系統(tǒng)使用的,只有管理員權(quán)限后才能使用這1024個(gè)端口
- 剩下的端口給普通用戶
- 如果一個(gè)端口正在提公共服務(wù),即被占用了,那就不能使用這個(gè)端口,除非停掉正在占用的服務(wù)。