search
LoginSignup
0

More than 1 year has passed since last update.

posted at

【読書ログ】「Webを支える技術」

本について

タイトル「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 みたいなやつ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0