HTTP請求中, Get 和 Post 的區別

2021-10-07 23:31:44 字數 1308 閱讀 4155

在 http 請求中, 最主要和常見的方法就是 get 請求和 post 請求.

get: 請求指定的頁面資訊

值得注意的是:get 方法只是使用者獲取和查詢資料,並不會對伺服器上的資料產生修改, 因此, 從這點可以得知,它是資料安全的.

post: 向指定資源提交資料進行處理請求, 也就是說, 它可以向伺服器傳送修改請求, 從而修改伺服器資料.

get 請求不允許帶請求體, 而 post 請求允許帶請求體

從語義上講: get 請求屬於 select 方法, 而 post 請求屬於 insert 方法.

get 請求具有冪等性: 針對同乙個 url, 多次發起 get 請求, 伺服器的資料不應該有任何變化; 對於 post 請求而言, 就可能會修改伺服器資料.

get 會傳送乙個 tcp 資料報, 而 post 會傳送兩個 tcp 資料報.

注意:

實際操作過程中, get 也可以完成 post 操作. 即將 post 請求的請求體放入 get 的 query string 中. 但是這樣做的缺點是: 由於 query string 是一種明文, 所以使用者在使用 get 請求時, 就可以看見 query string 中的內容.

但是 get 和 post 都有自己的語義, 所以盡量不要混用.

關於 get 傳送乙個 tcp 資料報和 post 傳送兩個 tcp 資料報:

get 在向伺服器傳送 http 請求時, 會將 header 資訊連同 data 資訊一起傳送.

post 在向伺服器傳送 http 請求時, 會先傳送 header 資訊, 直到伺服器響應回 100 狀態碼後, 才會繼續傳送 data 資訊.

既然 post 需要兩步, 而 get 只需要一步, 說明 get 比 post 更有效, 那麼是否可以通過使用 get 來替換掉 post 從而優化效能呢?

get 和 post 都有自己的語義, 盡量不要混用

如果網路環境好的話, 發一次包的時間和發兩次包的時間幾乎沒有什麼差別. 但是如果網路環境差的話, 兩次包的 tcp 在驗證資料報的完整性上, 有很大的優勢

(如何驗證資料報的完整性, 服務端接收到 header 的資訊後, header 中會有資料的長度和資料大小等資訊, 等到伺服器再次接收到 data 資訊後, 可以將其與 header 資訊進行比對, 從而判斷是否有丟包或者包損壞的情況)

並不是所有的瀏覽器對於 post 都會發兩個資料報. 比如: firefox 瀏覽器中, post 只會傳送一次.

Http中get和post請求

http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...

HTTP中GET和POST請求區別

1 get是從伺服器上 獲取資料,post是向伺服器傳送資料。1 在客戶端,get方式在通過 url提交資料,資料 在url中 可以看到 post方式,資料放置在 html header內 提交。2 對於get方式,伺服器端用request.querystring獲取變數的值,對於post方式,伺服...

HTTP請求中get和post區別

1 get請求,請求的資料會附加在url之後,以?分割url和傳輸資料,多個引數用 連線。url的編碼格式採用的是ascii編碼,而不是uniclde,即是說所有的非ascii字元都要編碼之後再傳輸。2 get提交有資料大小的限制,一般是不超過1024個位元組,而這種說法也不完全準確,http協議並...