標籤:

3.掀起介面測試的蓋頭-HTTP初窺(二)

認識事物一個比較好的、符合人類天性的方法是:從宏觀到微觀。科學家們由此發現了分子、原子、電子、質子、中子、夸克。

上一篇文章介紹了HTTP最基礎的知識,今天咱們來將HTTP解剖一下,來認識HTTP消息的結構。

HTTP請求的消息結構

<method> <request-URL> <version>

<headers>

<entity-body>

HTTP請求method

最常用的HTTP請求方法是get和post,現在比較流行的Restful架構,常用的請求方法除了get和post,還有put和delete。下面列出這幾種請求方法代表的意思,當前不理解也無大礙。

  • GET: 請求獲取一個資源;而需要伺服器發送HEAD請求一個資源,但是不需要伺服器發送資源而僅傳迴響應的首部信息。
  • POST:提交表單;支持HTML表單提交;表單中有用戶填入的數據;這些數據會發送到伺服器端;由伺服器存儲至某位置。
  • PUT:向伺服器寫入文檔;例如發布系統。
  • DELETE:請求刪除URL指向的資源。
  • OPTIONS:探測伺服器端對某資源所支持的請求方法。
  • TRACE:跟蹤請求資源傳輸所經過防火牆、代理或網關等:
  • CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理伺服器。

HTTP body

消息體是HTTP消息的主體內容,比如我提供加法計算的介面,你要給我兩個數a和b,我給你返回和,a和b是就放在body中。上圖中body就是「a=1&b=2」。

HTTP headers

頭部是用於服務端溝通的一些控制欄位,比如寫一封信,信的內容是body,發件人、收件人、地址、郵編等信息就是頭部。如下羅列幾個常見頭部。

  • Content-Type:用於標記body部分是什麼內容,比如image/jpeg表示內容是一種jpeg的圖片、text/html標記內容是HTML文本。
  • Content-Length: 用於標記消息長度。
  • Connection:表示長短連接

HTTP響應的消息結構

<version> <status> <reason-phrase>

<headers>

<entity-body>

關於HTTP響應的消息結構,我只講一下status欄位,也叫狀態碼。

status

http響應中的status狀態碼分為五種:

1xx:信息性狀態碼

2xx:成功狀態碼

200:OK201:created

3xx:重定向狀態碼

301:Moved Permanentl;在響應報文中使用首部"Location:URL";指定資源現在所在的位置302:Fonud(臨時重定向);在響應報文中使用首部"Location:URL";指定臨時資源位置304:Not Modified(可以使用緩存);告訴客戶端沒有更改資源;條件式請求中使用

4xx:客戶端錯誤信息

403:Forbidden;請求被伺服器拒絕404:Not Found;伺服器無法找到請求的URL405:Method Not Allowed;不允許使用此方法請求相應的URL

5xx:伺服器端錯誤信息

500:Internal Server Error;伺服器內部錯誤502:Bad Gateway;代理伺服器從上級收到了一條偽響應503:Service Unavailable;伺服器此時無法提供服務;但是將來可能可用

小結

  1. 今天咱們分解了HTTP的消息結構並進行了初步講解,有了這些基礎知識,咱們下面就可以切入正題-如何進行執行介面測試了。
  2. 我以往的寫文章風格,每一部分都會標明講的是What、Why還是How,這篇文章沒有標明,因為這篇文章通篇講的都是what。並且很多時候,理解了what,why是可以自己推理出來的。舉個栗子,Content-Type,what-它是什麼?是指body的類型,why-為什麼有這個欄位?答案完全可以自己推測出來:因為對方知道了內容的類型才能正確讀取出來。

歡迎關注我公眾號「鹿爺聊測試」。


推薦閱讀:

2. 掀起介面測試的蓋頭-HTTP 初窺 (一)
實戰篇 近期線上BUG分析及解決方案總結

TAG:軟體測試 |