リア充爆発日記

You don't even know what ria-ju really is.

更新処理のhttp responseステータスには何を返すべきか

method=PATCHな更新処理がサーバサイドにリクエストされ、正常終了したらどのコードを返すか?ということなんだけどね。

別にクライアント側で200台のコード判別したいわけじゃないので、200しときゃあいいんだけど、そうするにも他のコードの用途を知った上でやっとかないとイザという時に役立てないじゃない。

で、201はcreatedだし、203はNon-Authoritative Informationとか意味分かんないし、206はデカイ画像とかストリーミングとかのやつだろ?何がいいんだろう?とドキュメントを読んでみると、202と204がそれっぽいと感じた。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

202がAcceptedで204がNo contentということなので、「更新を受け付けた」といった感じで202が妥当だと思っていたんだけど、202の説明文をよく読むと、

たとえばバッチの受付処理のように、レスポンスを返す時点で処理が完了してないものに用いる

というようなことが書いてあった。


じゃあ、204なのか。と脊髄反射的に思ったが、No contentはNo contentなりの生き様がある。曰く

クライアントがユーザーエージェント(ブラウザと読み替えていいと思う)なら、処理の結果によってドキュメントビュー(HTMLと読み替えていいと思う)を書き換えるべきではない。なぜなら、「No content」の名の通り、そういう必要がないリクエストのために用意されているのだから。

というようなことが書いてあった。


じゃあ、この両方に当てはまらない場合はどうすんのか、200と404と500しか知らないペーペーみたいに200を使えってのか!と思っていると205 Reset Contentが気になり始めた。
曰く

このコードを受け取ったクライアントは、ユーザーが次の入力に速やかに移れるように、フォームをクリアするべきである。そういう用途なので、レスポンスにはエンティティ(更新後のデータなど、そういうものだと思う)は含めてはならない。

というようなことが書いてあった。




そして俺は200を使った。

[rakuten:fishingsanin:10012521:detail]