国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

GET、POST請(qǐng)求的區(qū)別分析

Baoyuan / 2424人閱讀

摘要:對(duì)數(shù)據(jù)長(zhǎng)度的限制是的。安全性與相比,的安全性較差,因?yàn)樗l(fā)送的數(shù)據(jù)是的一部分。和只是協(xié)議中兩種請(qǐng)求方式,而協(xié)議是基于的應(yīng)用層協(xié)議,無(wú)論還是,用的都是同一個(gè)傳輸層協(xié)議,所以在傳輸上,沒(méi)有區(qū)別。

1 前言

眾所周知,在我們開發(fā)項(xiàng)目的過(guò)程中,關(guān)于POST與GET請(qǐng)求是我們不得不掌握的知識(shí),那么它們兩者之間又有什么區(qū)別呢?接下來(lái),我們一起從HTTP報(bào)文等角度來(lái)探討學(xué)習(xí)一下關(guān)于兩者的不同

2 HTTP請(qǐng)求方法

HTTP 定義了一組請(qǐng)求方法, 以表明要對(duì)給定資源執(zhí)行的操作。指示針對(duì)給定資源要執(zhí)行的期望動(dòng)作. 雖然他們也可以是名詞, 但這些請(qǐng)求方法有時(shí)被稱為HTTP動(dòng)詞. 每一個(gè)請(qǐng)求方法都實(shí)現(xiàn)了不同的語(yǔ)義, 但一些共同的特征由一組共享:: 例如一個(gè)請(qǐng)求方法可以是 safe, idempotent, 或 cacheable.

方法名稱 用法
GET GET方法請(qǐng)求一個(gè)指定資源的表示形式. 使用GET的請(qǐng)求應(yīng)該只被用于獲取數(shù)據(jù).
HEAD HEAD方法請(qǐng)求一個(gè)與GET請(qǐng)求的響應(yīng)相同的響應(yīng),但沒(méi)有響應(yīng)體.
POST 用于將實(shí)體提交到指定的資源,通常導(dǎo)致在服務(wù)器上的狀態(tài)變化或副作用.
PUT PUT方法用請(qǐng)求有效載荷替換目標(biāo)資源的所有當(dāng)前表示。
DELETE DELETE方法刪除指定的資源。
CONNECT CONNECT方法建立一個(gè)到由目標(biāo)資源標(biāo)識(shí)的服務(wù)器的隧道。
OPTIONS OPTIONS方法用于描述目標(biāo)資源的通信選項(xiàng)。
TRACE TRACE方法沿著到目標(biāo)資源的路徑執(zhí)行一個(gè)消息環(huán)回測(cè)試。
PATCH PATCH方法用于對(duì)資源應(yīng)用部分修改。
3 標(biāo)準(zhǔn)參考

W3school:http://www.w3school.com.cn/ta...

項(xiàng)目 GET POST
后退按鈕/刷新 無(wú)害 數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會(huì)被重新提交)。
書簽 可收藏為書簽 不可收藏為書簽
緩存 能被緩存 不能緩存
編碼類型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。為二進(jìn)制數(shù)據(jù)使用多重編碼。
歷史 參數(shù)保留在瀏覽器歷史中。 參數(shù)保留在瀏覽器歷史中。
對(duì)數(shù)據(jù)長(zhǎng)度的限制 是的。當(dāng)發(fā)送數(shù)據(jù)時(shí),GET 方法向 URL 添加數(shù)據(jù);URL 的長(zhǎng)度是受限制的(URL 的最大長(zhǎng)度是 2048 個(gè)字符)。 無(wú)限制
對(duì)數(shù)據(jù)類型的限制 只允許 ASCII 字符。 沒(méi)有限制。也允許二進(jìn)制數(shù)據(jù)。
安全性 與 POST 相比,GET 的安全性較差,因?yàn)樗l(fā)送的數(shù)據(jù)是 URL 的一部分。在發(fā)送密碼或其他敏感信息時(shí)絕不要使用 GET ! POST 比 GET 更安全,因?yàn)閰?shù)不會(huì)被保存在瀏覽器歷史或 web 服務(wù)器日志中。
可見(jiàn)性 數(shù)據(jù)在 URL 中對(duì)所有人都是可見(jiàn)的。 數(shù)據(jù)不會(huì)顯示在 URL 中。
4 副作用和冪等的概念

副作用指對(duì)服務(wù)器上的資源做改變,搜索是無(wú)副作用的,注冊(cè)是副作用的。

冪等指發(fā)送 M 和 N 次請(qǐng)求(兩者不相同且都大于 1),服務(wù)器上資源的狀態(tài)一致,比如注冊(cè) 10 個(gè)和 11 個(gè)帳號(hào)是不冪等的,對(duì)文章進(jìn)行更改 10 次和 11 次是冪等的。因?yàn)榍罢呤嵌嗔艘粋€(gè)賬號(hào)(資源),后者只是更新同一個(gè)資源。

在規(guī)范的應(yīng)用場(chǎng)景上說(shuō),Get 多用于無(wú)副作用,冪等的場(chǎng)景,例如搜索關(guān)鍵字。Post 多用于副作用,不冪等的場(chǎng)景,例如注冊(cè)。

5 技術(shù)上的不同

Get 請(qǐng)求能緩存,Post 不能

Post 相對(duì) Get 安全一點(diǎn)點(diǎn),因?yàn)镚et 請(qǐng)求都包含在 URL 里(當(dāng)然你想寫到 body 里也是可以的),且會(huì)被瀏覽器保存歷史紀(jì)錄。Post 不會(huì),但是在抓包的情況下都是一樣的。

URL有長(zhǎng)度限制,會(huì)影響 Get 請(qǐng)求,但是這個(gè)長(zhǎng)度限制是瀏覽器規(guī)定的,不是 RFC 規(guī)定的

Post 支持更多的編碼類型且不對(duì)數(shù)據(jù)類型限制

6 首部

首部分為請(qǐng)求首部和響應(yīng)首部,并且部分首部?jī)煞N通用,接下來(lái)我們就來(lái)學(xué)習(xí)一部分的常用首部。

通用首部

通用字段 作用
Cache-Control 控制緩存的行為
Connection 瀏覽器想要優(yōu)先使用的連接類型,比如 keep-alive
Date 創(chuàng)建報(bào)文時(shí)間
Pragma 報(bào)文指令
Via 代理服務(wù)器相關(guān)信息
Transfer-Encoding 傳輸編碼方式
Upgrade 要求客戶端升級(jí)協(xié)議
Warning 在內(nèi)容中可能存在錯(cuò)誤

請(qǐng)求首部

請(qǐng)求首部 作用
Accept 能正確接收的媒體類型
Accept-Charset 能正確接收的字符集
Accept-Encoding 能正確接收的編碼格式列表
Accept-Language 能正確接收的語(yǔ)言列表
Expect 期待服務(wù)端的指定行為
From 請(qǐng)求方郵箱地址
Host 服務(wù)器的域名
If-Match 兩端資源標(biāo)記比較
If-Modified-Since 本地資源未修改返回 304(比較時(shí)間)
If-None-Match 本地資源未修改返回 304(比較標(biāo)記)
User-Agent 客戶端信息
Max-Forwards 限制可被代理及網(wǎng)關(guān)轉(zhuǎn)發(fā)的次數(shù)
Proxy-Authorization 向代理服務(wù)器發(fā)送驗(yàn)證信息
Range 請(qǐng)求某個(gè)內(nèi)容的一部分
Referer 表示瀏覽器所訪問(wèn)的前一個(gè)頁(yè)面
TE 傳輸編碼方式

響應(yīng)首部

響應(yīng)首部 作用
Accept-Ranges 是否支持某些種類的范圍
Age 資源在代理緩存中存在的時(shí)間
ETag 資源標(biāo)識(shí)
Location 客戶端重定向到某個(gè) URL
Proxy-Authenticate 向代理服務(wù)器發(fā)送驗(yàn)證信息
Server 服務(wù)器名字
WWW-Authenticate 獲取資源需要的驗(yàn)證信息

實(shí)體首部

實(shí)體首部 作用
Allow 資源的正確請(qǐng)求方式
Content-Encoding 內(nèi)容的編碼格式
Content-Language 內(nèi)容使用的語(yǔ)言
Content-Length request body 長(zhǎng)度
Content-Location 返回?cái)?shù)據(jù)的備用地址
Content-MD5 Base64加密格式的內(nèi)容 MD5檢驗(yàn)值
Content-Range 內(nèi)容的位置范圍
Content-Type 內(nèi)容的媒體類型
Expires 內(nèi)容的過(guò)期時(shí)間
Last_modified 內(nèi)容的最后修改時(shí)間
7 GET 和 POST 報(bào)文上的區(qū)別

結(jié)論:GET 和 POST 方法沒(méi)有實(shí)質(zhì)區(qū)別,只是報(bào)文格式不同。

GET 和 POST 只是 HTTP 協(xié)議中兩種請(qǐng)求方式,而 HTTP 協(xié)議是基于 TCP/IP 的應(yīng)用層協(xié)議,無(wú)論 GET 還是 POST,用的都是同一個(gè)傳輸層協(xié)議,所以在傳輸上,沒(méi)有區(qū)別。

報(bào)文格式上,不帶參數(shù)時(shí),最大區(qū)別就是第一行方法名不同

POST方法請(qǐng)求報(bào)文第一行是這樣的POST /products/create HTTP/1.1

GET方法請(qǐng)求報(bào)文第一行是這樣的 GET /products?name=zs&age=18 HTTP/1.1

是的,不帶參數(shù)時(shí)他們的區(qū)別就僅僅是報(bào)文的前幾個(gè)字符不同而已

帶參數(shù)時(shí)報(bào)文的區(qū)別呢? 在約定中,GET 方法的參數(shù)應(yīng)該放在 url 中,POST 方法參數(shù)應(yīng)該放在 body 中

舉個(gè)例子,如果參數(shù)是 pname="小米9", pprice=3500

GET 請(qǐng)求方法的報(bào)文如下:

POST 請(qǐng)求方法的報(bào)文如下:

現(xiàn)在我們知道了兩種方法本質(zhì)上是 TCP 連接,沒(méi)有差別,也就是說(shuō),如果我不按規(guī)范來(lái)也是可以的。我們可以在 URL 上寫參數(shù),然后方法使用 POST;也可以在 Body 寫參數(shù),然后方法使用 GET。當(dāng)然,這需要服務(wù)端支持。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/105229.html

相關(guān)文章

  • postget區(qū)別

    摘要:與區(qū)別本文參考簡(jiǎn)單介紹和是與服務(wù)器交互的方式,說(shuō)到方式,有。他們的作用分別是對(duì)服務(wù)器資源的增刪改查。區(qū)別分析把請(qǐng)求的數(shù)據(jù)放在上,即協(xié)議頭上,其格式為以分割和傳輸數(shù)據(jù),參數(shù)之間以相連。請(qǐng)求只能進(jìn)行編碼,而支持多種編碼方式。 post與get區(qū)別 本文參考:https://segmentfault.com/a/1190000009512784 簡(jiǎn)單介紹 get和post是HTTP與服務(wù)器交...

    mingzhong 評(píng)論0 收藏0
  • postget區(qū)別

    摘要:與區(qū)別本文參考簡(jiǎn)單介紹和是與服務(wù)器交互的方式,說(shuō)到方式,有。他們的作用分別是對(duì)服務(wù)器資源的增刪改查。區(qū)別分析把請(qǐng)求的數(shù)據(jù)放在上,即協(xié)議頭上,其格式為以分割和傳輸數(shù)據(jù),參數(shù)之間以相連。請(qǐng)求只能進(jìn)行編碼,而支持多種編碼方式。 post與get區(qū)別 本文參考:https://segmentfault.com/a/1190000009512784 簡(jiǎn)單介紹 get和post是HTTP與服務(wù)器交...

    Bmob 評(píng)論0 收藏0
  • postget區(qū)別,面試經(jīng)常被問(wèn)到!(二)

    摘要:了解歷史和是與服務(wù)器交互的方式,說(shuō)到方式,其實(shí)總共有四種。區(qū)別分析把請(qǐng)求的數(shù)據(jù)放在上,即協(xié)議頭上,其格式為以分割和傳輸數(shù)據(jù),參數(shù)之間以相連。在瀏覽器回退時(shí)是無(wú)害的,會(huì)再次提交請(qǐng)求。請(qǐng)求只能進(jìn)行編碼,而支持多種編碼方式。 了解歷史 get和post是HTTP與服務(wù)器交互的方式, 說(shuō)到方式,其實(shí)總共有四種: post、delete、put、get。 他們的作用分別是對(duì)服務(wù)器資源的增、刪、改...

    vvpvvp 評(píng)論0 收藏0
  • 奮戰(zhàn)金九銀十?刷完這一套面試題就夠了!自動(dòng)化軟件測(cè)試工程師跳槽漲薪秘籍!

    摘要:九安卓中如何取出日志信息把安卓系統(tǒng)日志信息實(shí)時(shí)導(dǎo)入到本地運(yùn)行使用某個(gè),實(shí)時(shí)獲取該的日志信息里面的返回信息接口自動(dòng)化面試題一按你的理解,軟件接口是什么答就是指程序中具體負(fù)責(zé)在不同模塊之間傳輸或接受數(shù)據(jù)的并做處理的類或者函數(shù)。 ...

    Freelander 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<