初心者の自分が『Webを支える技術』を読んで、なるほど!と思ったことなどを箇条書きでまとめました。
さまざまなWebの用途
- Webサイト
- 各種デバイスからの設定画面などのインターフェイス
- プログラムからの窓口であるAPI
Webの歴史
Web以前
- 最初はインターネットにWebはなかった
- 起源はARPANET
- TCP/IPとバケツリレーのUUCP
Webの誕生
- CERNのBerners-Lee
- ブラウザMosaic
Webの標準化
- HTTP
- URI
- HTML
- W3C設立
RESTの誕生
- Representational State Transfer
RESTとは
リソース
- Web上に存在する、名前を使ったありとあらゆる情報
- リソースの名前としてのURI
RESTの構成
6つの要素を組み合わせたアーキテクチャスタイル
- クライアント/サーバ
- データストレージの機能のみでよくなる
- ステートレスサーバ
- 実装を簡略化できる
- 修正としてのCookieでのセッション管理
- キャッシュ
- 処理時間を短縮できる
- 統一インターフェイス
- アーキテクチャがシンプルになる
- 独立性が向上する
- 階層化システム
- 負荷分散
- アクセス制限
- コードオンデマンド
- 新しい機能を追加できる
WebはRESTという分散ネットワークシステムの理論があったからこそ成功した。
URIとは
- Uniform Resources Identifier
- 統一リソース識別子
基本構文
- URIスキーム
- ホスト名
- パス
絶対に重複しない
URIの設計
URIの設計指針
- プログラミング言語依存の拡張子を使わない
- 実装依存のパス名を使わない
- メソッド名を使わない
- セッションIDを含めない
- リソースを表現する名詞であること
URIとしての意識
- リソースの名前である
- 寿命が長い
- ブラウザがアドレス欄に表示する
HTTPの基本
HTTPとはTCP/IPをベースにしたプロトコルである。
TCP/IPとは
- 階層型プロトコル
- ネットワークインターフェイス層
- インターネット層
- トランスポート層
- アプリケーション層
HTTPはステートレス
- ステートフル代表はFTP
- スケールアウトさせにくい
HTTPメソッド
- CRUDと対応
ステータスコード
- 1xx: 処理中
- 2xx: 成功
- 3xx: リダイレクト
- 4xx: クライアントエラー
- 5xx: サーバエラー
後半に関しては今と状況が違う部分もあったのでまとめませんでした。
Webの歴史や技術の標準化の流れが生々しく、今のRESTが確立するまでにもたくさんの葛藤があったのが印象的です。
たしかに自分がインターネットを初めて体験した90年代中頃ではネットスケープが強かったり、ブラウザ間の表示が大きく違っていたりでホームページ(当時)を作るのに苦労したなと懐かしい気持ちになりました。
技術の進歩と、きちんとしたRESTやURIやHTTPの定義を改めて学べる書籍でした。