happy status coding

13
Happy Status Coding For Firefox OS Yoshinori Matsumoto 2013/08/31

Upload: yoshinori-matsumoto

Post on 27-Jun-2015

177 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Happy status Coding

Happy Status CodingFor Firefox OSYoshinori Matsumoto

2013/08/31

Page 2: Happy status Coding

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

ステータスコード

Page 3: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

主なステータスコード200 OK

404 NOT FOUND正常にリクエストとレスポンスが行われる

存在しないリソースに対してリクエストが行われた

Page 4: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

問題 ~基本編~

403 Forbiddenアクセスが禁止されている

500 Internal Server Errorサーバ内部にてエラーが発生している

503 Service Unavailableサーバが一時的負荷などで使用不可

302 Foundリクエストしたページが一時的に移動している

Page 5: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

主なステータスコード

1xx : 情報提供2xx : 成功 (200など)3xx : リダイレクト (301, 302など)4xx : クライアントエラー (401, 404など)5xx : サーバエラー (500, 503など)

RFC 2616により HTTP ステータスコードは決められている

Page 6: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

問題 ~マニアック編~

101 Switching Protocolsプロトコルを切り替える

204 No Contentレスポンスボディが存在しない

405 Method Not Allowedメソッドが許可されていない

507 Insufficient Storageリクエストを処理する容量が確保できない(WebDAV)

Page 7: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

こんなステータスコードは嫌だ

3xx Bourbon Houseバーボンハウスに転送する(釣りサイト)

4xx Rea-juu Deniedリア充からのアクセス禁止

5xx Fire Project案件が炎上していますので、このエラーはなかったことにしてくれませんか

#こんなステータスコードは嫌だ

Page 8: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

Firefox OS での動き

Firefox OS の標準ブラウザにマイナー(※主観)なステータスコードを入れたらどうなるか?

Page 9: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

その1 101 Switching Protocols

•白い画面が表示される

Page 10: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

その2 204 No Content

•ページ遷移はせずそのまま前のページが表示されたままになる

Page 11: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

その3 408 Request Timeout

•エラー画面が表示される•リクエストを繰り返し送っている

•レスポンス内容は読まれない?

Page 12: Happy status Coding

Happy Status Coding for Firefox OS @ym405nm

まとめ

•レスポンスコードは仕様に従って、ちゃんとしたものを返しましょう

•用途と異なったレスポンスコードを返すとレスポンスボディを読んでくれない場合もあります

Page 13: Happy status Coding

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