<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這樣學(xué)習(xí)HTTP,面試時(shí)再也不慌了,接口測試基礎(chǔ)知識

          共 6093字,需瀏覽 13分鐘

           ·

          2020-12-12 13:54

          Python接口自動化測試框架實(shí)戰(zhàn)系列文章第1

          基礎(chǔ)知識篇

          前言:

          超文本傳輸協(xié)議HTTP協(xié)議被用于在Web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息,HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報(bào)文,就可以直接讀懂其中的信息,因此,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。


          為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS,為了數(shù)據(jù)傳輸?shù)陌踩?,HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密。

          一、HTTP和HTTPS的基本概念

          HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP),用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。


          HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。


          HTTPS協(xié)議的主要作用可以分為兩種:

          一種是建立一個(gè)信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?/span>

          另一種就是確認(rèn)網(wǎng)站的真實(shí)性。


          二、HTTP與HTTPS有什么區(qū)別?

          HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設(shè)計(jì)了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了HTTPS。簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全。


          HTTPS和HTTP的區(qū)別主要如下:

          1、https協(xié)議需要到ca申請證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。

          2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。

          3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443

          4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。


          三、HTTPS的工作原理

          我們都知道HTTPS能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網(wǎng)站或電子郵箱等等安全級別較高的服務(wù)都會采用HTTPS協(xié)議。

          客戶端在使用HTTPS方式與Web服務(wù)器通信時(shí)有以下幾個(gè)步驟,如圖所示。

          (1)客戶使用https的URL訪問Web服務(wù)器,要求與Web服務(wù)器建立SSL連接。

          (2)Web服務(wù)器收到客戶端請求后,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。

          (3)客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級,也就是信息加密的等級。

          (4)客戶端的瀏覽器根據(jù)雙方同意的安全等級,建立會話密鑰,然后利用網(wǎng)站的公鑰將會話密鑰加密,并傳送給網(wǎng)站。

          (5)Web服務(wù)器利用自己的私鑰解密出會話密鑰。

          (6)Web服務(wù)器利用會話密鑰加密與客戶端之間的通信。


          四、HTTPS的優(yōu)點(diǎn)

          盡管HTTPS并非絕對安全,掌握根證書的機(jī)構(gòu)、掌握加密算法的組織同樣可以進(jìn)行中間人形式的攻擊,但HTTPS仍是現(xiàn)行架構(gòu)下最安全的解決方案,主要有以下幾個(gè)好處:

          (1)使用HTTPS協(xié)議可認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;

          (2)HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變,確保數(shù)據(jù)的完整性。

          (3)HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

          (4)谷歌曾在2014年8月份調(diào)整搜索引擎算法,并稱“比起同等HTTP網(wǎng)站,采用HTTPS加密的網(wǎng)站在搜索結(jié)果中的排名將會更高”。


          五、HTTPS的缺點(diǎn)

          雖然說HTTPS有很大的優(yōu)勢,但其相對來說,還是存在不足之處的:

          (1)HTTPS協(xié)議握手階段比較費(fèi)時(shí),會使頁面的加載時(shí)間延長近50%,增加10%到20%的耗電;

          (2)HTTPS連接緩存不如HTTP高效,會增加數(shù)據(jù)開銷和功耗,甚至已有的安全措施也會因此而受到影響;

          (3)SSL證書需要錢,功能越強(qiáng)大的證書費(fèi)用越高,個(gè)人網(wǎng)站、小網(wǎng)站沒有必要一般不會用。

          (4)SSL證書通常需要綁定IP,不能在同一IP上綁定多個(gè)域名,IPv4資源不可能支撐這個(gè)消耗。

          (5)HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方面幾乎起不到什么作用。最關(guān)鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。


          六、http切換到HTTPS

          如果需要將網(wǎng)站從http切換到https到底該如何實(shí)現(xiàn)呢?

          這里需要將頁面中所有的鏈接,例如js,css,圖片等等鏈接都由http改為https。例如:http://www.baidu.com改為https://www.baidu.com


          BTW,這里雖然將http切換為了https,還是建議保留http。所以我們在切換的時(shí)候可以做http和https的兼容,具體實(shí)現(xiàn)方式是,去掉頁面鏈接中的http頭部,這樣可以自動匹配http頭和https頭。例如:將http://www.baidu.com改為//www.baidu.com。然后當(dāng)用戶從http的入口進(jìn)入訪問頁面時(shí),頁面就是http,如果用戶是從https的入口進(jìn)入訪問頁面,頁面即是https的。

          以上內(nèi)容參考豆豆蛙的博客


          HTTP 8種請求的方法:

          1、OPTIONS

          返回服務(wù)器針對特定資源所支持的HTTP請求方法,也可以利用向web服務(wù)器發(fā)送‘*’的請求來測試服務(wù)器的功能性

          2、HEAD

          向服務(wù)器索與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以再不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)小消息頭中的元信息。

          3、GET

          向特定的資源發(fā)出請求。它本質(zhì)就是發(fā)送一個(gè)請求來取得服務(wù)器上的某一資源。資源通過一組HTTP頭和呈現(xiàn)數(shù)據(jù)(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠(yuǎn)不會包含呈現(xiàn)數(shù)據(jù)。

          4、POST

          向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。Loadrunner中對應(yīng)POST請求函數(shù):web_submit_data,web_submit_form

          5、PUT

          向指定資源位置上傳其最新內(nèi)容

          6、DELETE

          請求服務(wù)器刪除Request-URL所標(biāo)識的資源

          7、TRACE

          回顯服務(wù)器收到的請求,主要用于測試或診斷

          8、CONNECT

          HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。


          GET和 POST區(qū)別

          1、區(qū)別:

          get請求無消息體,只能攜帶少量數(shù)據(jù)

          post請求有消息體,可以攜帶大量數(shù)據(jù)

          2、攜帶數(shù)據(jù)的方式:

          get請求將數(shù)據(jù)放在url地址中

          post請求將數(shù)據(jù)放在消息體中(Body)


          GET請求請?zhí)峤坏臄?shù)據(jù)放置在HTTP請求協(xié)議頭中,而POST提交的數(shù)據(jù)則放在實(shí)體數(shù)據(jù)中;

          GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制。

          以上內(nèi)容參考博主?開猿節(jié)流

          HTTP 狀態(tài)碼詳解

          1xx(臨時(shí)響應(yīng))

          2xx(成功)

          3xx(重定向)

          4xx(請求錯(cuò)誤)

          5xx(服務(wù)器錯(cuò)誤)


          1xx(臨時(shí)響應(yīng))

          100(繼續(xù)) 請求者應(yīng)繼續(xù)進(jìn)行請求。服務(wù)器返回此代碼以表示,服務(wù)器已收到某項(xiàng)請求的第一部分,正等待接收剩余部分。

          101(切換協(xié)議) 請求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認(rèn)并準(zhǔn)備進(jìn)行切換。

          2xx(成功)

          200(成功) 說明服務(wù)器成功處理了相應(yīng)請求。通常,這表示服務(wù)器已提供了請求的網(wǎng)頁。如果您的 robots.txt 文件顯示為此狀態(tài),則表示 檢測工具 已成功檢索到該文件。

          201(已創(chuàng)建) 請求成功且服務(wù)器已創(chuàng)建了新的資源。

          202(已接受) 服務(wù)器已接受相應(yīng)請求,但尚未對其進(jìn)行處理。

          203(非授權(quán)信息) 服務(wù)器已成功處理相應(yīng)請求,但返回了可能來自另一來源的信息。

          204(無內(nèi)容) 服務(wù)器已成功處理相應(yīng)請求,但未返回任何內(nèi)容。

          205(重置內(nèi)容) 服務(wù)器已成功處理相應(yīng)請求,但未返回任何內(nèi)容。與 204 響應(yīng)不同,此響應(yīng)要求請求者重置文檔視圖(例如清除表單內(nèi)容以輸入新內(nèi)容)。

          206(部分內(nèi)容) 服務(wù)器成功處理了部分 GET 請求。


          3xx(重定向)

          300(多種選擇) 服務(wù)器可以根據(jù)請求來執(zhí)行多項(xiàng)操作,例如:按照請求者(用戶代理)的要求來選擇某項(xiàng)操作或者展示列表以便請求者選擇其中某項(xiàng)操作。

          301(永久移動) 請求的網(wǎng)頁已永久移動到新位置。服務(wù)器返回此響應(yīng)(作為對 GET 或 HEAD 請求的響應(yīng))時(shí),會自動將請求者轉(zhuǎn)到新位置。您應(yīng)使用此代碼通知 檢測工具 某個(gè)網(wǎng)頁或網(wǎng)站已被永久移動到新位置

          302(臨時(shí)移動) 服務(wù)器目前正從不同位置的網(wǎng)頁響應(yīng)請求,但請求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請求。此代碼與響應(yīng) GET 和 HEAD 請求的 301 代碼類似,會自動將請求者轉(zhuǎn)到不同的位置。但由于 檢測工具 會繼續(xù)抓取原有位置并將其編入索引,因此您不應(yīng)使用此代碼來通知 檢測工具 某個(gè)頁面或網(wǎng)站已被移動。

          303(查看其他位置) 當(dāng)請求者應(yīng)對不同的位置進(jìn)行單獨(dú)的 GET 請求以檢索響應(yīng)時(shí),服務(wù)器會返回此代碼。對于除 HEAD 請求之外的所有請求,服務(wù)器會自動轉(zhuǎn)到其他位置

          304(未修改) 請求的網(wǎng)頁自上次請求后再也沒有修改過。當(dāng)服務(wù)器返回此響應(yīng)時(shí),不會返回相關(guān)網(wǎng)頁的內(nèi)容。如果網(wǎng)頁自請求者上次請求后再也沒有更改過,您應(yīng)當(dāng)將服務(wù)器配置為返回此響應(yīng)(稱為 If-Modified-Since HTTP 標(biāo)頭)。服務(wù)器可以告訴 檢測工具 自從上次抓取后網(wǎng)頁沒有變更,進(jìn)而節(jié)省帶寬和開銷。

          305(使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁。如果服務(wù)器返回此響應(yīng),那么,服務(wù)器還會指明請求者應(yīng)當(dāng)使用的代理。

          307(臨時(shí)重定向) 服務(wù)器目前正從不同位置的網(wǎng)頁響應(yīng)請求,但請求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請求。此代碼與響應(yīng) GET 和 HEAD 請求的 301 代碼類似,會自動將請求者轉(zhuǎn)到不同的位置。但由于 檢測工具 會繼續(xù)抓取原有位置并將其編入索引,因此您不應(yīng)使用此代碼來通知 檢測工具 某個(gè)頁面或網(wǎng)站已被移動。


          4xx(請求錯(cuò)誤)

          400(錯(cuò)誤請求) 服務(wù)器不理解相應(yīng)請求的語法。

          401(未授權(quán)) 請求要求進(jìn)行身份驗(yàn)證。登錄后,服務(wù)器可能會返回對頁面的此響應(yīng)。

          403(已禁止) 服務(wù)器正在拒絕相應(yīng)請求。如果 檢測工具 在嘗試抓取網(wǎng)站的有效網(wǎng)頁時(shí)收到此狀態(tài)代碼(您可在網(wǎng)站站長工具中運(yùn)行工具下的抓取錯(cuò)誤頁上進(jìn)行查看),則可能是因?yàn)槟姆?wù)器或主機(jī)正在阻止 檢測工具 進(jìn)行訪問。

          404(未找到) 服務(wù)器找不到請求的網(wǎng)頁。例如,如果相應(yīng)請求是針對服務(wù)器上不存在的網(wǎng)頁進(jìn)行的,那么服務(wù)器通常會返回此代碼。如果您的網(wǎng)站上沒有 robots.txt 文件,而您在 網(wǎng)站站長工具中的已攔截的網(wǎng)址頁上看到此狀態(tài),那么這就是正確的狀態(tài)。然而,如果您有 robots.txt 文件而又發(fā)現(xiàn)了此狀態(tài),那么,這說明您的 robots.txt 文件可能是命名錯(cuò)誤或位于錯(cuò)誤的位置。(該文件應(yīng)當(dāng)位于頂級域名上,且應(yīng)當(dāng)名為 robots.txt)。

          405(方法禁用) 禁用相應(yīng)請求中所指定的方法。

          406(不接受) 無法使用相應(yīng)請求的內(nèi)容特性來響應(yīng)請求的網(wǎng)頁。

          407(需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似,但卻指定了請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán)。如果服務(wù)器返回此響應(yīng),那么,服務(wù)器還會指明請求者應(yīng)當(dāng)使用的代理。

          408(請求超時(shí)) 服務(wù)器在等待請求時(shí)超時(shí)。

          409(沖突) 服務(wù)器在完成請求時(shí)遇到?jīng)_突。服務(wù)器必須在響應(yīng)中包含該沖突的相關(guān)信息。服務(wù)器在響應(yīng)與前一個(gè)請求相沖突的 PUT 請求時(shí)可能會返回此代碼,同時(shí)會提供兩個(gè)請求的差異列表。

          410(已刪除) 如果請求的資源已被永久刪除,那么服務(wù)器會返回此響應(yīng)。該代碼與 404(未找到)代碼類似,但在資源以前有但現(xiàn)在已經(jīng)不復(fù)存在的情況下,有時(shí)會替代 404 代碼出現(xiàn)。如果資源已永久刪除,您應(yīng)使用 301 指定資源的新位置。

          411(需要有效長度) 服務(wù)器不會接受包含無效內(nèi)容長度標(biāo)頭字段的請求。

          412(未滿足前提條件) 服務(wù)器未滿足請求者在請求中設(shè)置的其中一個(gè)前提條件。

          413(請求實(shí)體過大) 服務(wù)器無法處理相應(yīng)請求,因?yàn)檎埱髮?shí)體過大,已超出服務(wù)器的處理能力。

          414(請求的 URI 過長) 請求的 URI(通常為網(wǎng)址)過長,服務(wù)器無法進(jìn)行處理。

          415(不支持的媒體類型) 相應(yīng)請求的格式不受請求頁面的支持。

          416(請求范圍不符合要求) 如果相應(yīng)請求是針對網(wǎng)頁的無效范圍進(jìn)行的,那么服務(wù)器會返回此狀態(tài)代碼。

          417(未滿足期望值) 服務(wù)器未滿足“期望”請求標(biāo)頭字段的要求。


          5xx(服務(wù)器錯(cuò)誤)

          500(服務(wù)器內(nèi)部錯(cuò)誤) 服務(wù)器遇到錯(cuò)誤,無法完成相應(yīng)請求。

          501(尚未實(shí)施) 服務(wù)器不具備完成相應(yīng)請求的功能。例如,當(dāng)服務(wù)器無法識別請求方法時(shí),可能便會返回此代碼

          502(錯(cuò)誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到了無效的響應(yīng)。

          503(服務(wù)不可用) 目前無法使用服務(wù)器(由于超載或進(jìn)行停機(jī)維護(hù))。通常,這只是暫時(shí)狀態(tài)。

          504(網(wǎng)關(guān)超時(shí)) 服務(wù)器作為網(wǎng)關(guān)或代理,未及時(shí)從上游服務(wù)器接收請求。

          505(HTTP 版本不受支持) 服務(wù)器不支持相應(yīng)請求中所用的 HTTP 協(xié)議版本。



          Appium往期推文:

          1. Appium移動端自動化測試--基礎(chǔ)預(yù)熱
          2. Appium移動端自動化測試--搭建測試環(huán)境
          3. Appium移動端自動化測試--錄制測試用例并運(yùn)行
          4. Appium移動端自動化測試--使用IDE編輯并強(qiáng)化腳本
          5. Appium移動端自動化測試--控件定位方法
          6. Appium移動端自動化測試--元素操作與觸摸動作
          7. Appium移動端自動化測試--搭建模擬器和真機(jī)環(huán)境
          8. Appium移動端自動化測試--測試用例改造
          9. Appium移動端自動化測試--capability使用和常用設(shè)備交互命令


          文章合集

          Selenium?|?Appium??|?Jenkins??|??Jmeter?

          軟件測試方法匯總?|?Postman接口參數(shù)化?|?測試用例設(shè)計(jì)?|?安卓APP抓包

          視頻教程

          Selenium?|?Appium?|?Jenkins?|?Jmeter


          微信群:
          軟件自動化測試交流群
          已創(chuàng)建,公號回復(fù)入群即可獲取入群二維碼。

          瀏覽 47
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  学生妹A毛片 | 操操网继续操用力豆花 | 国产精品美女毛片真酒店 | 国产精品久久久久久中文字 | 性欧美性A |