HTTP中GET與POST的區別

2021-08-01 19:19:10 字數 1411 閱讀 6194

get用於資訊獲取,而且應該是安全的和冪等的。

post表示可能修改變伺服器上的資源的請求

(待續…)

表面上:

get請求的資料會附在url之後(就是把資料放置在http協議頭中),以?分割url和傳輸資料,引數之間以&相連;

post把提交的資料則放置在是http包的包體中(request body)。

get方式提交的資料最多只能是1024位元組,理論上post沒有限制

get:伺服器端用request.querystring獲取變數的值。

post:伺服器端用request.form獲取提交的資料

post的安全性要比get的安全性高,get引數直接暴露在url上

get和post是什麼?http協議中的兩種傳送請求的方法。

http是什麼?http是基於tcp/ip的關於資料如何在全球資訊網中如何通訊的協議。

http的底層是tcp/ip。所以get和post的底層也是tcp/ip,也就是說,get/post都是tcp鏈結。get和post能做的事情是一樣一樣的。你要給get加上request body,給post帶上url引數,技術上是完全行的通的。

業界不成文的規定是,(大多數)瀏覽器通常都會限制url長度在2k個位元組,而(大多數)伺服器最多處理64k大小的url。超過的部分,恕不處理。如果你用get服務,在request body偷偷藏了資料,不同伺服器的處理方式也是不同的,有些伺服器會幫你卸貨,讀出資料,有些伺服器直接忽略,所以,雖然get可以帶request body,也不能保證一定能被接收到哦。

get和post還有乙個重大區別,簡單的說:

get產生乙個tcp資料報;post產生兩個tcp資料報。

長的說:

對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

也就是說,get只需要汽車跑一趟就把貨送到了,而post得跑兩趟,第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們開啟門迎接我」,然後再回頭把貨送過去。

因為post需要兩步,時間上消耗的要多一點,看起來get比post更有效。因此yahoo團隊有推薦用get替換post來優化**效能。但這是乙個坑!跳入需謹慎。為什麼?

get與post都有自己的語義,不能隨便混用。

據研究,在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的tcp在驗證資料報完整性上有非常大的優點。

並不是所有瀏覽器都會在post中傳送兩次包,firefox就只傳送一次

web——前後端通訊原理

**http中get與post的區別

http中get與post的區別

HTTP中的get與post方法相同與區別

兩種最常用的 http 方法是 get 和 post。超文字傳輸協議 http 的設計目的是保證客戶端與伺服器之間的通訊。http 的工作方式是客戶端與伺服器之間的請求 應答協議。web 瀏覽器可能是客戶端,而計算機上的網路應用程式也可能作為伺服器端。舉例 客戶端 瀏覽器 向伺服器提交 http 請...

http中get與post區別

http有兩部分組成 請求與響應,下面分別整理。在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的 資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之...

Http方法 Get請求與Post請求的區別

http方法 get請求與post請求的區別 get是向伺服器發索取資料的一種請求,而post是向伺服器提交資料的一種請求 get是獲取資訊,而不是修改資訊,類似資料庫查詢功能一樣,資料不會被修改 get請求的引數會跟在url後進行傳遞,請求的資料會附在url之後,以?分割url和傳輸資料,引數之間...