一、接口
API: Application Programming Interface, 應用程序可編程接口
1)接口分類
硬件接口:具有連接功能、適配。兩個硬件設備之間的連接方式(比如鼠標和電腦通過USB接口連接)
軟件接口:軟件程序之間數據交互的通道(用戶界面是軟件接口)
2)軟件接口分類
程序內部接口:是客戶端與服務器的接口,用來實現客戶端和服務器的數據傳遞
外部接口:比如通過第三方登錄,第三方支付,通過調用外部接口並返回當前的系統
3)常見的接口協議
webService接口:使用soup協議通過http傳輸,請求報文和返回報文都是xml格式的,常用測試工具有soupUI
http協議接口:目前使用最廣泛的,使用HTTP協議來傳輸數據,常見的請求方法有get、post等,常用測試工具有postman、jmeter
dubbo、 websocket、 ws://...、 ftp://等協議。
4)接口測試
本質是基於某種協議,發送一個請求給服務器,然后服務器返回一個響應,然后對響應數據進行分析,判斷是否與我們預期的返回一致,從而驗證功能是否正確。
二、HTTP協議解讀
1)http協議:超文本傳輸協議
2)https:簡單的來說,就是http的安全版,在http下加入了SSL層(SSL主要用戶web的安全傳輸協議)
3)http的默認端口號是:80 ,默認的端口在url可以不加
https的默認端口號是:443 ,默認的端口在url可以不加
4)HTTP請求過程
客戶端:PC端的應用程序 瀏覽器 APP 小程序
HTTP通信:客戶端發送給服務器的請求信息
服務器返回給客戶端的響應信息
客戶端:前端----->主動請求。能夠發起對應的請求的客戶端。
服務端:后端----->被動接受。
擴展URL:
5)HTTP請求信息
請求行: 請求方法/請求網址/協議版本 請求頭部:header host connection upgrade-insecure-requests user-agent:用戶代理,通過客戶端代理 referer accept-encoding cookie 備注:域名和IP地址之間是映射關系,域名是為了好記 請求數據:
6)HTTP響應信息
狀態行:狀態碼 消息報頭: content-type:返回的數據格式 test/html application/json application/xml 響應正文:
7)HTTP響應狀態碼
狀態碼 含義 客戶端client 服務器端server 1xx | Informational 信息 啥都不用做,知道就好 信息收到了,后續會處理 2xx | Successful 成功 啥都不用做,知道就好 請求已正確處理 3xx | Redirection 重定向 重新請求返回的新地址 client需要的內容,由於一些原因,比如地址已發生變化了,然后返回該內容的新地址 4xx | 客戶端的錯誤 確保用正確的參數和信息正確,重新請求 請求已正確處理 5xx | 服務器端的錯誤 都無需操作,服務器端改了bug后,重新發送請求 服務器端的代碼的bug導致了出錯
8)HTTP請求方法
get和post的區別:
a)應用場景不同
get獲取資源
post提交數據,創建新的數據/對已有數據的修改
b)參數存放
get請求的參數都可以顯示在瀏覽器網址上,通過?param=value【即query string方式】查詢字符串
post可以使用query string,但是通常不這么做,通常放到body請求體當中
c)安全性
get和post並沒有誰更安全,抓包都是可以看到里面的數據,網上說的post更安全是因為數據放到了body當中,肉眼看不到而已, 但其實也是不安全的,而get請求是直接在URL中肉眼可以看到
備注:加密與請求方法沒關系,什么東西都是可以加密的