接口、HTTP請求、協議、響應(總結加深印象)


一、什么是接口
  硬件接口比如:USB、耳機、水龍頭、電燈泡

  軟件接口比如:api.github.com 連接了服務端和客戶端、

         UI  user interface 用戶接口、 用戶界面、

         函數 可以公開訪問的才能是接口 、

         API  全稱:application programming interface,應用程序可編程接口,應用程序寫代碼,可以控制的接口

  連接了兩個不同的事物、系統,可以進行數據傳輸 。

  接口,兩個不同事物之間進行適配的一種工具,規范和協議,

 

二、什么是網絡請求

  1、客戶端   主要進行前端操作,主動請求 。客戶端(Client)或稱為用戶端,是指與服務器相對應,為客戶提供本地服務的程序

  2、服務端   后端主要被動接受來自前端請求。服務器端是為客戶端服務的,服務的內容諸如向客戶端提供資源,保存客戶端數據

 

三、HTTP請求、協議

  1、HTTP是無狀態的

    1)HTTP 每個請求都是獨立的

    2)沒有記性

    3)實現一個有狀態的,一個無狀態的,直接使用 requests 發起的請求就沒有狀態  即使你先調用登錄接口 再調用其他接口  那么后面這個接口也會提示你請登錄

  2、HTTP協議分為三個部分

    1)請求首航

    1)URL 域名地址

    2)請求方法 GET (GET獲取資源)沒有請求體,他的參數都放在URL里面,用?和&分隔 

      POST 、POST創建資源  有請求體,有請求體意味着可以添加更多的數據,可以放在URL中,也可以已鍵值對的方式傳參

      PUT、DELETE..

      為什么說POST 比 GET 更安全,1、GET請求都放在URL中一眼就才看出來了 。

    3)協議版本  用的比較多的版本是:HTTP/1.1

      請求網站是:域名地址

      遠程地址是:IP地址

                 

 

 

   2)請求參數

      body參數方式:

            Text:text/plain

            Form:application/x-www-form-urlencoded

            JSON:application/json

            File:不確定

   3)請求頭

      user-agent 1、用戶代理 2、手機。瀏覽器,postman,jemter

        content-type   請求格式

      cookie
 
                     

 

    4)請求體  請求體有可能是空的


  3、HTTP下層協議是由:tcp/ip

      tcp:打包,使用存儲數據,打包成一個一個很小的包
      ip:確認地址,通過ip進行傳輸

 

四、響應

  1、響應首航

    1)協議版本號

    2)狀態碼:內部人員規定的一種專門的信息格式

    3)狀態碼含義
      1XX 含義:lnformational信息,啥都不做,告訴client,信息收到了,后續會處理

      2XX 含義:Successful 成功,啥都不做,告訴client,請求已正確處理

      3XX 含義:Redirection 重定向,重新請求返回的新地址-》才能獲取真正需要的數據,告訴cilent,你需要的內容,由於一些原因,比如地址已經發生變化,然后返回該內容的新地址

      4XX 含義:Client Error客戶端的錯誤,確保用正確的參數和信息,重新請求。告訴client,請求已正確處理

      5XX 含義:Server Error服務器端的錯誤,(一般來說)都無需啥操作->往往需要服務器端該了bug后,重新發送請求,需要服務器Server端自己找到具體出了什么錯,往往是服務端的代碼bug導致了出錯

    4)常用的狀態碼及含義
      2XX  200  OK 服務器成功返回用戶請求的數據,往往為力簡化處理,POST 創建成功后應該返回 201 資源創建成功

          201 CREATED 通過POST或PUT創建資源成功

          204 NO CONTENT 資源修改成功,但是沒有返回內容,常用於DELETE操作的返回

      3XX 重定向,為力完成請求,必須進一步執行的動作

         301 永久重定向

         302 臨時重定向

         304  上次訪問服務器沒有進行內容的修改,就把緩存里面的內容獲取出來了

      4XX 401 UNAUTHORIZED 沒有權限訪問該資源,典型情況:用戶沒有登錄,沒有獲取的對應access token而直接訪問某資源

         403 FORBLDDEN 禁止訪問 用戶雖然已經登錄,但是去刪除需要更高的權限才有資格操作

         404 NOT FOUND 找不到資源 

         405 METHOD NOT ALLOWED 方法不允許, 某個資源不允許發送post請求,但是你發起了post請求

      5XX  500 INTERNAL SERVER ERROR 服務器內部錯誤,最常見的原因是:服務器掛了,比如傳遞參數中的有些參數是空的,導致后台代碼無法解析,出現異常而崩潰

    5)響應頭

      content-type 返回數據的格式

      set-coolie

    6)響應體

      返回的數據 ,json、text、html

 

五、域名和ip地址的區別

  1、域名更好記憶

  2、IP地址不好記憶

  3、訪問域名地址的時候會轉換成IP地址進行傳輸

  4、使用DNS解析,把域名轉換成IP地址

  5、端口號,為了區分不同的服務

 

六、cookie, session 和 token

  1、cookie  

    英文翻譯:小餅干、小甜點

    cookie是讓服務器記住你,記錄瀏覽器的信息

    cookie 存儲在瀏覽器(服務端)

    cookie 有效期默認是關閉瀏覽器自動清除,也可以自定義設置

  2、session 

    在(服務器)記住用戶狀態的信息就叫做:session 

    如果使用session對象發起請求,那么你只要先發起登錄請求,在訪問其他請求接口,都能正常訪問

    用來 服務器驗證 

    服務器也存儲一份,用來驗證發送過來的 cookie 是不是合法、符合規則的

  3、token 

    保存在客戶端本地 local_srotage

    是一種令牌,不管他什么身份

    token 可以跨平台,手機、瀏覽器、電視、電腦 等等。

    token 生成的口令是會變的,

    關閉瀏覽器不會刪除 token 只會失效

  不管是 cookie, session 和 token 都是服務器生成的

  

七、輸入URL后的過程

  1、域名解析:DNS解析,把域名解析成服務器IP地址

  2、發起TCP鏈接的三次握手(下面會寫)

  3、建立TCP鏈接后發起HTTP請求

  4、服務端響應HTTP請求,返回響應報文

  5、瀏覽器頁面渲染

  6、斷開 TCP 鏈接

 

八、三次握手

  任何的請求都是從服務端開始的

  第一次握手:建立連接時,客戶端向服務端發送請求報文(SYN)“我想建立連接”

  第二次握手:服務器收到請求報文后,如同意連接,則向客戶端發送確認報文(SYN / ACK)“同意建立連接”

  第三次握手:客戶端收到服務器的確定后,再次向服務器發送確定報文,完成連接(ACK)

  三次握手主要是為了防止已經失效的請求報文文字段發送給服務器,浪費資源

 

九、 四次揮手

  第一次揮手:客戶端想分手,發送消息(FIN)給服務器

  第二次揮手:服務器通知客戶端已經接受的揮手請求,返回確認信息(ACK),但還沒做好分手准備

  第三次揮手:服務器已經做好分手准備,通知客戶端(FIN)

  第四次揮手:客戶端發送消息給服務器(ACK),確認分手,服務器關閉連接


免責聲明!

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



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