先看幾張圖:
通過這幾張圖,我們可以清楚的看到一些常用協(xié)議,下面我們一一介紹:
1. HTTP協(xié)議詳解
· http報文結(jié)構(gòu)
· 請求報文方法
· 常見狀態(tài)碼
· 請求與響應(yīng)格式分析
http報文結(jié)構(gòu)
請求報文方法
常見狀態(tài)碼
· 狀態(tài)碼有5個大類,由第一位數(shù)字進行區(qū)分,每個大類下面還有不同的子類,每種子類的長度都是3位,都代表一個狀態(tài)碼
即一種類型的返回的信息。
o 1xx表示通知信息,如請求收到了或正在進行處理
o 2xx表示成功,如接受或知道了
o 3xx表示重定向,如果要完成請求還必須才去進一步的行動
o 4xx表示客戶端的差錯
o 5xx表示服務(wù)器的差錯
TCP/IP協(xié)議
TCP/IP協(xié)議模型(Transmission Control Protocol/Internet Protocol),包含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的網(wǎng)絡(luò)協(xié)議,是Internet的核心協(xié)議。
基于TCP/IP的參考模型將協(xié)議分成四個層次,它們分別是鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。下圖表示TCP/IP模型與OSI模型各層的對照關(guān)系。
TCP/IP協(xié)議族按照層次由上到下,層層包裝。最上面的是應(yīng)用層,這里面有http,ftp,等等我們熟悉的協(xié)議。而第二層則是傳輸層,著名的TCP和UDP協(xié)議就在這個層次。第三層是網(wǎng)絡(luò)層,IP協(xié)議就在這里,它負責(zé)對數(shù)據(jù)加上IP地址和其他的數(shù)據(jù)以確定傳輸?shù)哪繕?。第四層是?shù)據(jù)鏈路層,這個層次為待傳送的數(shù)據(jù)加入一個以太網(wǎng)協(xié)議頭,并進行CRC編碼,為最后的數(shù)據(jù)傳輸做準備。
上圖清楚地表示了TCP/IP協(xié)議中每個層的作用,而TCP/IP協(xié)議通信的過程其實就對應(yīng)著數(shù)據(jù)入棧與出棧的過程。入棧的過程,數(shù)據(jù)發(fā)送方每層不斷地封裝首部與尾部,添加一些傳輸?shù)男畔?,確保能傳輸?shù)侥康牡亍3鰲5倪^程,數(shù)據(jù)接收方每層不斷地拆除首部與尾部,得到最終傳輸?shù)臄?shù)據(jù)
TCP和UDP
TCP/UDP都是是傳輸層協(xié)議,但是兩者具有不同的特性,同時也具有不同的應(yīng)用場景,下面以圖表的形式對比分析。
面向報文
面向報文的傳輸方式是應(yīng)用層交給UDP多長的報文,UDP就照樣發(fā)送,即一次發(fā)送一個報文。因此,應(yīng)用程序必須選擇合適大小的報文。若報文太長,則IP層需要分片,降低效率。若太短,會是IP太小。
面向字節(jié)流
面向字節(jié)流的話,雖然應(yīng)用程序和TCP的交互是一次一個數(shù)據(jù)塊(大小不等),但TCP把應(yīng)用程序看成是一連串的無結(jié)構(gòu)的字節(jié)流。TCP有一個緩沖,當應(yīng)用程序傳送的數(shù)據(jù)塊太長,TCP就可以把它劃分短一些再傳送。
關(guān)于擁塞控制,流量控制,是TCP的重點,后面講解。
TCP和UDP協(xié)議的一些應(yīng)用
什么時候應(yīng)該使用TCP?
當對網(wǎng)絡(luò)通訊質(zhì)量有要求的時候,比如:整個數(shù)據(jù)要準確無誤的傳遞給對方,這往往用于一些要求可靠的應(yīng)用,比如HTTP、HTTPS、FTP等傳輸文件的協(xié)議,POP、SMTP等郵件傳輸?shù)膮f(xié)議。
什么時候應(yīng)該使用UDP?
當對網(wǎng)絡(luò)通訊質(zhì)量要求不高的時候,要求網(wǎng)絡(luò)通訊速度能盡量的快,這時就可以使用UDP。
HTTPS協(xié)議
HTTPS特點:
基于HTTP協(xié)議,通過SSL或TLS提供加密處理數(shù)據(jù)、驗證對方身份以及數(shù)據(jù)完整性保護
通過抓包可以看到數(shù)據(jù)不是明文傳輸,而且HTTPS有如下特點:
內(nèi)容加密:采用混合加密技術(shù),中間者無法直接查看明文內(nèi)容
驗證身份:通過證書認證客戶端訪問的是自己的服務(wù)器
保護數(shù)據(jù)完整性:防止傳輸?shù)膬?nèi)容被中間人冒充或者篡改
**混合加密:**結(jié)合非對稱加密和對稱加密技術(shù)??蛻舳耸褂脤ΨQ加密生成密鑰對傳輸數(shù)據(jù)進行加密,然后使用非對稱加密的公鑰再對秘鑰進行加密,所以網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是被秘鑰加密的密文和用公鑰加密后的秘密秘鑰,因此即使被黑客截取,由于沒有私鑰,無法獲取到加密明文的秘鑰,便無法獲取到明文數(shù)據(jù)。
**數(shù)字摘要:**通過單向hash函數(shù)對原文進行哈希,將需加密的明文“摘要”成一串固定長度(如128bit)的密文,不同的明文摘要成的密文其結(jié)果總是不相同,同樣的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。
**數(shù)字簽名技術(shù):**數(shù)字簽名建立在公鑰加密體制基礎(chǔ)上,是公鑰加密技術(shù)的另一類應(yīng)用。它把公鑰加密技術(shù)和數(shù)字摘要結(jié)合起來,形成了實用的數(shù)字簽名技術(shù)。
收方能夠證實發(fā)送方的真實身份;
發(fā)送方事后不能否認所發(fā)送過的報文;
收方或非法者不能偽造、篡改報文。
內(nèi)容加密和數(shù)據(jù)完整性保護
非對稱加密過程需要用到公鑰進行加密,那么公鑰從何而來?其實公鑰就被包含在數(shù)字證書中,數(shù)字證書通常來說是由受信任的數(shù)字證書頒發(fā)機構(gòu)CA,在驗證服務(wù)器身份后頒發(fā),證書中包含了一個密鑰對(公鑰和私鑰)和所有者識別信息。數(shù)字證書被放到服務(wù)端,具有服務(wù)器身份驗證和數(shù)據(jù)傳輸加密功能。
FTP協(xié)議
FTP是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,建立在TCP協(xié)議之上,用于Internet上文件的雙向傳輸。同時,它也是一個應(yīng)用程序。用戶可以通過它把自己的PC機與世界各地所有運行FTP協(xié)議的服務(wù)器相連,訪問服務(wù)器上的大量程序和信息。FTP的主要作用是:讓用戶連接上一個遠程計算機(這些計算機上運行著FTP服務(wù)器程序)察看遠程計算機有哪些文件,然后把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
端口
FTP協(xié)議主要使用的端口有兩個,控制端口21,數(shù)據(jù)端口20,21端口主要用于傳輸控制命令,20端口主要用于傳輸數(shù)據(jù)。
傳輸格式
主要使用的傳輸格式和TFTP協(xié)議類似,二進制傳輸格式和文件傳輸格式,默認是二進制傳輸格式。
傳輸模式
傳輸模式主要分為兩種,主動模式和被動模式,主動模式是在進行數(shù)據(jù)連接時,服務(wù)端主動連接客戶端;被動模式是在進行數(shù)據(jù)連接時,客戶端主動連接服務(wù)端。在客戶端有防火墻的情況下,建議使用被動模式,因為在主動模式下,服務(wù)端連接客戶端時,由于連接的客戶端端口大于1024,有可能被客戶端的防火墻擋住,導(dǎo)致連接失敗。
FTP錯誤碼
錯誤一般是3個數(shù)字,2開頭的數(shù)字一般表示成功,3開頭的數(shù)字一般表示權(quán)限問題,4開頭的數(shù)字一般表示文件問題,5開頭的數(shù)組一般表示服務(wù)器問題,具體錯誤碼的含義如下:
· 150 文件狀態(tài)良好,打開數(shù)據(jù)連接
· 200 命令成功
· 212 目錄狀態(tài)
· 213 文件狀態(tài)
· 110 重新啟動標記應(yīng)答
· 500 格式錯誤,命令不可識別
· 501 參數(shù)語法錯誤
· 502 命令未實現(xiàn)
· 120 在X 分鐘內(nèi)準備好
· 125 連接打開準備傳送
· 214 幫助信息,信息僅對人類用戶有用
· 215 名字系統(tǒng)類型
· 220 對新用戶服務(wù)準備好
· 221 服務(wù)關(guān)閉控制連接,可以退出登錄
· 202 命令未實現(xiàn)
· 211 系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng)
· 225 數(shù)據(jù)連接打開,無傳輸正在進行
· 226 關(guān)閉數(shù)據(jù)連接,請求的文件操作成功
· 227 進入被動模式
· 230 用戶登錄
· 331 用戶名正確,需要口令
· 332 登錄時需要帳戶信息
· 350 請求的文件操作需要進一步命令
· 421 連接用戶過多
· 425 不能打開數(shù)據(jù)連接
· 426 關(guān)閉連接,中止傳輸
· 450 請求的文件操作未執(zhí)行
· 451 中止請求的操作:有本地錯誤
· 452 未執(zhí)行請求的操作:系統(tǒng)存儲空間不足
· 250 請求的文件操作完成
· 257 創(chuàng)建"PATHNAME"
· 503 命令順序錯誤
· 504 此參數(shù)下的命令功能未實現(xiàn)
· 530 賬號或密碼錯誤
· 532 存儲文件需要帳戶信息
· 550 未執(zhí)行請求的操作
· 551 請求操作中止:頁類型未知
· 552 請求的文件操作中止,存儲分配溢出
· 553 未執(zhí)行請求的操作:文件名不合法
更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。