web測試基礎---url+http協議詳解
URL的構成:
URL和URI:
URL:統一資源定位符,URI:統一資源識別符號(URI是抽象的,而URL是具體化的,屬於URI範疇)
一般來說,http請求都會和URL地址有關,對於URL來說一般由一下5個部分構成
·協議:通常為第一個冒號之前的內容。常見的協議有:http,https(http+ssl),ftp( 用的比較少),ssh,about,JavaScript。
·域名:要訪問的伺服器的域名(通常對應的是機器名或者ip地址),一般格式為://域名
示例://192.168.1.12
·埠:就是訪問伺服器自己所設定的服務埠,監聽埠(監聽客戶端請求)。
一般如果伺服器使用的是協議的預設通訊埠,則使用者在通過URL訪問伺服器時,是可以省略埠的。
常見協議的預設埠:http:80 https:443or8441 f tp:21 ssh:22 smtp:25 pop3:110 oracle:1521 msql:3306 sql server:1433
·路徑:path,是指要訪問的資源在伺服器容器下的相對路徑(檔案儲存位置),不是資源在伺服器的絕對路徑
注意:在restful風格的介面中,經常會直接將引數內容以path的形式進行封裝
·URL地址引數:一般來說是通過?連線在path之後。
在很多工具中,也是可以呀歸類到path中,一般來說,URL地址引數都是鍵值對應的
http協議:
http協議是由倆個部分構成:http request(請求)、http response(相應)
對於介面測試或者效能測試來說,我們需要去模擬、氣實現的是http請求,但是我們又需要結合http響應來處理指令碼
在這個過程中,我們能夠改變的只是請求
一般來說,要了解協議,需要結合抓包工具來進行
常用抓包工具:http watch
chrome/firefox/id的F12自帶的開發工具
fiddler、charles、wireshark
http request: http請求:一般來說,是由三個部分構成:request line、request header、request body
·request line:一般來說是請求的第一行內人,包含3個資訊:request method、request path、protocol/version
request method(請求方法):一般來說,請求方法是由介面或者客戶端決定。
常見的http請求方法有:get、psot、put、delete、header、options、trace等。
html中(不是http)一般來說:
get方法傳遞引數時,是通過URL地址引數來封裝資料的。
post方法傳遞引數時,是通過request body來封裝資料的。
注意:預設情況下。不指定方法的話,客戶端一般都是使用get方法
·request path:請求路徑。就是URL中的path部分
·protocol/version:協議和版本
·request header:請求頭, 一般是指請求的資料包中的第二行開始,到第一個空行截止部分。
請求頭是用來傳遞資訊的,包括通訊和控制相關的資訊
請求頭是鍵值對應的
請求頭的型別是又http協議規定的,是不能自定義的,每一種資訊頭都是有其特殊的通訊意義的
·request body:請求主體:第一個空號開始到整個請求包結束的部分
一般來說,請求主體是適用於post方法,不適用於get方法的。
請求主體傳遞的內容是由應用或介面決定。
預設是www-form型別(普通的鍵值對應,通過&連線的字串)
如果不適預設型別,則在請求 頭中,一定要新增以下資訊頭:
·Content type:
該頭是告知伺服器,所傳送的body 的資料格式、資料型別
· http response:http相應,由三部分構成:request line、request header、request body
·response line:響應行,是指響應中第一行的內容。包含三個資訊:
protocol/version 、respnose code 、response message
示例:http/1.1 200 OK
http/1.1 404 Not Found
·response code:響應程式碼,又叫狀態碼,是伺服器用來告知客戶端,伺服器對於請求的處理狀態
狀態碼一般是由三位長度的數字構成,一般來說,首字母相同的往往表示是統一大類處理狀態。
·1xx:表示傳遞資訊 ·2xx:典型的就是200,表示處理成功(指的是伺服器邏輯走通了,並不代表業務成功)
·3xx:表示重定向 ·4xx:表示客戶端錯誤。 403:表示許可權有誤。404:表示請求的資源未找到。
·5xx:表示伺服器錯誤 500:是指伺服器由於內部原因導致無法處理請求。注意:一般來說,介面測試、效能測試過程中,在除錯指令碼的階段出現500,通常不是伺服器問題,而是指令碼封裝問題
注意:一般來說1xx、2xx、3xx表示客服端(效能、介面測試工具)和伺服器邏輯通訊沒有問題,4xx、5xx表示邏輯有問題,一般是由封裝的資料導致的
·response message :響應資訊,一般是用來描述響應程式碼的,沒有實際意義。
·response header :類似於request header。是伺服器反饋給客戶端的控制、通訊資訊。
·response body:響應主體,也是由應用和介面產生
本文是由學習視訊中學習手打而成