HTTP協(xié)議

幾個(gè)基本的概念

  • 1.TCP/IP協(xié)議族

計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備之間的信息傳輸需要基于相同的方法,不同設(shè)備通信之間的規(guī)則,稱之為協(xié)議,而與互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集合起來(lái)總稱為TCP/IP,也就是說(shuō)TCP/IP是互聯(lián)網(wǎng)相關(guān)的協(xié)議集合;
此外還有說(shuō)法認(rèn)為TCP/IP就是指TCP/IP這兩種協(xié)議,還有一種說(shuō)法認(rèn)為TCP/IP是 在IP協(xié)議的通信過(guò)程中,使用到的協(xié)議族的統(tǒng)稱;

  • -----------2.TCP/IP的分層管理----------------

TCP/IP協(xié)議族按層次分別分為應(yīng)用層,傳輸層,網(wǎng)絡(luò)層以及數(shù)據(jù)鏈路層,稱之為TCP/IP協(xié)議的四層網(wǎng)絡(luò)模型:

  • 應(yīng)用層

應(yīng)用層決定了用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng);
TCP/IP預(yù)存了各類通用的應(yīng)用服務(wù):
類似FTP(file transfer protocol 文件傳輸協(xié)議) ,DNS(Domain Name System)服務(wù),HTTP協(xié)議等等;

  • 傳輸層

傳輸層對(duì)上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)的計(jì)算機(jī)之間的數(shù)據(jù)傳輸.
個(gè)人理解傳輸層主要是提供各種控制,操作從應(yīng)用層傳輸過(guò)來(lái)的數(shù)據(jù)的協(xié)議;
有兩個(gè)協(xié)議TCP(Transmission Control Protocol,傳輸控制協(xié)議)和UDP(User Data Protocol ,用戶數(shù)據(jù)報(bào)協(xié)議)

  • 網(wǎng)絡(luò)層(網(wǎng)絡(luò)互連層)

網(wǎng)絡(luò)層用來(lái)處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包,數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位.該層規(guī)定了通過(guò)怎樣的路徑/傳輸路線到達(dá)對(duì)方的計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方.
與對(duì)方的計(jì)算機(jī)之間通過(guò)多態(tài)計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸時(shí),網(wǎng)絡(luò)層所起的作用就是在眾多的選項(xiàng)中選擇一條作為傳輸路線;

  • 數(shù)據(jù)鏈路層(又稱為鏈路層,網(wǎng)絡(luò)接口層)

用來(lái)處理連接網(wǎng)絡(luò)的硬件部分.包括控制操作系統(tǒng),硬件的設(shè)備驅(qū)動(dòng),NIC(Network Interface Card,網(wǎng)絡(luò)適配器,即網(wǎng)卡),及光纖等物理可見(jiàn)部分(還包括連接器等一切傳輸媒介).硬件上的范疇都在數(shù)據(jù)鏈路層的作用范圍內(nèi).

  • -------------3.TCP/IP的通信流-----------------

在利用TCP/IP進(jìn)行網(wǎng)絡(luò)通信的時(shí)候,會(huì)通過(guò)分層的順序與對(duì)方進(jìn)行通信.發(fā)送端會(huì)從應(yīng)用層往下走,而接收端則從應(yīng)用層往上走;

客戶端到服務(wù)器端

如上圖所示:

  • 作為發(fā)送端的客戶端在應(yīng)用層按照HTTP協(xié)議的規(guī)定發(fā)送一個(gè)想要看某個(gè)web頁(yè)面的HTTP請(qǐng)求;

  • 在傳輸層按照TCP(傳輸控制協(xié)議)的規(guī)定,把從應(yīng)用層接收到的數(shù)據(jù)(HTTP請(qǐng)求報(bào)文)進(jìn)行分割,并在各個(gè)報(bào)文上打上標(biāo)記序號(hào)及端口號(hào)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層;

  • 在網(wǎng)絡(luò)層按照IP協(xié)議的規(guī)定,增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層;

  • 鏈路層實(shí)質(zhì)上是硬件上的連接,通過(guò)各種硬件設(shè)備實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的交換;

  • 接收端的服務(wù)器在鏈路層接收到數(shù)據(jù),按順序向上層發(fā)送,一直發(fā)送至應(yīng)用層,當(dāng)傳輸至服務(wù)器端應(yīng)用層,才算真正的接收到了客戶端發(fā)送過(guò)來(lái)的HTTP請(qǐng)求;

  • ---------4.IP,TCP,和DNS--------------------

  • 負(fù)責(zé)傳輸?shù)腎P協(xié)議

IP協(xié)議(Internet Protocol,網(wǎng)際協(xié)議)位于網(wǎng)絡(luò)層,其作用是搜索服務(wù)器端的地址,而為了準(zhǔn)確無(wú)誤的傳輸,則需要滿足各種條件;其中最重要的兩個(gè)條件則是IP地址和MAC地址,

  • IP地址指明了節(jié)點(diǎn)的分配位置;
  • MAC地址則是網(wǎng)卡的所屬的固定地址;
    注意: IP地址是可以變換的,但是MAC地址則是網(wǎng)卡的固定地址,是無(wú)法變換的;

