更新時間:2019-12-19 來源:黑馬程序員 瀏覽量:
HTTP工作原理
HTTP協(xié)議定義了web客戶端如何從web服務器請求web頁面,以及服務器如何將web頁面?zhèn)鬟f給客戶端。HTTP協(xié)議使用請求/響應模型??蛻舳藦姆掌髡埱笙?。請求消息包括方法、URL、協(xié)議版本、請求頭和請求數(shù)據(jù)。服務器用狀態(tài)行響應,狀態(tài)行包括協(xié)議版本、成功或錯誤代碼、服務器信息、響應頭和響應數(shù)據(jù)。
HTTP請求/響應步驟
客戶端連接到Web服務器->發(fā)送HTTP請求->服務器接受請求,返回HTTP響應->釋放連接TCP連接->客戶端瀏覽器解析HTML內(nèi)容。
1、客戶端連接到Web服務器
HTTP客戶端(通常是瀏覽器)建立到web服務器HTTP端口(默認為80)的TCP套接字連接。例如,http://3rdspacecomics.com
2、送HTTP請求
客戶端通過TCP套接字向web服務器發(fā)送文本請求消息。請求消息由四部分組成:請求行、請求頭、空行和請求數(shù)據(jù)。
3.服務器接受請求并返回一個HTTP響應
web服務器解析請求并定位請求的資源。服務器將資源的副本寫入TCP套接字,客戶端讀取它。響應包括狀態(tài)行、響應頭、空行和響應數(shù)據(jù)。
4、釋放TCP連接
如果連接模式關閉,服務器將主動關閉TCP連接,客戶端被動關閉連接并釋放TCP連接。如果連接模式保持活動狀態(tài),則連接將保持一段時間,在此期間可以繼續(xù)接收請求。
5、客戶端瀏覽器解析HTML內(nèi)容
客戶端瀏覽器首先分析狀態(tài)行,以查看指示請求是否成功的狀態(tài)代碼。然后分析每個響應頭,這表示以下是HTML文檔和文檔字符集中的字節(jié)數(shù)??蛻舳藶g覽器讀取響應數(shù)據(jù)HTML,根據(jù)HTML語法對其進行格式化,并將其顯示在瀏覽器窗口中。推薦了解傳智播客軟件測試3.0課程。
什么是冪等和非冪等
在了解HTTP請求方式之前,我們先來了解一下“冪等”和“非冪等”。
冪等性:對于相同的行為,如果無論多少次,最終結果都是相同的,則該行為稱為冪等。
非理想性:對于相同行為,如果最終結果與執(zhí)行次數(shù)相關,每次結果不同,則稱為非冪等。
HTTP的請求方式有哪些?
GET:從服務器獲取資源(一項或多項)。發(fā)送請求來獲得服務器上的資源,請求體中不會包含請求數(shù)據(jù),請求數(shù)據(jù)放在協(xié)議頭中。另外get支持快取、緩存、可保留書簽等。冪等.
POST:在服務器新建一個資源。和get一樣很常見,向服務器提交資源讓服務器處理,比如提交表單、上傳文件等,可能導致建立新的資源或者對原有資源的修改。提交的資源放在請求體中。不支持快取。非冪等。
PUT:在服務器更新資源(客戶端提供改變后的完整資源)。和post類似,html表單不支持,發(fā)送資源與服務器,并存儲在服務器指定位置,要求客戶端事先知道該位置;比如post是在一個集合上(/province),而put是具體某一個資源上(/province/123)。所以put是安全的,無論請求多少次,都是在123上更改,而post可能請求幾次創(chuàng)建了幾次資源。冪等。
DELETE:從服務器刪除資源。請求服務器刪除某資源。和put都具有破壞性,可能被防火墻攔截。如果是https協(xié)議,則無需擔心。冪等
CONNECT:HTTP/1.1協(xié)議中預留給能夠將連接改為管道方式的代理服務器。就是把服務器作為跳板,去訪問其他網(wǎng)頁然后把數(shù)據(jù)返回回來,連接成功后,就可以正常的get、post了。
OPTIONS:獲取http服務器支持的http請求方法,允許客戶端查看服務器的性能,比如ajax跨域時的預檢等。
TRACE:顯服務器收到的請求,主要用于測試或診斷。一般禁用,防止被惡意攻擊或盜取信息。
HEAD:向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內(nèi)容的情況下,就可以獲取包含在響應小消息頭中的元信息。
猜你喜歡:
功能測試、性能測試和自動化測試有什么區(qū)別?