武書房

GREEのレビュー機能が終わるので今後はこっちに書きます。

Webを支える技術

なんと 2020/11/4 - 2024/4/29 で読了。
お世話になってる人からいわゆる借りパクしてて、もはやいつから読みはじめたかも覚えてなかったのだが、付箋のメモで開始日がわかった。
けっこうな分量の本ですが、誤字や脱字はなく、丁寧に作られた技術書という印象を受けました。

自分の本じゃないから書き込みできない&返さないといけないので、「へぇ~」と思ったとこをメモりながら読んでた。
ので、あんまり意味ないけど時系列を添えて残しとく。

2020年

11月4日

  • 一応開きはしたようだがメモなし

2021年

2月27日

第1部 Web概論

第1章 Webとは何か

第2章 Webの歴史

  • 9 Kernighan カーニハン神からのローマ字あいさつ!
  • 10 Memex by Vannevar Bush
  • 10 Xanadu by Ted Nelson
    「X」付けたかったんかな?
  • 12 Nelson から見るとWebは「不完全なハイパーメディア」。リンクが単方向、リンク切れの可能性があるなどが理由。
  • 14 RPC は Application State 問題がある
  • 15 1993年、Mosaic 誕生!
  • 17 単方向リンクという簡潔さゆえに普及
  • 19 Roy Fielding が博士論文で REST を命名! 知らなんだ。
  • 21 「何の略でもなく単にSOAPである」w
  • 23 否定派からは「RESTはおもちゃ」とまで言われていた

第3章 REST ── Webのアーキテクチャスタイル

  • 26 Client/Server + 制約 = REST
  • 26 アーキテクチャスタイル > アーキテクチャ > 実装 の解説が丁寧
  • 29 Addressability
  • 30 Representation
  • 32 サーバはクライアントの状態を持たない。ステートレス
  • 33 cache => cash => $
  • 34 Uniform Client Cache Stateless Server = UC$SS
  • 35 Uniform Layered Client Cache Stateless Server = ULC$SS
  • 36 Uniform Layered Code on Demand Client Cache Stateless Server = ULCODC$SS
  • 37 ULCODC$SS = REST!!

第2部 URI

第4章 URIの仕様

第5章 URIの設計

  • 59 301 Redirect
  • 60 Content Negotiation
  • 62 Matrix URI
  • 64 Opaque

第3部 HTTP

3月21日

第6章 HTTPの基本

  • 73 クライアント≒ユーザエージェント
  • 74 HTTP は同期型プロトコル
  • 79 ヘッダ+空行+ボディ
  • 82 ハンバーガーショップでアプリケーション状態(≒セッション状態)の説明。わかりやすい
  • 83 Self Descriptive Message

第7章 HTTPメソッド

  • 89 表7.2 POST/GET/PUT/DELETE の行に CRUD 付けたほうが見やすいかも?
  • 93 「ほかのメソッドでは実現できない機能は POST で代用」。キーワードが長すぎる場合など。
  • 95 POST/PUT 使い分け指針
  • 101 べき等と安全性。用語は小難しいが概念は超簡単。

第8章 ステータスコード

  • 111 弾さんブログの紹介w
  • 113 知らない 4xx が来たら 400 と同じ扱いとする

第9章 HTTPヘッダ

  • 126 RFC 822 からのバッドノウハウ。7bit ASCII しか使えないため
  • 132 qvalue メディアタイプの優先順位。デフォルトは1
  • 148 ETag
  • 150 Bエンコーディング
  • 151 HTTPヘッダを使いこなすには、電子メールなどの歴史を調べる必要がある

第4部 ハイパーメディアフォーマット

3月22日

ここが長かった。

第10章 HTML

4月4日

  • 162 ol = ordered list, ul = unordered list かな
  • 172 プログラムにリンクの意味を理解させるための仕組み
  • 172 rel属性 = relation
    略語の元の単語も書いてほしい!

第11章 microformats

6月27日

  • 180 ここから再開(メモなし)

2024年

第4部(承前)

4月8日

第12章 Atom

4月20日

4月28日

第13章 Atom Publishing Protocol

知識の羅列が続いて眠い。

第14章 JSON

やっと楽なとこ来たw

第5部 Webサービスの設計

第15章 読み取り専用のWebサービスの設計

  • 242 WebサービスとWeb APIを分けて考えないことが大切
    p.310 にも同様の記述あり、計3回言ってる。
  • 243 「リソース設計にはまだ一般的な設計手法が存在しません」2010年の執筆当時はということかも?
  • 245 アドレス可能性 > 接続性 > 統一インタフェース > ステートレス性 という優先順位。なるほど
  • 251 XML では「独自フォーマットを作り出さない」ことが重要
  • 267 リソース設計はスキル。身につけられる

4月29日(月祝!)

第16章 書き込み可能なWebサービスの設計

  • 269 ファクトリリソース
  • 273 バルク/パーシャルアップデート
  • 279 リソース状態とセッション状態は別物
  • 290 楽観的ロック (Optimistic Lock) の考え方

第17章 リソースの設計

  • 299 各リソースを自己記述的にするため、あえて正規化を崩す

付録

付録A ステータスコード一覧

  • 319 302 Found 使われなくなった。へー!

付録B HTTPヘッダ一覧

  • 337 Expect ヘッダの用途狭っ。こら実装したくなそう
  • 338 Referer 英語としては Referrer が正しいが歴史的理由でこうなった!w
  • 340 Content-Location => Canonical URI
  • 346 If-Range ヘッダ、Range とセットってのが無理矢理感あってわかりにくいな
  • 359 Alan Kay の有名な言葉で美しく〆!

    The best way to predict the future is to invent it.