本について
タイトル「Webを支える技術」
著者「山本陽平」
2010年初版第1刷発行
Amazonのリンク
内容
Webの発明
Tim Barners-Lee (CERN) (1990)
##RESTの提唱
Roy Fielding (当時大学院生、Webが成功した理由をアーキテクチャの観点から研究)(2000)
##RESTとは
6つのアーキテクチャスタイルの集合体
- クライアント/サーバ
- ステートレスサーバ
- キャッシュ
- 統一インターフェース
- 特定のメソッドを用いて通信できる(GET POST PUT DELETEなど)
- 階層化システム
- コードオンデマンド
- プログラム(Javascriptなど)をクライアントで実行
##URIで使用できる文字
ASCII文字
- , ~ : @ ! $ & ' ( )
(記号のみ抜粋)
##リクエストヘッダ
###Accept-Langageヘッダでクライアントが所望する言語を指定する
Accept-Language: ja,en_us;q=0.7,en;q=0.3
##冪等性と安全性
冪等性とは「ある操作を何回行っても結果が同じであること」
安全性とは「操作対象のリソースの状態を変化させないこと」
GET 冪等 安全
PUT DELETE 冪等 安全でない
POST 冪等でない 安全でない
###注意点
PUTでリソースの内容の想定的な差分を送信すると、PUTは冪等ではなくなる
PUT +50
みたいな変更
PUTでは、そのリソースのなるべく完全な表現を送信するように
##よく使われるステータスコード
9つだけ覚えろ
200 OK
201 Created
301 Moved Permanently
303 See other
400 Bad Request
401 Unauthorixed
404 Not Found
500 Internal Server Error
(記憶が曖昧だったもの網掛け)
##HTTPヘッダ
###MIMEメディアタイプ
Content-Type: application/json
みたいなやつ
###コンテントネゴシエーション
メディアタイプや文字エンコーディングを、サーバーが一方的に決定するだけだはなく、クライアントと交渉して決めることができる手法のこと
Accept: text/html,application/xhtml+xml
みたいなやつ