http 訊息結構
客戶端請求訊息
請求行,請求頭,空行、請求資料
伺服器響應訊息
狀態行,訊息報頭,空行,響應正文
網路七層協議由下往上分別為物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。
http協議對應於應用層,tcp協議對應於傳輸層,ip協議對應於網路層
通常情況下socket連線就是tcp連線,因此socket連線一旦建立,通訊雙方即可開始相互傳送資料內容,直到雙方連線斷開。但在實際應用中,客戶端到伺服器之間的通訊防火牆缺省會關閉長時間處於非活躍狀態的連線而導致 socket 連線斷連,因此需要通過輪詢告訴網路,該連線處於活躍狀態。
socket 會觸發三次握手
三次握手(three-way handshake)即建立乙個tcp連線時,需要客戶端和伺服器總共傳送3個包。三次握手的目的是連線伺服器指定埠,建立tcp連線,並同步連線雙方的序列號和確認號並交換tcp 視窗大小資訊。在socket程式設計中,客戶端執行connect()時,將觸發三次握手。
三次握手完畢後,客戶端與伺服器才正式開始傳送資料。
1.response的返回內容還有其它更多資訊
-- r.status_code #響應狀態碼
-- r.content #位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮
-- r.headers #以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回none
-- r.json() #requests中內建的json解碼器
-- r.url # 獲取url
-- r.encoding # 編碼格式
-- r.cookies # 獲取cookie
-- r.raw #返回原始響應體
-- r.text #字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼
-- r.raise_for_status() #失敗請求(非200響應)丟擲異常
1、tcp協議和udp協議
現在,我們必須在資料報中加入埠資訊,這就需要新的協議。
udp 協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦資料報發出,無法知道物件是否收到。
tcp 協議非常複雜,有確認機制的udp協議,沒發出乙個資料報都要求確認。如果有乙個資料報丟失,就收不到確認。
tcp和udp資料報一樣,都是內嵌在ip資料報的「資料」部分。
tcp 對應的是可靠性要求高的應用,udp 可靠性要求低,傳輸經濟的應用
2、get和post請求有什麼區別?
1、get重點在從伺服器上獲取資源,post重點在向伺服器傳送資源
2、get傳輸資料是通過url請求,拼接字段像是,這個過程使用者是可見的
post 傳輸資料通過http的post機制,蔣字段和對應值封存在請求實體中傳送給伺服器,這個過程使用者時不可見的。
3、get傳輸的資料量小,因為受url長度限制,但效率較高, post 可以傳輸大量資料,所以上傳檔案時只能用post方式
4、get 方式只能支援ascii 字元,向伺服器傳的中文字段可能會亂碼,post支援標準字符集,可以正確傳遞中文字元。
3、session與cookie的區別:
session儲存在伺服器,客戶端不知道其中的資訊;cookie儲存在客戶端,服務端可以知道其中的資訊
session是需要借助cookie才能正常工作的,如果客戶端完全禁止cookie,session將失效
4、介面規範文件
介面文件至少包括:
測介面的話,必須得有介面文件:
1、url
2、請求方式 post、get
3、入參(請求引數)
4、返回引數
5、請求、返回示例
6、 狀態碼說明
5、http狀態碼
每發出乙個http請求之後,都會有乙個響應,http本身會有乙個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種:
1、200 2開頭的都表示這個請求傳送成功,最常見的就是200,就代表這個請求是ok的,伺服器也返回了。
2、300 3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了,
3、400 400代表客戶端傳送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有許可權訪問這個頁面,404代表沒有這個頁面
4、500 5開頭的代表伺服器有異常,500代表伺服器內部異常,504代表伺服器端超時,沒返回結果
源文件 <>
6、異常驗證
必傳非必傳、引數型別、入參長度
7、如何設計介面測試用例?
1、通過性驗證,也就是確保這個介面是好使的,正常的通過性測試,按照介面文件上的引數,正常傳入,是否可以返回正確的結果。
2、異常驗證。
對異常情況的校驗,比如說必填的引數不填,一些引數型別的格式,總體來說就三種,必傳非必傳,引數型別,入參長度。
3、引數組合
介面測試之基礎篇
1 什麼是介面?介面的種類 1 外部介面 2 內部介面 上層服務與下層服務 同級服務 介面的分類 2 為什麼開展介面測試?介面的由來 連線前後端及移動端 不同端的工作進度一樣,需要對最開始出來的介面進行介面測試。首先,在做介面測試中,我們可以減少場景業務中大量的冗餘測試用例,1 需求覆蓋率為100 ...
介面測試基礎
jmeter學習筆記15 如何用jmeter做介面測試 jmeter介面測試及詳細步驟 soapui jmeter postman三種介面測試工具的比較分析 什麼是介面測試?介面測試是測試系統元件間介面的一種測試。介面測試的重點是檢查資料的交換,傳遞的正確性,以及介面間邏輯依賴關係。提交介面測試的重...
介面測試基礎
介面基本概念 指系統模組與模組或系統間直接進行互動,一般現在我們用的多的是基於http協議為基礎的介面 但是不管是哪種介面 其本質就是傳送乙個request報文給伺服器 伺服器響應返回乙個reponse報文,我們對response的報文進行分析,判斷是否和我們傳送的伺服器的request對應的返回相...