接口自動化網絡基礎:接口是什么、HTTP協議請求報文、HTTP協議響應報文、常用響應狀態碼


 HTTP協議

  • HTTP ( HYper Text Transfer Protocol)超文本傳輸協議,用於從萬維網(www)服務器傳輸資源到本地瀏覽器的傳送協議
  • HTTP 協議是基於 TCP 協議,默認是 80 端口。主要是用來規定客戶端和服務端的數據傳輸格式
  • HTTP 是基於請求與響應模式的、無狀態的、無連接的應用層協議

    

接口是什么?-----接口相當於獲取資源的通道

  解釋:接口就是一個通道,前端傳數據到后端,需要通道進行傳輸,后端校驗、分析,然后返回響應,前端收到響應,判斷響應內容,最后在前端顯示;

  一個接口就相當於會去調用后端的一個函數,而函數將而返回值作為響應報文把他返回給客戶端;

  相當於客戶端,瀏覽器,APP發送的請求;

 

一、請求

  請求的過程一定是通過一個 url 去請求的

1.URL組成

例如某個 url 地址:
http://127.0.0.1:8088/docs/
格式:協議 + 域名或IP地址 + 請求路徑
域名會被DNS服務器解析為IP地址
  • 一個url地址就是一個接口,接口當中一般運用最多的就是 HTTP 和 HTTPS 協議,是一種超文本傳輸協議;
  • url 域名的后面都是路徑
  • HTTP和HTTPS的區別:
    • HTTPS是一個加密協議,經過一些算法加密,相比於HTTP更加安全;
    • HTTP默認端口80
    • HTTPS默認端口號443

2.請求結構

  • 請求首行(請求行)
  • 請求頭(消息報頭)
  • 空一行
  • 請求體(請求正文)

3.請求首行

請求首行包括:請求方法(get) + 請求地址 + 協議版本號(HTTP/1.1)

  • 請求方法
    • GET:請求讀取由URL所標識的信息  
    • POST:給服務器發送數據  
    • HEAD:請求讀取由URL所有標識的信息的首部  
    • PUT:在指明的URL下存儲一個文檔-- restful-- 替換資源  
    • DELETE:刪除指明的URL .所標識的資源    
    • CONNECT:用於代理服務器  
    • OPTION:請求一些選項的信息  
    • TRACE:用來進行環回測試的請求報文  
    • get
      • 獲取服務器資源(取回數據)
      • 對應sql語句中的select
      • 沒有請求體
      • 傳參:請求參數(query string查詢字符串)放在url中以?key1=value.........的形式
      • 不要在處理敏感數據時使用,如:賬號密碼
    • post
      • 往往創建(新增)資源
      • 對應 sql 語句中的 insert into
      • 有請求體
      • 請求參數
        • 在請求體中的參數(請求體中)

          

        • text/plain文本傳輸為HTTP的報文體中是純文本,沒有任何格式和修飾,服務端就會拿走文本自己處理;
        • Form這個是最常用的傳遞參數方式,HTML 中都有form標簽與其對應,其本身采用Key-Value的方式傳遞參數;
        • json格式比Form更加有效的地方是可以傳送Object;
        • File傳輸單個文件
        • 根據Content-type不同,服務器去讀取HTTP Body中參數的方式也不一樣
    • put
      • 修改服務器的資源
      • 對應sql語句總的update
      • 有請求體、有參數
    • delete
      • 刪除服務器的資源
      • 對應sql語句總的delete from
      • 有請求體、有參數
  • 請求地址
  • 協議版本號(HTTP/1.1)

