1. 程式人生 > >web測試基礎---url+http協議詳解

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:響應主體,也是由應用和介面產生

本文是由學習視訊中學習手打而成