地址傳輸協(xié)議維基解釋
當(dāng)在同一局域網(wǎng)的一臺(tái)主機(jī)希望和另一臺(tái)主機(jī)直接通信的時(shí)候,這時(shí)候必須知道目的主機(jī)的MAC地址是什么?因此這時(shí)候需要ARP(Address Resolution Protocol)來(lái)將目的主機(jī)的IP地址轉(zhuǎn)換為MAC地址.
但是當(dāng)發(fā)送主機(jī)和目的主機(jī)不在同一個(gè)局域網(wǎng)的時(shí)候,這個(gè)時(shí)候即使知道目的主機(jī)的MAC地址,也無(wú)法直接發(fā)送過(guò)去,所以在這種情況下,發(fā)送主機(jī)通過(guò)ARP協(xié)議獲取的MAC地址獲取的將不是目的主機(jī)的真實(shí)目的地址,而是一臺(tái)可以通向局域網(wǎng)外部的路由器的地址,當(dāng)數(shù)據(jù)幀發(fā)送至這臺(tái)路由器中轉(zhuǎn)直至找到目的主機(jī);

  • 確保可靠性的TCP協(xié)議

TCP協(xié)議位于傳輸層,,提供字節(jié)流(Byte Stream Service)服務(wù).
所謂字節(jié)流服務(wù),是指將大數(shù)據(jù)分割為報(bào)文段(segment)的數(shù)據(jù)包進(jìn)行管理;
TCP協(xié)議通過(guò)三次握手策略(acknowledgement)來(lái)確保數(shù)據(jù)包能夠準(zhǔn)確的到達(dá)目標(biāo)位置;

  • 負(fù)責(zé)域名解析的DNS服務(wù)

DNS(Domain Name System)服務(wù)是和HTTP協(xié)議一樣位于應(yīng)用層,提供域名到IP地址之間的解析服務(wù);通過(guò)DNS服務(wù)可以實(shí)現(xiàn):

  • 通過(guò)域名查找iP地址;

  • 通過(guò)IP地址反查域名;

  • -----------5.各種協(xié)議與HTTP協(xié)議間的關(guān)系圖------------------;

從客戶端到服務(wù)器端的簡(jiǎn)要過(guò)程

在這里要注意的是:

  • 最后網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層的搜尋目標(biāo)服務(wù)器端的地址的操作時(shí)同時(shí)發(fā)生的,并不是搜尋了兩次;
  • 客戶端發(fā)出一個(gè)HTTP請(qǐng)求后,會(huì)在客戶端本地的host文件中去找主機(jī)對(duì)應(yīng)的ip地址,如果找不到,則會(huì)通過(guò)公網(wǎng)的DNS服務(wù)來(lái)解析請(qǐng)求的域名,將其轉(zhuǎn)換為ip地址;
  • 從服務(wù)器端到客戶端的流程與從客戶端到服務(wù)器端的流程是一致的;

HTTP協(xié)議的基本結(jié)構(gòu)

HTTP協(xié)議(Hypertext Transer Protocal ,超文本傳輸協(xié)議),同TCP/IP協(xié)議族的其他協(xié)議主要用于客戶端到服務(wù)器端的通信;

  • ----------------1.HTTP請(qǐng)求報(bào)文--------------------

HTTP的請(qǐng)求報(bào)文主要由請(qǐng)求方法,請(qǐng)求URI,協(xié)議版本,可選的請(qǐng)求首部字段和內(nèi)容實(shí)體構(gòu)成;
在這里要注意get和post請(qǐng)求方法的區(qū)別在于:
(1)客戶端給服務(wù)器端傳輸數(shù)據(jù)的方式不一樣;

  • get方式通過(guò)URL地址欄傳遞數(shù)據(jù);
  • post方式通過(guò)表單的方式來(lái)傳遞數(shù)據(jù);

(2)安全性,GET方式在url上傳遞,可以被用戶查看到,而post通過(guò)表單提交,相對(duì)比GET安全;

(3)傳遞數(shù)據(jù)的大?。籊ET通過(guò)URL地址欄傳遞數(shù)據(jù),數(shù)據(jù)大小受瀏覽器和操作系統(tǒng)的影響,IE瀏覽器只能通過(guò)get傳遞2K左右的數(shù)據(jù);而POST原則上不受限制,但是受服務(wù)器配置的影響,一般服務(wù)器默認(rèn)允許2MB左右數(shù)據(jù),這個(gè)可以自己設(shè)置;

(4)表單默認(rèn)是通過(guò)GET提交到服務(wù)器,可以通過(guò)method屬性設(shè)置提交的方式;

(5)超鏈接默認(rèn)是GET方式請(qǐng)求:

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

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,195評(píng)論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,365評(píng)論 6 174
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,741評(píng)論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來(lái)源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,345評(píng)論 3 82
  • HTTP概述 超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說(shuō)創(chuàng)業(yè)閱讀 3,954評(píng)論 2 61

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