プロジェクトミュー NS-C プレーリー プレーリージョイ リバティ M11 NM11 88.9~90.9 プロミュー 1台分 前後セット

投稿日: 投稿者: ヨコハマ スタッドレス アイスガード シックス アイスガード6 IG60 155/65R14 & ジョーカー マジック 14×4.5 100/4H + 45 ワゴンRスティングレー MH23S 【送料無料】 サマータイヤ ホイール4本セット クリフクライムTC-02 19インチ 8.0J INSET35 5穴 114.3 ブラックポリッシュ NITTO ニットー INVO 245/40R19 アルファード/エクストレイル/MPV...etcuser

プロジェクトミュー レデューラレーシング NS-C プレーリー プレーリージョイ リバティ M11 NM11 スーパーハード(1台分セット)≫ 88.9~90.9 プロミュー 1台分 前後セット

冪等とは、ある操作を1回行っても複数回行っても結果が同じこと、である。

HTTPメソッド

GET・HEAD

GET・HEADが冪等というのは ブリヂストン ブリザック VRX2 2017年製 スタッドレス スタッドレスタイヤ ● 225/55R18 WEDS ウェッズ Leonis レオニス FY ホイールセット 4本 18インチ 18 X 7 +47 5穴 100、納得がいく。

確かに、同じリソースファイルのURLに何度GET・HEADリクエストしようとも RS-R (RS☆R アールエスアール) ダウンサス Ti2000 DOWN 1台分 品番:M632TW マツダ ボンゴフレンディ SGEW 7/6~18/4、リソースの状態は変わらないだろう。

少し引っかかるのは、クライアントに返却されるレスポンスコードは変わるということだ。

GETのレスポンスは、リソースファイルがクライアントでキャッシュされているかによって、200(200)か304(Not Modified)になるだろう。

PUT・DELETE

PUT、DELETEについては疑問が残る。

PUTは、対象のリソースを更新するが ☆ヨコハマ アイスガード iG91 for VANバン・小型トラック用スタッドレスタイヤ 165/80R13 94/93N 4本セット来店用 取付工賃込、リソースがなければ作成する。

DELETEは、対象のリソースがあれば削除するが、リソースがなければ何もしない。

サーバーのリソースの状態を見ると、PUTの場合、1度目のリクエストでリソースが作成され ★オデッセイ【98/11~99/12】【GF-RA5】柿本改マフラー【hyper GT box Rev.】■適合詳細要確認■※代金引換不可※【送付先カーショップ等限定商品】【smtb-TD】【saitama】、

プロジェクトミュー NS-C プレーリー プレーリージョイ リバティ M11 NM11 88.9~90.9 プロミュー 1台分 前後セット

[スウェッジライン] ブレーキホース カプチーノ EA11R 660cc ターボ M/C後を含む スチール/ブラック ※代引不可 ※本州・北海道は送料無料 沖縄・離島は送料別途, ランサーエボ 7 8 9 LSD【クスコ】ランサーエボリューション 7 CT9A (01.2~03.1) MT Spec-F LSD フロント ACD付 Type RS 1.5WAY(1&1.5WAY), 215/65R15 96H DUNLOP ダンロップ ENASAVE RV504 エナセーブ RV504 weds LEONIS VT ウエッズ レオニス VT サマータイヤホイール4本セット, Project μ プロジェクトミュー ブレーキパッド COMP-B GYMKHANA リア ティアナ J32/TNJ32, HKS インプレッサ CBA-GH8 プレミアムサクションキット 【リンクス LYNX】フロントグリル 塗装済み ブラック(202)・ハイパーシルバー ホンダ N BOXカスタム などにお勧め 品番:LY-JF34-FG-####B, SWEAGE-LINE PRO 【スウェッジ ライン プロ】 :フロントブレーキホースキット: 【バイピース】 : 【ステンレス/ブラックホース】 :ZZ-R1100D 93-01: 【STPB661FB】, イデアル トゥルーヴァ極 車高調 アルファード ANH20/GGH20/ATH20 TO-P-ANH20 取付セット アライメント込 IDEAL TRUEVA 極 車高調整キット サスペンションキット ローダウン コイルオーバー【店頭受取対応商品】, グッドイヤー EAGLE イーグル LS EXE サマータイヤ 195/60R16 BLEST Bahnsport Type525 ホイールセット 4本 16インチ 16 X 6 +45 5穴 100, 【送料無料】 F:245/30R20 R:275/30R20 WORK ワーク ジスタンス W10M F:8.50-20 R:9.50-20 NITTO ニットー NT555 G2 サマータイヤ ホイール4本セット フジコーポレーション AutoExe オートエグゼ ストリートブレーキローター フロント 【MDS550S】 デミオ DE5FS

