Webを支える技術を研修で読んでる まとめ1

輪講形式で読んでいて、気になった点をまとめておく

第1部:Webの概要

  • RPC
    • 分散システムを実現するための技術の1つ
  • 分散システムの流れが来たが、複雑さの問題から発展しなかった
  • Webはシンプルな単方向リンクだけを持つものとして開発
  • SOAP
    • メッセージ転送の方法だけを定めたプロトコル
    • 標準化戦争勃発
  • REST
  • リソース
    • リソースとはWeb上の情報
    • 世界中の無数のリソースは、それぞれURIで一意の名前を持つ
    • URIを用いることで、プログラムはリソースが表現する情報にアクセス出来る
  • RESTなアーキテクチャのために
    • クライアント/サーバ
      • ユーザインターフェースと処理を分離する
    • ステートレスサーバ
      • クライアントのアプリケーション状態をサーバで管理しない
      • ステートフルな場合、Cookieを使ったセッション管理をしている
        • REST的には間違い
    • キャッシュ
      • 一度取得したリソースをクライアント側で使い回す
        • 効率化はできるが、情報の信頼性が下がる
    • 統一インターフェース
      • URIで指し示したリソースに対する操作を統一した限定的なインターフェースで行う
    • 階層化システム
      • サーバとクライアントの間にロードバランサを設置して負荷分散を行う
    • コードオンデマンド
      • ブラウザ以外にクライアント側を拡張出来る
      • プログラムをクライアントにダウンロードして実行する

第2部:URI

  • URIの仕様
    • railsのrouteファイルなどに関わってくるから、ここから大事!
  • URIスキーム
    • http://hogehoge.com
    • httpの部分がURIスキーム
  • URIフラグメント
    • hogehoge/member#user1
    • ページ内の#以下の文字列の要素を示す
  • URIの設計

第3部:HTTP(Hypertext Transfer Protocol)

  • HTTPの基本
    • 階層型プロトコル
      • p69参照
    • 同期型プロトコル(レスポンスを待つ)
    • HTTPメッセージ
      • ヘッダとボディーに分かれている