(作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) [電子書籍]
    • (作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) [電子書籍]

    • ¥3,740748 ゴールドポイント(20%還元)
    • すぐ読めます
100000086602574374

(作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) [電子書籍]

土井麻未(著者)
価格:¥3,740(税込)
ゴールドポイント:748 ゴールドポイント(20%還元)(¥748相当)
フォーマット:
専用電子書籍リーダアプリ「Doly」が必要です。無料ダウンロード
出版社:技術評論社
公開日: 2024年11月09日
すぐ読めます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

(作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) の 商品概要

  • Webブラウザは,開発者にとってもユーザーにとっても,もはや日常の一部となっているほど身近なソフトウエアですが,近年のブラウザはあまりにも高機能かつ巨大になってしまったため,その仕組みを詳しく理解することは困難です。そこで,シンプルなブラウザをRustを用いて実装することによって,ブラウザ上でWebサイトを開くまでに何が起きているのかを理解することを目的とします。さらに,作成したブラウザを,別冊で解説・実装している自作OSの上で動かすことによって,ブラウザと更にその裏側を理解していきます。
  • 目次

    第1章:ブラウザを知る ──Webサイトを表示するアプリケーション
    ブラウザの役割❶ ──Webクライアントとしてのブラウザ
    クライアント/サーバモデル
    インターネットとWeb
    ブラウザの役割❷ ──レンダリングエンジンとしてのブラウザ
    Webサイトの構成
    HTML
    CSS
    ブラウザの役割❸ ──JavaScriptエンジンとしてのブラウザ
    JavaScript
    ブラウザAPI
    コアの役割を支えるためのさらなる機能
    ストレージとキャッシュ
    拡張機能
    PWA
    UIにまつわる機能
    マルチプロセスアーキテクチャ
    プロセス
    スレッド
    ブラウザのセキュリティ対策
    サイト分離(Site Isolation)
    同一生成元ポリシー(Same Origin Policy)
    コンテンツセキュリティポリシー(CSP)
    本書のゴール・注意点
    第2章:URLを分解する ──リソースを指定する住所
    URLとは
    スキーム(scheme)
    ホスト(host)
    ポート番号(port)
    パス(path)
    クエリパラメータ(searchpart)
    URLの構文解析の実装
    ライブラリクレートの作成
    実装するファイルの追加
    Url構造体の作成
    parseメソッドの作成
    URLの分割の実装
    parseメソッドの完成
    ゲッタメソッドの追加
    ユニットテストによる動作確認
    成功ケース
    失敗ケース
    テストの実行
    第3章:HTTPを実装する ──ネットワーク通信を支える約束事
    HTTPとは
    HTTPのバージョンの違い
    HTTPの構成
    HTTPクライアントの実装
    サブプロジェクトの作成
    リクエストの構築
    リクエストの送信
    レスポンスの受信
    HTTPレスポンスの構築
    ユニットテストによる動作確認
    成功ケース
    失敗ケース
    テストの実行
    WasabiOS上で動かす
    http://example.comへのアクセス
    テストサーバとのやりとり
    第4章:HTMLを解析する ──HTMLからDOMツリーへの変換
    HTMLとは
    HTMLの構成要素
    DOMとは
    HTMLの字句解析 ──トークン列の生成
    字句解析とは
    トークン化アルゴリズム
    実装するディレクトリとファイルの作成
    HtmlTokenizer構造体の作成
    HtmlToken列挙型の作成
    Attribute構造体の実装
    ステートマシンの実装
    ユニットテストによる字句解析の動作確認
    空文字のテスト
    開始タグと終了タグのテスト
    属性のテスト
    空要素タグのテスト
    スクリプトタグのテスト
    HTMLの構文解析 ──ツリーの構築
    実装するディレクトリ,ファイルの作成
    ノードの構造
    ノードの種類
    Window構造体の作成
    Element構造体の定義
    Parser構造体の作成
    ツリー構築アルゴリズム
    要素ノードの追加
    開いている要素のスタックの管理
    テキストノードの追加
    段落タグ(<p>)の追加
    見出しタグ(<h1>,<h2>)の追加
    リンクタグ(<a>)の追加
    テキストの追加
    ユニットテストによる構文解析の動作確認
    PartialEqとEqトレイト
    Node構造体にPartialEqトレイトの実装
    空文字のテスト
    bodyノードのテスト
    テキストノードのテスト
    複数ノードのテスト
    WasabiOS上で動かす
    メイン関数の変更
    Browser構造体の作成
    Page構造体の作成
    HttpResponseからDOMツリーを作成
    デバッグ用にDOMツリーを文字列に変換
    実行
    第5章:CSSで装飾する ──CSSOMとレイアウトツリーの構築
    CSSとは
    CSSの構成要素
    CSSOM
    レイアウトツリー
    描画
    CSSの字句解析 ──トークン列の生成
    実装するディレクトリ・ファイルの作成
    CssToken列挙型の作成
    CssTokenizer構造体の作成
    次のトークンを返すメソッドの実装
    ユニットテストによる字句解析の動作確認
    空文字のテスト
    1つのルールのテスト
    IDセレクタを持つルールのテスト
    クラスセレクタを持つルールのテスト
    複数のルールのテスト
    CSSの構文解析 ──CSSOMの構築
    実装するディレクトリ・ファイルの作成
    CssParser構造体の作成
    CSSOMのノードの作成
    CSSOMの構築
    ユニットテストによる構文解析の動作確認
    空文字のテスト
    1つのルールのテスト
    IDセレクタのテスト
    クラスセレクタのテスト
    複数のルールのテスト
    レイアウトツリーの構築
    実装するディレクトリ・ファイルの作成
    LayoutView構造体の作成
    DOMツリーの特定の要素を取得する関数の作成
    LayoutObject構造体の作成
    ComputedStyleの作成
    レイアウトツリーの作成
    レイアウトオブジェクトのインスタンス化
    ノードの位置/サイズ情報の更新
    ユニットテストによるレイアウトの動作確認
    LayoutObject構造体にPartialEqトレイトの実装
    テスト用の便利関数の作成
    空文字のテスト
    <body>タグのみのテスト
    テキスト要素のテスト
    bodyがdisplay:noneのテスト
    複数の要素がhidden:noneのテスト
    GUI描画のための準備
    DisplayItem列挙型の作成
    LayoutObjectノードの描画
    DisplayItemの管理
    第6章:GUIを実装する ──ユーザーとのやりとり
    GUIとは
    GUIアプリケーションのウィンドウの作成
    サブプロジェクトの作成
    背景となる白い四角を描画する
    ツールバーを描画する
    UIを開始するメソッドを追加する
    アプリケーションの開始時にウィンドウを描画する
    ユーザーの入力を取得
    マウスの位置を取得する
    マウスのクリックを取得する
    文字を入力する
    ツールバーをクリックして入力を開始する
    マウスを描画する
    アドレスバーからナビゲーション
    Enterキーによってナビゲーションを開始する
    コンテンツエリアをリセットする
    ネットワークの実装をUIコンポーネントに渡す
    ページの内容の描画
    テキストを描画する
    テキストリンクを描画する
    四角を描画する
    WasabiOSの上で動かす
    リンククリックでナビゲーション
    handle_mouse_inputメソッドを更新する
    clicked関数を追加する
    WasabiOSの上で動かす
    第7章:JavaScriptを動かす ──ページの動的な変更
    JavaScriptとは
    インタプリタ,JIT,コンパイラ言語
    動的なページと静的なページ
    ブラウザAPI
    ECMAScript
    JavaScriptの加算/減算の実装
    実装するディレクトリの作成
    トークン列挙型の作成
    JsLexer構造体の作成
    次のトークンを返す関数の実装
    ユニットテストによるレキサーの動作確認
    加算・減算の文法規則
    抽象構文木(AST)の構築
    ユニットテストによるパーサの動作確認
    ランタイムの実装
    ユニットテストによるランタイムの動作確認
    JavaScriptの変数の実装
    変数,キーワード,文字列トークンの追加
    nextメソッドの変更
    レキサーのユニットテストの追加
    実装するBNFの確認
    ASTの変更
    パーサのユニットテストの追加
    ランタイムの変更
    ランタイムのユニットテストの追加
    JavaScriptの関数呼び出しの実装
    レキサーの変更
    レキサーのテストの変更
    実装するBNFの確認
    ノードの追加
    パーサの変更
    ASTのユニットテストの追加
    ランタイムの変更
    ランタイムのユニットテストの追加
    ブラウザAPIの追加
    getElementByIdメソッドのサポート
    textContentによるDOMノードの操作
    WasabiOS上で動かす
    HTTPレスポンスを受け取ったときにJavaScriptを実行する
    テストページの追加
    ローカルサーバの構築

(作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) の商品スペック

シリーズ名 WEB+DB PRESS plus
書店分類コード K350
Cコード 3055
出版社名 技術評論社
本文検索
他の技術評論社の電子書籍を探す
紙の本のISBN-13 9784297145460
ファイルサイズ 13.2MB
著者名 土井麻未
著述名 著者

    技術評論社 (作って学ぶ)ブラウザのしくみ ──HTTP、HTML、CSS、JavaScriptの裏側(技術評論社) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!