脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

HTTPステータスコード 2xx 正常系

今更ながら,今後増えてゆくであろうweb api開発時のためにまとめておく。
Restfulでありリソース指向であるものが美しい設計と考える。

200 (OK)
あらゆるメソッドの正常終了

201 (Created)
putでリソースを新規作成した場合。
Locationヘッダはリソースへのパスをポイントしなければならない。

202 (Accepted)
クライアントからの要求をリアルタイムに処理はしないが受け付けたことを示す。
もちろん途中で失敗するかもしれない。
バッチなど非同期処理に使う。

リソース指向な設計では,ジョブ用のリソースを新規作成して,
LocationヘッダにそのURIをポイントする。

203 (Non-Authoritative Information)
使わない。
レスポンスヘッダの一部が自分以外の何かから得たものであり,
正確でない可能性があることを知らせたい?

正直よくわからない。

204 (No Content)
ステータスメッセージもしくはリソースの返却をサーバが拒否したことを示す。
PUT, POST, DELETEに対して返す。

GETに対して返す場合は,リソースは存在してもそれが空であることを示す。
bodyはない。

205 (Reset Content)

あまり使わない。
204と同じだが,クライアントがデータソースをリセットすべきであることを示す。
bodyはない。

206 (Partial Content)
200と同じだが,部分GET用のレスポンス。
クライアントはContent-Rangeを送信する。

レスポンスヘッダにDateが必要。
ETagとContent-Locationはリソース全体を返す場合のものと同じ。
bodyは部分リソース。

207 (Multi-Status)
HTTPのWebDAV拡張。
複数のステータスコードをbodyに付けられるため,
バッチリクエストのレスポンスに使える。
   
bodyはWebDAVボキャブラリ。RFC2518参照。