接口測試-基礎

1 網絡傳輸知識javascript

1.1 協議java

HTTP(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議。算法

1.2 Cache數據庫

  • 瀏覽器緩存
  • 代理緩存
  • 網關緩存

1.3 Cooike後端

Cookie就是由服務器發給客戶端的特殊信息,而這些信息以文本文件的方式存放在客戶端,而後客戶端每次向服務器發送請求的時候都會帶上這些特殊的信息。跨域

1.4 Session(會話)瀏覽器

Session是另外一種記錄客戶狀態的機制,不一樣的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上。客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。緩存

經過Cookie傳輸:安全

URL地址重寫,對客戶端不支持Cookie的解決方案。將用戶Session信息重寫到URL地址中。服務器

cookie與session的區別

  1. cookie數據存放在客戶的瀏覽器上,session數據放在服務器上;
  2. cookie不是很安全,別人能夠分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session;
  3. session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能。考慮到減輕服務器性能方面,應當使用COOKIE;
  4. 單個cookie在客戶端的限制是4K,就是說一個站點在客戶端存放的COOKIE不能超過4K。

1.5 token(令牌)

 使用基於 Token 的身份驗證方法,在服務端不須要存儲用戶的登陸記錄。大概的流程是這樣的:

    1. 客戶端使用用戶名跟密碼請求登陸
    2. 服務端收到請求,去驗證用戶名與密碼
    3. 驗證成功後,服務端會簽發一個 Token,再把這個 Token 發送給客戶端
    4. 客戶端收到 Token 之後能夠把它存儲起來,好比放在 Cookie 裏或者 Local Storage 裏
    5. 客戶端每次向服務端請求資源的時候須要帶着服務端簽發的 Token
    6. 服務端收到請求,而後去驗證客戶端請求裏面帶着的 Token,若是驗證成功,就向客戶端返回請求的數據

Token機制相對於Cookie機制又有什麼好處呢?

  • 支持跨域訪問: Cookie是不容許垮域訪問的,這一點對Token機制是不存在的,前提是傳輸的用戶認證信息經過HTTP頭傳輸.
  • 無狀態(也稱:服務端可擴展行):Token機制在服務端不須要存儲session信息,由於Token 自身包含了全部登陸用戶的信息,只須要在客戶端的cookie或本地介質存儲狀態信息.
  • 更適用CDN: 能夠經過內容分發網絡請求你服務端的全部資料(如:javascript,HTML,圖片等),而你的服務端只要提供API便可.
  • 去耦: 不須要綁定到一個特定的身份驗證方案。Token能夠在任何地方生成,只要在你的API被調用的時候,你能夠進行Token生成調用便可.
  • 更適用於移動應用: 當你的客戶端是一個原平生臺(iOS, Android,Windows 8等)時,Cookie是不被支持的(你須要經過Cookie容器進行處理),這時採用Token認證機制就會簡單得多。
  • CSRF:由於再也不依賴於Cookie,因此你就不須要考慮對CSRF(跨站請求僞造)的防範。
  • 性能: 一次網絡往返時間(經過數據庫查詢session信息)總比作一次HMACSHA256計算 的Token驗證和解析要費時得多.
  • 不須要爲登陸頁面作特殊處理: 若是你使用Protractor 作功能測試的時候,再也不須要爲登陸頁面作特殊處理.
  • 基於標準化:你的API能夠採用標準化的 JSON Web Token (JWT). 這個標準已經存在多個後端庫(.NET, Ruby, Java,Python, PHP)和多家公司的支持(如:Firebase,Google, Microsoft

1.6 JWT

JSON Web Token(JWT)是一個很是輕巧的規範。這個規範容許咱們使用JWT在用戶和服務器之間傳遞安全可靠的信息.

JWT組成:一個JWT實際上就是一個字符串,由三部分組成,頭部、載荷與簽名。

header :1.Token 的類型  2.使用的算法。

Payload 是Token 的具體內容:

  • iss:Issuer,發行者
  • sub:Subject,主題
  • aud:Audience,觀衆
  • exp:Expiration time,過時時間
  • nbf:Not before
  • iat:Issued at,發行時間
  • jti:JWT ID

Signature:1.用 Base64 編碼的 header.payload  2.加密算法加密 3.加密須要提供一個Secret(密鑰)。密鑰存儲在服務端。

2 HTTP協議

URL:Uniform Resource Locator,統一資源定位符。

2.1 HTTP請求

HTTP請求由三部分組成,分別是:請求行、消息報頭、請求正文。

請求方法:

         GET        請求獲取Request-URI所標識的資源
         POST       在Request-URI所標識的資源後附加新的數據,經常使用於提交表單
         HEAD       請求獲取由Request-URI所標識的資源的響應消息報頭
         PUT        請求服務器存儲一個資源,並用Request-URI做爲其標識
         DELETE     請求服務器刪除Request-URI所標識的資源
         TRACE      請求服務器回送收到的請求信息,主要用於測試或診斷
                    能夠追蹤一次請求中間所通過的代理服務器有哪些
         CONNECT    保留未來使用
         OPTIONS    請求查詢服務器的性能,或者查詢與資源相關的選項和需求
                    能夠用來獲取服務器端資源支持的方法

2.2 請求響應

HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文。

3 HTTP協議

什麼是HTTPS:與SSL(安全套接層)組合使用的HTTP被稱爲HTTPS(HTTP Secure,超文本傳輸安全協議)。

4 WebSocket協議

WebSocket是一個持久化協議,升級原有HTTP中經過long poll和Ajax輪詢方式,Websocket只須要一次HTTP握手,因此說整個通信過程是創建在一次鏈接/狀態中,也就避免了HTTP的非狀態性,服務端會一直知道你的信息,直到你關閉請求。

相關文章
相關標籤/搜索