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