簡単に言えば、私はユーザとしてサインアップしてデータを追加できるウェブサイトを持っています。現時点では、特定のデータを一度追加するだけですので、加算は冪等でなければなりませんが、理論的には同じデータを複数回追加できます。私はここには入りません。非冪等のリクエストにGETを使用する
RFC 2616によると、GET要求は冪等でなければなりません(本当に無能)。私は、ユーザーが訪問
http://example.com/<username>/add/?data=1
ような何かをできるようにしたいそして、これは、そのデータを追加します。 PUTリクエストにはRESTでこれを行うことは意味がありますが、ブラウザでPUTリクエストを行う方法はわかりませんし、ほとんどの人がやりたいと思っていることは疑いの余地はありません。 POSTを使用しても適切ですが、これにも同様の問題があります。
ユーザーがGETのみを使用してデータを追加できるようにする技術的に正しい方法がいくつかあります(手動でリンクにアクセスしたり、外部のウェブサイトにリンクを使用させるなど)。彼らがこのページにアクセスしたとき、私は自分のPOST/PUT要求をjavascriptまたはcURLで作ることができましたが、これは依然として冪等のGETリクエストの精神に違反しているようです。
つまり、私は単にこれを行うべきではありませんか? –
@ tandu - 仕様(と私)はどちらもあなたがしてはならないと言っています。しかし、あなたが仕様に反するとHTTP警察はあなたのドアをノックすることはありません(私は彼らがとにかくそう思わない)。それを行うことの潜在的な結果に気をつけてください。 –