接口测试之基础篇--http协议
? ? ? ? ?概念:超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個標(biāo)準(zhǔn)。設(shè)計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。 HTTP是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議。 HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議
? ? ? HTTP協(xié)議定義Web客戶端如何從Web服務(wù)器請求Web頁面,以及服務(wù)器如何把Web頁面?zhèn)魉徒o客戶端。HTTP協(xié)議采用了請求/響應(yīng)模型。客戶端向服務(wù)器發(fā)送一個請求報文,請求報文包含請求的方法、URL、協(xié)議版本、請求頭部和請求數(shù)據(jù)。服務(wù)器以一個狀態(tài)行作為響應(yīng),響應(yīng)的內(nèi)容包括協(xié)議的版本、成功或者錯誤代碼、服務(wù)器信息、響應(yīng)頭部和響應(yīng)數(shù)據(jù)。
HTTP 請求/響應(yīng)的步驟:
1、客戶端連接到Web服務(wù)器
2、發(fā)送HTTP請求
3、服務(wù)器接受請求并返回HTTP響應(yīng)
4、釋放連接TCP連接
5、客戶端瀏覽器解析HTML內(nèi)容
HTTP請求
?是指從客戶端到服務(wù)器端的請求消息。包括:消息首行中,對資源的請求方法、資源的標(biāo)識符及使用的協(xié)議。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
?
當(dāng)瀏覽器向Web服務(wù)器發(fā)出請求時,它向服務(wù)器傳遞了一個數(shù)據(jù)塊,也就是請求信息,
? HTTP請求信息由3部分組成:
(1)請求方法URI協(xié)議/版本
? ? ? (2) 請求頭(Request Header)
? ? ? (3) 請求正文
?
http請求方法
? ?GET 請求指定的頁面信息,并返回實(shí)體主體。
? ?HEAD 類似于get請求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報頭?
? POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。?
? PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。 DELETE 請求服務(wù)器刪除指定的頁面。?
? CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。
? OPTIONS 允許客戶端查看服務(wù)器的性能。
? TRACE 回顯服務(wù)器收到的請求,主要用于測試或診斷。
http請求頭
?Accept: 瀏覽器可接受的MIME類型。
Accept-Charset:瀏覽器可接受的字符集。
Accept-Encoding:瀏覽器能夠進(jìn)行解碼的數(shù)據(jù)編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經(jīng)gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。
Accept-Language:瀏覽器所希望的語言種類,當(dāng)服務(wù)器能夠提供一種以上的語言版本時要用到。
Authorization:授權(quán)信息,通常出現(xiàn)在對服務(wù)器發(fā)送的WWW-Authenticate頭的應(yīng)答中。
Content-Length:表示請求消息正文的長度。
Host: 客戶機(jī)通過這個頭告訴服務(wù)器,想訪問的主機(jī)名。Host頭域指定請求資源的Intenet主機(jī)和端口號,必須表示請求url的原始服務(wù)器或網(wǎng)關(guān)的位置。HTTP/1.1請求必須包含主機(jī)頭域,否則系統(tǒng)會以400狀態(tài)碼返回。
http響應(yīng)
? ? ? ??Allow:服務(wù)器支持哪些請求方法(如GET、POST等)。
Content-Encoding:文檔的編碼(Encode)方法。
HTTP-Version表示支持的HTTP版本
Status-Code是一個三個數(shù)字的結(jié)果代碼
Request Method 請求方式
reason-Phrase給Status-Code提供一個簡單的文本描述。Status-Code主要用于機(jī)器自動識別,
Reason-Phrase主要用于幫助用戶理解。
Status-Code的第一個數(shù)字定義響應(yīng)的類別,后兩個數(shù)字沒有分類的作用。
1xx:信息響應(yīng)類,表示接收到請求并且繼續(xù)處理
2xx:處理成功響應(yīng)類,表示動作被成功接收、理解和接受
3xx:重定向響應(yīng)類,為了完成指定的動作,必須接受進(jìn)一步處理
4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執(zhí)行
5xx:服務(wù)端錯誤,服務(wù)器不能正確執(zhí)行一個正確的請求
Remote Address:終端ip
Content-Length:表示內(nèi)容長度
? ? ? Date:當(dāng)前的GMT時間
Expires:告訴瀏覽器把回送的資源緩存多長時間
Last-Modified:文檔的最后改動時間。
Location:這個頭配合302狀態(tài)碼使用,用于重定向接收者到一個新URI地址。
Refresh:告訴瀏覽器隔多久刷新一次,以秒計。
Server:服務(wù)器通過這個頭告訴瀏覽器服務(wù)器的類型。Server響應(yīng)頭包含處理請求的原始服務(wù)器的軟件信息。此域能包含多個產(chǎn)品標(biāo)識和注釋,產(chǎn)品標(biāo)識一般按照重要性排序。Servlet一般不設(shè)置這個值,而是由Web服務(wù)器自己設(shè)置。
Set-Cookie:設(shè)置和頁面關(guān)聯(lián)的Cookie。Servlet不應(yīng)使用response.setHeader(“Set-Cookie”, …),而是應(yīng)使用HttpServletResponse提供的專用方法addCookie。
? ? ? Transfer-Encoding:告訴瀏覽器數(shù)據(jù)的傳送格式。
WWW-Authenticate:客戶應(yīng)該在Authorization頭中提供什么類型的授權(quán)信息?
?
新建python接口測試交流群 :651392041
? ? ? ?微信公眾號不定期更新
?
? ? ? ? 系列視頻地址:http://v.qq.com/vplus/6797e52f56a39105a0b6c87bb849e22c
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/leiziv5/p/9185848.html
總結(jié)
以上是生活随笔為你收集整理的接口测试之基础篇--http协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。