Web探索之旅 | 第三部分第三課:協(xié)議

作者 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)。
轉(zhuǎn)載請注明出處。
原文:http://www.itdecent.cn/p/a3069dd0a016


《Web探索之旅》全系列

內(nèi)容簡介


  1. 前言
  2. TCP 和 UDP 協(xié)議
  3. HTTP,HTTPS,F(xiàn)TP 和 SMTP
  4. 總結(jié)
  5. 第四部分預(yù)告

1. 前言


之前的課 Web探索之旅 | 第三部分第二課:IP地址和域名 中,我們學(xué)習(xí)了 Client-Server 模型的客戶端語言和服務(wù)器語言。

客戶端語言有 HTML,CSS 和 JavaScript。

服務(wù)器語言有 PHP,Java,Python,Ruby,C#,還有新興的 Go 語言(Google 推出的很強大的編程語言)。

不過,要使得 Web 中這么多機器之間能夠相互通信,例如客戶機 A 對服務(wù)器 E 說:“你好,請發(fā)送 baidu.com 這個網(wǎng)頁給我”,是不能借助客戶端或服務(wù)器語言的。這些語言只能為我們的網(wǎng)頁服務(wù)。

那 Web 中的各個機器之間如何對話呢?

打個比方,電腦 A 對電腦 B 說:“您叫什么名字?”(電腦 A 說中文)。電腦 B 回答:“I beg your pardon?”(電腦 B 說英語,這句話的意思是“您說什么?”),那么這兩臺電腦因為語言不通,將會無法交流。

同樣的,Web 中的各個機器,需要講同一種語言,才能相互交流。

因此,IT 科學(xué)家們發(fā)明了稱為“協(xié)議”(Protocol)的通信規(guī)范。Web 中的機器只要遵循同樣協(xié)議,就可以相互交流。

協(xié)議有好多種,我們不一一列舉了。我們只說說常用的一些協(xié)議,見下圖:

2. TCP 和 UDP 協(xié)議


TCP/IP 協(xié)議可以說是 Web 領(lǐng)域最重要的底層協(xié)議了。

TCP 協(xié)議

TCP 是 Transmission Control Protocol(傳輸控制協(xié)議)的簡稱。

TCP 是一個端到端(Peer-to-Peer)的傳輸層協(xié)議,處于應(yīng)用層和網(wǎng)絡(luò)層之間。在數(shù)據(jù)傳輸之前,由 TCP 模塊在運行于不同主機上的兩個應(yīng)用程序之間建立直接連接,通常稱為虛擬連接,其后的 TCP 報文在此連接的基礎(chǔ)上進(jìn)行傳輸。TCP 協(xié)議在 IP 協(xié)議提供的服務(wù)基礎(chǔ)上,提供面向連接的、可靠的、全雙工的數(shù)據(jù)流傳輸服務(wù)。所以合稱 TCP/IP 協(xié)議。

IP 協(xié)議(Internet Protocol,互聯(lián)網(wǎng)協(xié)議或網(wǎng)際協(xié)議)是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。 IP 層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層 -- TCP 或 UDP 層;相反,IP 層也把從 TCP 或 UDP 層接收來的數(shù)據(jù)包傳送到更低層。

Vint Cerf,被稱為“互聯(lián)網(wǎng)之父”,譯作 溫特·瑟夫。主要貢獻(xiàn):與 Robert Kahn 一道領(lǐng)導(dǎo) TCP/IP 協(xié)議的研發(fā)小組,為 ARPANET 成功開發(fā)了主機協(xié)議, 使 ARPANET 成為第一個大規(guī)模的數(shù)據(jù)包網(wǎng)絡(luò)。

UDP 協(xié)議


UDP 是 User Datagram Protocol(用戶數(shù)據(jù)報協(xié)議)的簡稱。是 OSI 參考模型中一種無連接的傳輸層協(xié)議,它主要用于不要求分組順序到達(dá)的傳輸中,分組傳輸順序的檢查與排序由應(yīng)用層完成,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。

3. HTTP,HTTPS,F(xiàn)TP 和 SMTP


HTTP

HTTP 是 HyperText Transfer Protocol(超文本傳輸協(xié)議)的縮寫,所有的 WWW 文件都必須遵守這個標(biāo)準(zhǔn)。設(shè)計 HTTP 最初的目的是為了提供一種發(fā)布和接收 HTML 頁面的方法。我們一般瀏覽網(wǎng)頁,看到的網(wǎng)頁地址都是 http:// 這樣開頭的,后面接域名。例如:http://www.google.com

看一個例子,是正常情況下 HTTP 的交換信息(返回碼 200 表示成功):

HTTPS


HyperText Transfer Protocol Secure(安全的超文本傳輸協(xié)議)的縮寫,比 HTTP 多加了一層安全防護。我們有時登錄一些網(wǎng)站,就可以看到地址欄最前面變?yōu)榱?https:// 這樣開頭的的。HTTPS 協(xié)議在 HTTP 協(xié)議的基礎(chǔ)上,添加了 SSL/TLS 握手以及數(shù)據(jù)加密傳輸,也屬于應(yīng)用層協(xié)議。

FTP


File Transfer Protocol(文件傳輸協(xié)議)的縮寫。是一套允許文件在不同的Internet計算機之間進(jìn)行交換的規(guī)則。它與 HTTP 不同,后者供網(wǎng)頁瀏覽器請求網(wǎng)頁和相關(guān)文件以顯示某一頁面,F(xiàn)TP 只是用來將文件從一臺計算機傳送到另一臺。網(wǎng)站開發(fā)人員通常使用 FTP 將網(wǎng)頁從他們自己的計算機傳送到服務(wù)器,F(xiàn)TP 也常常用來將程序和文件從其他服務(wù)器下載到個人計算機。

SMTP


Simple Mail Transfer Protocol(簡單郵件傳輸協(xié)議)的縮寫。是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。SMTP 協(xié)議屬于 TCP/IP 協(xié)議簇,它幫助每臺計算機在發(fā)送或中轉(zhuǎn)信件時找到下一個目的地。

4. 總結(jié)


各種協(xié)議(Protocol)規(guī)定了 Web 中的各臺機器如何通信。

5. 第四部分預(yù)告


今天的課就到這里,一起加油吧!

下一課:Web探索之旅 | 第四部分 : Web程序員


我是 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)運營者,慕課網(wǎng)精英講師 Oscar 老師,終生學(xué)習(xí)者。
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標(biāo)桿直跑」

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

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

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