日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java get post 区别详解_[Java教程]GET 与 POST 其实没有什么区别

發(fā)布時間:2025/4/5 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java get post 区别详解_[Java教程]GET 与 POST 其实没有什么区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

[Java教程]GET 與 POST 其實(shí)沒有什么區(qū)別

0 2020-12-30 11:36:20

GET 與 POST 其實(shí)沒有什么區(qū)別

本文寫于 2020 年 12 月 30 日

GET 與 POST 是兩種 HTTP 方法,并且是最常用的兩種。

今天在使用 Postman 測試 api 的時候,突發(fā)奇想:在 Get 請求的請求體中寫 Body 參數(shù),在 Post 請求中寫 Query 參數(shù)。

居然完全可以運(yùn)行!

對比起我之前看過的一些文章,所謂的 GET 與 POST 的區(qū)別,可以說:網(wǎng)上大部分對二者的分析都是錯的,GET 和 POST 沒有本質(zhì)的區(qū)別。

GET 的 HTTP 報(bào)文完全是這樣的:GET /cats?id=1 HTTP/1.1Host: localhost:3000Content-Type: application/jsonContent-Length: 15{ "id": 1}

GET 也可以是這樣的:POST /cats?id=1 HTTP/1.1Host: localhost:3000Content-Type: application/jsonContent-Length: 15{ "id": 1}

發(fā)現(xiàn)除了開頭的方法不同,別的完全是一模一樣的!

如果我們想要知道他們之間的區(qū)別,首先我們得明確:什么是 HTTP?什么是 HTTP 方法?

什么是 HTTP

什么是 HTTP 呢?

HTTP 是一種協(xié)議,他的設(shè)計(jì)目的是保證客戶端與服務(wù)器之間的通信。

HTTP 的工作方式是客戶端與服務(wù)器之間的「請求」與「應(yīng)答」。(這個客戶端可能是 web 瀏覽器,也可能是需要聯(lián)網(wǎng)的本地應(yīng)用程序)

但是這個「請求」與「應(yīng)答」不能瞎來啊,我們互相之間得看得懂才行——這就是協(xié)議的作用:規(guī)定好應(yīng)該如何請求、應(yīng)該如何響應(yīng)。

關(guān)于 HTTP 不多做解釋,可以看之前一的一篇用簡單 Node.js 后臺程序看 HTTP 請求。

HTTP 方法

而 HTTP 方法呢,顧名思義,就是指在客戶端和服務(wù)器之間進(jìn)行「請求-響應(yīng)」時,被用到的方法。

GET 和 POST 各用一句話來描述:GET 從指定的資源請求數(shù)據(jù)

POST 向指定的資源提交要被處理的數(shù)據(jù)

常見錯誤答案

常常會有人分析 GET 與 POST 的區(qū)別,這里說一下幾個廣為流傳的“錯誤答案”,甚至有些 W3C 也是這么寫的。

GET 的長度有限制,POST 沒有

GET 方法的長度限制是怎么回事?真的有限制嗎?

有限制的其實(shí)是 URL,如果你愿意把參數(shù)寫到 GET 請求的 Body 里去,那 GET 請求的長度和 POST 就是一樣的了。

并且即使是 URL 的長度限制,那也不是 HTTP 協(xié)議的鍋。HTTP 協(xié)議沒有 Body 和 URL 的長度限制,對 URL 限制的大多是瀏覽器和服務(wù)器的原因。

瀏覽器原因就不說了,服務(wù)器是因?yàn)樘幚黹L URL 要消耗比較多的資源,為了性能和安全(防止惡意構(gòu)造長 URL 來攻擊)考慮,會給 URL 長度加限制。

并且 POST 也不是沒有限制的,只是比較大而已。通常 GET 請求中的 Query 參數(shù)大小是以 k 為單位記錄的,根據(jù)不同的瀏覽器和服務(wù)器有不同的數(shù)據(jù);

POST 請求的大小是以 M 為單位記錄的,同樣取決于服務(wù)器。

POST 方法比 GET 方法安全

按照網(wǎng)上大部分文章的解釋,POST 比 GET 安全,因?yàn)閿?shù)據(jù)在地址欄上不可見。

然而,從傳輸?shù)慕嵌葋碚f,他們都是不安全的!!!

因?yàn)?HTTP 在網(wǎng)絡(luò)上是明文傳輸?shù)?#xff0c;只要在網(wǎng)絡(luò)節(jié)點(diǎn)上抓包,就能完整地獲取數(shù)據(jù)報(bào)文。

要想安全傳輸,就只有加密,也就是 HTTPS。

GET 的參數(shù)是固定寫法

我們必須把 GET 的參數(shù)寫在 ? 后面,用 & 分割嗎?

根本不用。

因?yàn)榻馕鰣?bào)文的過程是通過獲取 TCP 數(shù)據(jù),用正則等工具從數(shù)據(jù)中獲取 Header 和 Body,從而提取參數(shù)。

也就是說,我們可以自己約定參數(shù)的寫法,只要服務(wù)端能夠解釋出來就行,一種比較流行的寫法是 HTTP 方法:GET 對比 POST

99%的人都理解錯了 HTTP 中 GET 與 POST 的區(qū)別

都 2019 年了,還問 GET 和 POST 的區(qū)別

(完)

本文網(wǎng)址:http://www.shaoqun.com/a/504449.html

*特別聲明:以上內(nèi)容來自于網(wǎng)絡(luò)收集,著作權(quán)屬原作者所有,如有侵權(quán),請聯(lián)系我們:admin@shaoqun.com。

網(wǎng)絡(luò)

0

總結(jié)

以上是生活随笔為你收集整理的java get post 区别详解_[Java教程]GET 与 POST 其实没有什么区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。