happy status coding
TRANSCRIPT
Happy Status CodingFor Firefox OSYoshinori Matsumoto
2013/08/31
Happy Status Coding for Firefox OS @ym405nm
ステータスコードって?
ブラウザ サーバ
リクエスト
レスポンス
GET / HTTP/1.1Host: www.yahoo.co.jpUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:23.0) Gecko/20100101 Firefox/23.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: ja,en-us;q=0.7,en;q=0.3Accept-Encoding: gzip, deflate
HTTP/1.1 200 OKDate: Wed, 21 Aug 2013 14:56:09 GMTUNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"Vary: User-Agent,Accept-EncodingExpires: -1Pragma: no-cacheCache-Control: private, no-cache, no-store, must-revalidate
ステータスコード
Happy Status Coding for Firefox OS @ym405nm
主なステータスコード200 OK
404 NOT FOUND正常にリクエストとレスポンスが行われる
存在しないリソースに対してリクエストが行われた
Happy Status Coding for Firefox OS @ym405nm
問題 ~基本編~
403 Forbiddenアクセスが禁止されている
500 Internal Server Errorサーバ内部にてエラーが発生している
503 Service Unavailableサーバが一時的負荷などで使用不可
302 Foundリクエストしたページが一時的に移動している
Happy Status Coding for Firefox OS @ym405nm
主なステータスコード
1xx : 情報提供2xx : 成功 (200など)3xx : リダイレクト (301, 302など)4xx : クライアントエラー (401, 404など)5xx : サーバエラー (500, 503など)
RFC 2616により HTTP ステータスコードは決められている
Happy Status Coding for Firefox OS @ym405nm
問題 ~マニアック編~
101 Switching Protocolsプロトコルを切り替える
204 No Contentレスポンスボディが存在しない
405 Method Not Allowedメソッドが許可されていない
507 Insufficient Storageリクエストを処理する容量が確保できない(WebDAV)
Happy Status Coding for Firefox OS @ym405nm
こんなステータスコードは嫌だ
3xx Bourbon Houseバーボンハウスに転送する(釣りサイト)
4xx Rea-juu Deniedリア充からのアクセス禁止
5xx Fire Project案件が炎上していますので、このエラーはなかったことにしてくれませんか
#こんなステータスコードは嫌だ
Happy Status Coding for Firefox OS @ym405nm
Firefox OS での動き
Firefox OS の標準ブラウザにマイナー(※主観)なステータスコードを入れたらどうなるか?
Happy Status Coding for Firefox OS @ym405nm
その1 101 Switching Protocols
•白い画面が表示される
Happy Status Coding for Firefox OS @ym405nm
その2 204 No Content
•ページ遷移はせずそのまま前のページが表示されたままになる
Happy Status Coding for Firefox OS @ym405nm
その3 408 Request Timeout
•エラー画面が表示される•リクエストを繰り返し送っている
•レスポンス内容は読まれない?
Happy Status Coding for Firefox OS @ym405nm
まとめ
•レスポンスコードは仕様に従って、ちゃんとしたものを返しましょう
•用途と異なったレスポンスコードを返すとレスポンスボディを読んでくれない場合もあります
Happy Status Coding for Firefox OS @ym405nm
参考文献
[1] RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1
http://www.ietf.org/rfc/rfc2616.txt
[2] Defense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
by Chris John Riley on Aug 05, 2013
http://www.slideshare.net/ChrisJohnRiley/chris-johnriley-defensebynumbersdc21