前端基礎系列 理解GET與POST請求區別

2021-10-02 07:30:47 字數 864 閱讀 4642

http協議從未規定過get/post請求長度是多少,所謂的請求長度限制由瀏覽器和web伺服器決定的,各種瀏覽器和 web 伺服器的設定均不一樣,這依賴於各個瀏覽器廠家的規定或者可以根據 web 伺服器的處理能力來設定。傳統ie中url的最大可用長度為2048字元,其他瀏覽器對url長度限制實現上有所不同,post請求無長度限制(目前理論上是這樣的)。

多數瀏覽器對於post採用兩階段傳送資料的,先傳送請求頭,再傳送請求體,即使引數再少再短,也會被分成兩個步驟來傳送(相對於get),也就是第一步傳送header資料,第二步再傳送body部分。http是應用層的協議,而在傳輸層有些情況tcp會出現兩次連線的過程,http協議本身不儲存狀態資訊,一次請求一次響應。對於tcp而言,通訊次數越多反而靠性越低,能在一次鏈結中傳輸完需要的訊息是最可靠的,盡量使用get請求來減少網路耗時。如果通訊時間增加,這段時間客戶端與伺服器端一直保持連線狀態,在伺服器側負載可能會增加,可靠性會下降。

這裡的「安全」和通常理解的「安全」意義不同,如果乙個方法的語義在本質上是「唯讀」的,那麼這個方法就是安全的。客戶端向服務端的資源發起的請求如果使用了是安全的方法,就不應該引起服務端任何的狀態變化,因此也是無害的。 此rfc定義,get, head, options 和 trace 這幾個方法是安全的。

但是這個定義只是規範,並不能保證方法的實現也是安全的。

冪等的概念是指同乙個請求方法執行多次和僅執行一次的效果完全相同。按照rfc規範,put,delete和安全方法都是冪等的。同樣,這也僅僅是規範,服務端實現是否冪等是無法確保的。引入冪等主要是為了處理同乙個請求重**送的情況,比如在請求響應前失去連線,如果方法是冪等的,就可以放心地重發一次請求。這也是瀏覽器在後退/重新整理時遇到post會給使用者提示的原因:post語義不是冪等的,重複請求可能會帶來意想不到的後果。

Vue resource中的GET與POST請求

在 vue 2 版本,官方推薦使用 axios 來進行開發,可以閱讀這篇文章來學習 axios 全攻略之基本介紹與使用 get 與 post 前言 vue resource 使用比 jquery 更加簡潔的方式實現了非同步請求功能,還提供了比如 interceptors 這樣處理請求過程中行為的功能...

前端基礎高階系列

前端基礎高階 一 記憶體空間詳細 前端基礎高階 二 執行上下文詳細 前端基礎高階 三 變數物件詳解 前端基礎高階 四 詳細 作用域鏈與閉包 前端基礎高階 五 全方位解讀this 前端基礎高階 六 在chrome開發者工具中觀察函式呼叫棧 作用域鏈與閉包 前端基礎高階 七 函式與函式式程式設計 前端基...

前端基礎高階系列

前端基礎高階 一 記憶體空間詳細 前端基礎高階 二 執行上下文詳細 前端基礎高階 三 變數物件詳解 前端基礎高階 四 詳細 作用域鏈與閉包 前端基礎高階 五 全方位解讀this 前端基礎高階 六 在chrome開發者工具中觀察函式呼叫棧 作用域鏈與閉包 前端基礎高階 七 函式與函式式程式設計 前端基...