Web Browser Engineering (2021)
(browser.engineering)-
Webブラウザエンジニアリングの紹介
- Webブラウザは日常的に使われているが、その動作原理は複雑。この本は、ネットワーキングからJavaScriptまで、数千行のPythonコードで基本的だが完全なWebブラウザを構築する方法を説明している。
-
序文
- WebブラウザとWebの歴史についての概要を提供している。
-
第1部: ページの読み込み
- Webページのダウンロード
- URLとHTTPリクエストを通じてWebページをダウンロードする方法を説明。
- 画面に描画する
- ウィンドウを作成し、キャンバスに描画する方法を説明。
- テキストの書式設定
- 単語の折り返しと行間の調整方法を説明。
- Webページのダウンロード
-
第2部: ドキュメントの表示
- HTMLツリーの構築
- HTMLをパースして修正する方法を説明。
- ページレイアウト
- インラインおよびブロックレイアウトを適用する方法を説明。
- 作者スタイルの適用
- CSSをパースして適用する方法を説明。
- ボタンとリンクの処理
- ハイパーリンクとブラウザクロームを処理する方法を説明。
- HTMLツリーの構築
-
第3部: アプリケーションの実行
- サーバーへの情報送信
- フォーム送信とWebサーバーとの相互作用の方法を説明。
- インタラクティブなスクリプトの実行
- DOMの変更とイベントへの反応方法を説明。
- データの保護
- Cookieとログイン、XSSとCSRFについて説明。
- サーバーへの情報送信
-
第4部: 現代のブラウザ
- 視覚効果の追加
- ブレンディング、クリッピング、コンポジットの方法を説明。
- タスクとスレッドのスケジューリング
- イベントループとレンダリングパイプラインを説明。
- アニメーションとコンポジット
- GPUを使った滑らかなアニメーションを説明。
- コンテンツのアクセシビリティ提供
- キーボード入力、拡大・縮小、アクセシビリティツリーを説明。
- 埋め込みコンテンツのサポート
- 画像、iframes、スクリプティングをサポートする方法を説明。
- 以前の計算の再利用
- 無効化、編集、正確性を説明。
- 視覚効果の追加
-
結論
- 扱わなかった内容と変化する環境について説明。
-
付録
- 用語集、参考文献、著者紹介、貢献者一覧、この本をもとにした講義一覧を含む。
GN⁺のまとめ
- この本は、Webブラウザの動作原理を理解したい人にとって有用。Pythonを使ってブラウザを構築する過程を通じて、ネットワーキング、HTMLパース、CSS適用などのさまざまな技術を学べる。
- Webブラウザの歴史と現代のブラウザ機能を理解するのに役立つ。特に、Webセキュリティとアクセシビリティに関する内容を含んでおり、実務に応用できる知識を提供する。
- この本はWeb開発者やソフトウェアエンジニアにとって興味深く有益であり、Webブラウザの内部動作を理解するうえで大いに役立つだろう。
1件のコメント
Hacker Newsの意見
「Stuff I didn't do」の部分が、この本の優れている点
15年前にヘッドレスブラウザの開発を始め、SpiderMonkeyを使ってJSインタプリタとして活用していた
この本はMITRE ATT&CKを思い出させる包括的な資料である
ブラウザエンジニアリングがトレンドになっているのは新鮮
著者がPythonを選んだ理由を説明した記事がある
著者の1人が感謝の言葉を述べ、質問に答える準備があるとしている
面白いプロジェクトを探していて、この本を楽しんでいる
このような資料が作られていることは非常に興味深い
ブラウザの内部構造について学んでおり、この本は非常に役立つ
良い本であり、第9章を2つの別々の章に分けることを勧める