4.請求頭(消息報頭)

  • User-Agent :產生請求的客戶端類型。
  • Accept :客戶端可識別的內容類型列表。
  • Host :請求的主機名,允許多個域名同處一個IP地址,即虛擬主機。
  • Accept-Encoding :客戶端使用的編碼環境和編碼方式
  • Accept-Language :客戶端語言環境
  • Accept-Charset :client接收的字符集
  • Authorization :授權信息,一般用於存放授權之后的信息
  • Authentication :客戶端提供給服務器,進行權限認證的信息
  • Connection :表示是否需要持久連接
  • Content-Length :表示請求數據正文的長度
  • Cookie :這個與服務器端做交互的,存儲保持會話的重要信息- login (用戶名+密碼)
  • Referer :表示該次請求的來源,一 般用於做防盜鏈
  • content- type :傳給服務器的內容的格式。請求體的內容類型, 如application/x www-form-urlencoded
  • Content- length :請求體的數據長度
  • Cache-control :緩存機制: Cache-control: no chach
  • Pragma :防止頁面被緩存,和Cache-control: no chach一樣

 

  User-Agent :(譯:有責兒.哎真特)客戶端類型

    • 瀏覽器、手機是客戶端

  cookie

    • 相當於身份信息,一般放在請求頭
    • 不會保存用戶的非敏感信息

5.請求體(請求正文)

  • get 請求絕大多數沒有請求體
  • 主要作用攜帶請求參數

 

二、響應報文

  響應報文是服務器發出的

1.請求結構

  • 響應首行(狀態行)
  • 響應頭(消息報頭)
  • 空一行
  • 響應體(響應實體)

2、響應首行(狀態行)

包括:

  • 協議版本號
  •  響應的狀態嗎

  

 最常用的狀態碼及含義:

  • Successful- 2xx:成功類,行為被成功地接受、理解和采納
    • 200 OK  
      • 服務器成功返回用戶請求的數據  
      • 往往為了簡化處理    
      • POST創建 成功后應該返回201的  
    • 404 NOT FOUND  
      • 找不到資源或路徑路徑不存在  
    • 500 INTERNAL SERVER ERROR  
      • 服務器內部錯誤    
      • 最常見的原因是:服務器內部掛了    
      • 比如你傳遞參數中有些參數是空,而導致后台代碼無法解析,出現異常而崩潰  

次常用的響應碼及含義:

  • restful 風格的api接口
  • Successful - 2xx: 成功類,行為被成功地接受、理解和采納
    • 201 CREATED  
      • 通過POST或PUT創建資源成功  
    • 204 NO CONTENT  
      • 資源修改成功,但是沒有返回內容      
      • 常用於DELETE操作的返回      
  • Redirection. - 3xx:重定向類,為了完成請求,必須進一步執行的動作
    • 301 永久重定向  
    • 302 臨時重定向  
    • 304 緩存,資源沒有被改變  
  • Client Error - 4xx: 客戶端錯誤類,請求包含語法錯誤或者請求無法實現
    • 401 UNAUTHORIZED  
      • 沒有權限訪問該資源    
      • 典型情況:用戶沒有登錄,沒有獲得對應的access token而直接訪問某資    
    • 403 FORBIDDEN  
        禁止訪問    
      • 典型情況:雖然用戶已登錄,但是去更新/刪除需要更高權限才能操作的資源    
    • 405 METHOD NOT ALLOWED  
      • 方法不允許    
      • 舉例:比如某個資源不允許POST請求,但是你確發起了POST請求  

3、響應頭(消息報頭)

  • Server :http服務器的軟件信息
  • Data :響應報文的時間
  • Expires :指定緩存過期時間
  • Set- Cookies :設置cookies, 服務器返回的文本
  • Last- modify :資源最后修改時間
  • Content-type :響應的類型和字符集: content-type: text/html; charset=utf-8
  • Content-length :內容長度
  • Connection :一般都是keep-alive ,保持TCP連接不關閉,但是不會長久保持連接,服務器可設置
  • Location :指明重定向的設置,新的URL地址

 

  Content-Type(譯:康泰的太婆)

    • 代表:響應報文返回的數據類型/json格式、HTML格式頁面報文    

  set-Cookie

    • 服務器將用戶信息(session-id)放到Set-Cookie,瀏覽器拿到 set—cookie 然后將其放到瀏覽器的 Cookie 中保存

4、響應體(響應實體)

  • 響應數據
  • 返回 html 頁面或者 json 格式數據
  • 前后端分離 開發模式
    • 是以json格式返回數據  
  • 前后端不分離 開發模式
    • 返回HTML的頁面,需要后端和前端人員配合  
  • 204 沒有響應體,主要看需求文檔和開發心情

 

*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/shouhu/   謝謝!!******* 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM