久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 高級(jí)HTTP方法:放置請(qǐng)求和修補(bǔ)程序請(qǐng)求之間的區(qū)別

高級(jí)HTTP方法:放置請(qǐng)求和修補(bǔ)程序請(qǐng)求之間的區(qū)別

來源:千鋒教育
發(fā)布人:syq
時(shí)間: 2022-09-22 14:16:02 1663827362

  深入了解 PUT 和補(bǔ)丁請(qǐng)求。開發(fā)人員或程序員應(yīng)該知道和請(qǐng)求之間的區(qū)別。似乎兩者都在修改資源中的數(shù)據(jù)。僅此而已嗎?或者,如果在面試中問過你這個(gè)問題,你現(xiàn)在會(huì)怎么回答?PUTPATCH今天我們就來聊聊這個(gè)話題。

8

  1. 安全和冪等 HTTP 方法

  安全方法

  在 REST API 的上下文中,安全方法是不修改資源的 HTTP 方法。例如,在 上使用 GET 或 HEAD 永遠(yuǎn)不應(yīng)更改資源。安全方法是可以緩存和預(yù)取而對(duì)資源沒有任何影響的方法。Request URI

  在實(shí)踐中,通常不可能以不改變?nèi)魏钨Y源的方式實(shí)現(xiàn)安全方法。例如,GET 請(qǐng)求可能會(huì)創(chuàng)建日志或更新統(tǒng)計(jì)信息值,或者在服務(wù)器上觸發(fā)緩存刷新。

  無法確保服務(wù)器不會(huì)因執(zhí)行 GET 請(qǐng)求而產(chǎn)生副作用。這里的重要區(qū)別在于API消費(fèi)者沒有請(qǐng)求副作用,因此消費(fèi)者不能對(duì)它們負(fù)責(zé)。

  請(qǐng)求 URI 是應(yīng)用請(qǐng)求的資源的統(tǒng)一資源標(biāo)識(shí)符。

  冪等方法

  如果一個(gè)或多個(gè) HTTP 方法的調(diào)用對(duì)資源具有相同的預(yù)期效果,則將此方法視為 。如果該方法只被調(diào)用了一次或三次,這應(yīng)該無關(guān)緊要。資源上的結(jié)果應(yīng)始終相同。idempotent

  Idempotency本質(zhì)上意味著成功執(zhí)行的請(qǐng)求的結(jié)果與它被執(zhí)行的次數(shù)無關(guān)。

  注意:當(dāng)您發(fā)送多個(gè) DELETE 請(qǐng)求時(shí),第一個(gè)請(qǐng)求將刪除資源,響應(yīng)為 200(正常)或 204(無內(nèi)容)。下一個(gè)請(qǐng)求返回 404(未找到)。響應(yīng)與第一個(gè)請(qǐng)求不同,但由于原始資源已被刪除,因此服務(wù)器端的任何資源的狀態(tài)都沒有變化。因此,刪除是冪等的。

10

  2. 看跌期權(quán)請(qǐng)求

  該方法完全修改現(xiàn)有資源或創(chuàng)建新資源。它是如何做到的?PUT

  API 使用者發(fā)送資源 ID

  如果資源存在,則整個(gè)資源將替換為整個(gè)實(shí)體

  如果資源不存在,則會(huì)創(chuàng)建一個(gè)新資源

  例如,如果要更改數(shù)據(jù)庫中用戶的名字,則需要在發(fā)出請(qǐng)求時(shí)發(fā)送整個(gè)實(shí)體。PUT

11

  要發(fā)出請(qǐng)求,您需要發(fā)送所有參數(shù),而不僅僅是名稱;此示例的第一個(gè)和姓氏。PUT

  如果成功更新,則成功的請(qǐng)求將返回 of 或 of,如果預(yù)期資源尚無當(dāng)前表示形式,并且請(qǐng)求創(chuàng)建一個(gè)表示形式,則源服務(wù)器必須向 API 使用者發(fā)送 of 響應(yīng)。PUTHTTP Status Code200 (OK)HTTP Status Code204 (No Content)PUTHTTP Status Code201 (Created)

  3. 為什么 PUT 請(qǐng)求是冪等的

  此處,請(qǐng)求包含此用戶的所有參數(shù)。PUT

  使用請(qǐng)求時(shí),假定您正在發(fā)送完整的實(shí)體,并且完整的實(shí)體將替換 處的任何現(xiàn)有資源。 請(qǐng)求通過替換整個(gè)資源來處理它。PUT Request URIPUT

  由于請(qǐng)求包括整個(gè)實(shí)體,因此如果您重復(fù)發(fā)出相同的請(qǐng)求,它應(yīng)該始終具有相同的結(jié)果(您發(fā)送的數(shù)據(jù)現(xiàn)在是資源的全部數(shù)據(jù))。PUT

  如果您發(fā)送請(qǐng)求5次,則第一個(gè)請(qǐng)求將更新資源;其他 4 個(gè)請(qǐng)求將一次又一次地覆蓋相同的資源狀態(tài) — 實(shí)際上不會(huì)更改任何內(nèi)容。PUT

  因此,該請(qǐng)求是冪等的。PUT

  4. 補(bǔ)丁請(qǐng)求

  該方法將部分更新應(yīng)用于現(xiàn)有資源。這意味著您只需要發(fā)送要更新的數(shù)據(jù),而不會(huì)影響或更改任何其他內(nèi)容。因此,如果要更新數(shù)據(jù)庫中的名字,則只需發(fā)送第一個(gè)參數(shù)。對(duì)于上面的示例,此參數(shù)是第一個(gè)名稱。PATCH

