本記事の内容
Webを支える技術を読んだ際のノートのようなものです。
省略している部分もあり、書籍の内容を完全に要約するものではありません。
今回は第8章あたりの内容です。
ざっくり仕様
RFC 9110で定義されている。
- 1XX系 処理中「今やってるで」
- 2XX系 成功 「やったで」
- 3XX系 リダイレクト「あっちやで」
- 4XX系 クライアントエラー「やめーや」
- 5XX系 サーバーエラー「しんだわ」
という大まかな分類がある。
それぞれ1〜99まで定義されてるわけではなく、余っている番号があるので
サーバー側の実装者が独自に余っている番号を使う場合もある。
そういう場面でも上記のルールに従っていれば、知らないステータスコードでも100の位で雰囲気を掴むことができる。
(逆に言うとこれを無視した番号付けはやめましょう)
詳しくはIANAを見よう。
よく見るコードたち
200系
- 200 OK
- 201 Created
300系
- 301 Moved Permanently
- 303 See Other
- POSTで操作→GETで取得
400系
- 400 BAD Request
- 401 Unauthorized
- 404 Not Found
Bodyは好きにしてよい。
プロトコルはクライアントのAcceptヘッダ等で合わせてやる。
500系
- 500 Internal Server Error
- クライアント側は未知の500系のステータスコードが返却された場合、これと同じとみなして処理するのが一般的
- 503 Service Unavailable
こちらもBodyは好きにしてよい。
余談
エイプリルフールRFC
RFC 2324 Hyper Text Coffee Pot Control Protocol
コーヒーポットを制御するためのプロトコル。
大真面目に仕様がまとめられていて、418 I'm a teapot
(コーヒーポットじゃないですティーポットです私)というステータスコードが定義されていたり、
拡張リクエストメソッドとしてBREW
メソッドがあったりする。
なんならRFC 7168で更新されてるらしい。
全然使う機会はなさそうだけど、今度ちょっと全文読んでみよう...