プロジェクトミュー NS-C プレーリー プレーリージョイ リバティ M11 NM11 88.9~90.9 プロミュー 1台分 前後セット:【割引クーポン配布中】KARO/カロ QUEST/クエスト 740、760(左)/7B エステート含む 商品番号:1191 brembo ブレンボ ブレーキパッド リア セラミック スバル フォレスター SF5 00/01~02/03 P78 011N ブレーキ パッド 交換 部品 メンテナンス パーツ ポイント消化

プロジェクトミュー NS-C プレーリー プレーリージョイ リバティ M11 NM11 88.9~90.9 プロミュー 1台分 前後セット.インディゴバッテリー 国産車用 CMF 75D23L 【75D23L】トヨエース(U300~400) PB-XZU336 フーガ[KNY51][H21/11~27/2]下記詳細要確認エスペリア【ダウンサスラバー】フロントリア1台分代引注文不可

15インチ サマータイヤ セット【適応車種:フリード スパイク ハイブリッド(GP3)】HOT STUFF エクシーダー E03 ダークシルバー 5.5Jx15トランパス mpZ 185/65R15 【メーカー在庫あり】 グッドリッジ ビルドアライン フロント ブレーキホースキット 86年-89年 FZR400 ステンレス/スモーク 20633080S HD店

、2度目のリクエストでリソースが更新される。

DELETEの場合、1度目のリクエストでリソースが削除され、2度目のリクエストはリソースが見つからず何もしない。

クライアントへのレスポンスを見ると、PUTの場合、1度目のリクエストで201 (Created)が返され、2度目のリクエストで200 (Ok)が返ってくる。

DELETEの場合、1度目のリクエストで200 (Ok)が返され POSH Faith(ポッシュ フェイス)CB1000R'08-'10 メーターバイザー クリアー[956512]、2度目のリクエストで404 (NotFound)が返ってくる。

つまり、1度目のリクエストと2度目のリクエストで、サーバー側で行われる処理(サーバー内部処理と、サーバーからクライアントへのレスポンス)が異なるのだ。

これでも、冪等(複数回行っても結果が同じ)と言っていいのだろうか?

答え

RFCの定義


4.2.2.  Idempotent Methods

A request method is considered “idempotent” if the intended effect on

the server of multiple identical requests with that method is the

same as the effect for a single such request.  Of the request methods

defined by this specification, PUT, DELETE, and safe request methods

are idempotent.

Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

RFCには、冪等なメソッド(Idempotent Methods)について上記の記述がある。

あるリクエストメソッドを使って、複数回の同じリクエストをした場合、サーバー上の結果が、1回のリクエストの結果と同じである場合、そのリクエストメソッドは「冪等」である。

つまり 、まず「effect on the server」とあるので、クライアントへのレスポンス結果は無視して良い。

そしてサーバーの「結果」に着目すると、PUTの1回目の結果はリソースが存在するし 【USA在庫あり】 プログレッシブ PROGRESSIVE 補修用スプリング 12シリーズ 115/155psi 11.5インチショック用 クローム PS-1375C HD、2回目も結果としてリソースが存在するので、サーバー上の「結果」としては同じ(=冪等)なのだ。

「effect on the server」のeffectを「効果」や「影響」の意味で捉えてしまうと、誤解してしまう。

また、当初の疑問のように、サーバーに通信した「結果」サーバー上で起こること、と捉えると混乱するので、サーバーに通信した後のサーバー上の「結果」と捉えればよい。

「安全」とは?

余談だが、PUT・DELETEは冪等であり「安全」でない、と定義されている。

「安全」とは「read-only」のことだ。

PUT・DELETEは読み込みだけでなく書き込みも行うため、

プロジェクトミュー NS-C プレーリー プレーリージョイ リバティ M11 NM11 88.9~90.9 プロミュー 1台分 前後セット

、当然「安全」ではない。