12

  API 使用者發(fā)送資源 ID

  如果資源存在,則會(huì)部分更新現(xiàn)有資源(并非所有實(shí)體都是必需的)。

  如果資源不存在,則返回 ofHTTP Status Code404 (Not Found)

  成功的請(qǐng)求如果成功更新,則返回 of 或 of。PATCHHTTP Status Code200 (OK)HTTP Status Code204 (No Content)

  5. 為什么 PATCH 請(qǐng)求是非冪等的

  該方法更新資源的一小部分。例如,如果使用請(qǐng)求更新資源,并且未設(shè)置所有字段,則可能會(huì)丟失留空字段中的數(shù)據(jù)。 request 修復(fù)了此問題,因?yàn)樗鼉H更新請(qǐng)求正文中聲明的特定部分。PATCH PUT PATCH

  PATCH請(qǐng)求并不總是保證相同的效果,所以它不是。換句話說,它可能會(huì)影響 的不同部分的更改。idempotent Request URI

13

  在上面的示例中,只需更改用戶資源的名字字段。然后向同一資源發(fā)出請(qǐng)求并修改同一資源的不同字段。Request URI

14

  在前兩個(gè)示例中,在第一個(gè)請(qǐng)求中修改了第一個(gè)姓名字段,在第二個(gè)請(qǐng)求中修改了姓氏字段。結(jié)果,向同一資源發(fā)出了兩個(gè)請(qǐng)求,并在每個(gè)請(qǐng)求上獲得了不同的結(jié)果。

  對(duì)方法的此更改會(huì)根據(jù)要更新的資源部分提供不同的結(jié)果。因此,不是冪等的。PATCH PATCH

  高級(jí)說明: 可以使用 和 HTTP 標(biāo)頭使請(qǐng)求具有冪等性。PATCH ETagIf-Modified-Since

  6. 何時(shí)使用 PUT 和補(bǔ)丁請(qǐng)求

  當(dāng) API 使用者需要完全替換現(xiàn)有資源時(shí),使用者可以使用該方法。當(dāng)使用者想要進(jìn)行部分更新時(shí),他們可以使用該方法。PUT PATCH

  例如,在更新資源的單個(gè)字段時(shí),發(fā)送整個(gè)實(shí)體表示形式可能會(huì)很麻煩,并且會(huì)占用大量不必要的帶寬。在這種情況下,該方法的使用更有意義。PATCH

  7. PUT 和補(bǔ)丁請(qǐng)求之間的差異

  和 請(qǐng)求之間的主要區(qū)別在于服務(wù)器處理發(fā)送的實(shí)體以更新由 標(biāo)識(shí)的資源。發(fā)出請(qǐng)求時(shí),發(fā)送的實(shí)體被視為保存在原始服務(wù)器上的資源的修改版本,并且 API 使用者請(qǐng)求對(duì)其進(jìn)行更改。但是,隨請(qǐng)求一起發(fā)送的實(shí)體具有一組說明,這些說明描述了如何部分修改存儲(chǔ)在原始服務(wù)器上的資源以創(chuàng)建新版本。PUT PATCH Request URI PUT PATCH

  這里要考慮的另一個(gè)重要方面是冪等性。該方法是冪等的,該方法可以是冪等的,但不是必需的。您可以根據(jù)實(shí)現(xiàn)位置選擇一個(gè)或另一個(gè)。PUT PATCH

15

  結(jié)論

  希總結(jié)一下本文,這些方法之間的主要區(qū)別在于冪等的,以及它們?nèi)绾翁幚韥碜?API 使用者的請(qǐng)求。在面試中可能會(huì)問到你這個(gè)問題。

16

  所有 HTTP 方法的范圍和語義

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
深度學(xué)習(xí)模型權(quán)重h5、weights、ckpt、pth有什么區(qū)別?

1.來源框架不同h5格式通常用于Keras和TensorFlow框架,weights用于Darknet框架,ckpt是TensorFlow框架的一種格式,而pth則主要用于PyTorch框架...詳情>>

2023-10-15 00:05:17
大數(shù)據(jù)測(cè)試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測(cè)試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲(chǔ)、MapReduce、實(shí)時(shí)計(jì)算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項(xiàng)目的類文件、資源文件以及依賴庫等...詳情>>

2023-10-14 23:01:49
站群服務(wù)器是什么?

站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個(gè)人擁有,并且經(jīng)常會(huì)互相鏈...詳情>>

2023-10-14 22:46:12
自編碼器是什么?

一、自編碼器原理自編碼器的設(shè)計(jì)靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認(rèn)知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過編碼過程,形成一個(gè)隱藏層的特征表示...詳情>>

2023-10-14 22:41:10
快速通道