本文來自公開課筆記,主要作知識的記錄,謝謝!javascript
·接口測試核心技術--URL&HTTP協議詳解。php
·URL:java
統一資源定位符。mysql
示例:web
https://ke.qq.com/course/315793?tuin=15945f87
一般來講,一個URL一般由如下幾個部分構成:協議、域名、端口、路徑和URL地址參數。sql
·協議:json
protocol,一般來講是URL中的第一部分(分號以前的部分)瀏覽器
所謂協議:緩存
通訊雙方對於數據的格式、含義、規程等所作的約定。服務器
常見的通訊協議有:
http
https(http+ssl)
ssh
ftp
smtp
pop3
oracle
mysql
sql server
about
config
javascript
·域名:
domain/hostname。是指協議以後的部分,一般來講能夠是服務器的虛擬域名,機器名,IP地址。
好比說:
www.baidu.com
192.168.2.212
localhost
127.0.0.1
xiaozhifei(機器名)
·端口:
port端口是跟在域名以後,格式爲:
域名:端口
端口是由服務器來配置的,是用來監聽客戶端的請求的。
一般來講,若是服務器所使用的端口與其所採用的通訊協議是默認的匹配關係的話,則客戶端在請求時,是能夠不用填寫端口。
常見協議與其默認端口的對應關係以下:
http--80
ssl--443or8443
ssh-22
ftp-21
smtp-25
pop3-110
oracle:1521
mysql:3306
sql server:1433
·路徑:
path,通常來講,表示要訪問的資源在服務器的容器中所存儲的位置。
示例:
/course/315793
·URL地址參數:
一般是以問號做爲鏈接符,拼接在URL的path部分的最後。
自己的數據組織格式爲鍵值對應格式:
key1=value1&key2=value2&...&keyN=valueN
PS:從廣義的角度來講,URL地址參數自己也屬於URL PATH的一部分。
·HTTP協議:
超文本傳輸協議。該協議分爲兩個部分:http request(請求部分),http response(響應部分).
·http request的構成:
通常來講,http請求是由三個部分構成:request line、request header、request body。
·request line:
請求行,一般來講就是請求數據包的第一行內容,包含如下信息:request method、request path、protocol/version
示例:GET /phpwind/ HTTP/1.1
·request method:
請求方法,常見的http的請求方法有get、post、put、patch、options、delete、trace、header等。
請求方法是由接口(開發)決定的。
PS:在工具or瀏覽器中,不指定方法的狀況下,採用的就是get
。
get和post的區別:
·在協議層面,都是請求方法,均可以用來傳遞參數給服務器。
·在web(瀏覽器)中,使用get方法傳遞的參數會變成URL地址參數。使用post方法,則是在request body中。
·在瀏覽器中,URL地址的長度是有限制。
一般核心的,比較長的數據都會採用post方法進行傳遞。
·在瀏覽器中,經過get方法獲取的數據會在本地緩存(cache),post方法獲取的數據是不會在本地緩存的。
·request path:
即URL的path和URL地址參數部分。
·protocol/version:
協議和版本,要求請求和響應所使用的協議保持一致。
·request headers:
請求頭,是指從第二行開始,到第一個空行結束的部分。
請求頭通常表示客戶端和服務器進行通訊時所須要的一些控制和交互信息。
請求頭是鍵值對應的,格式爲: key:value
http協議規定了不少標準的請求頭,表明特殊的通訊含義和做用。
·User-Agent:
用來告知服務器,客戶端的一些配置信息(硬件、系統層面),絕大多數狀況下,服務器都是經過該信息頭來識別用戶來源。一般cookie的自動管理是和這個信息頭有關的。
·Content-Type:
該信息頭是用來告知服務器,所發送的請求主體(body)的數據組織格式。
常見的有:
application/x-www-form-urlencoded 通常是鍵值對的數據。key=value&key=value
通常來講,不指定Content-Type的狀況下,默認就是application/x-www-form-urlencoded。
application/json 數據就是就json 格式
application/xml 數據就是就xml格式
multipart/form-data; boundary=xxx
混合表單格式,一般是用來實現上傳或者包含上傳操做的業務。能夠實現多種數據格式混合傳遞的效果。
boundary是分隔符,比實際的分隔符要少兩個下劃線。
·Cookie:也是請求頭的一部分。
·request body:
請求主體,是指請求包的第一個空行以後的全部內容。
請求主體的內容,數據組織格式等都和業務有關。
·http response:
http響應一般也是由三個部分構成:response line 、response header、response body。
·response line:
響應行,一般來講就是響應數據包的第一行內容,包含如下信息: protocol/version、response code、response message
示例:HTTP/1.1 200 OK
·response code:
響應代碼,又叫狀態碼。是服務器用來告知客戶端,服務器對於請求的處理狀態的。通常來講,狀態碼是三位長度的數字構成,而後首位數字表示大的分類。
1xx:表示傳輸控制信息。
2xx:典型的就是200,表示服務器對於請求的處理是成功的。
PS:成功僅僅表示通訊邏輯上的成功,並不表明業務的成功。
3xx:表示重定向操做
PS:一般來講,1xx、2xx、3xx都表示請求成功。
4xx:表示客戶端錯誤。
5xx:表示服務器錯誤。
PS:一般來講,咱們去作接口測試的時候,尤爲是腳本開發和調試階段,若是出現了4xx和5xx錯誤,基本上都是由於咱們所封裝的數據、方法有誤致使。
·response message:
是接在響應代碼以後的,是用來描述響應代碼所表示的含義的。
·response header:
響應頭,是指從響應包的第二行開始,到第一個空行截至的部分,一般包含服務器反饋給客戶端的控制、交互信息。
格式、含義等都和請求頭相似。
·response body:
響應主體。
·掌握http request,能夠幫助咱們去實現請求包的封裝。
掌握http response,能夠幫助咱們去自動化的判斷請求是否成功,或者實現數據的關聯。