1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ブラウザの基礎知識のアウトプットとして記事を書かせていただきます。

ブラウザとは

インターネット上のWEBページを閲覧するためのソフトウェア

ブラウザの種類

・Google Chrome
・Firefox
・Safari
・Microsoft Edge

ブラウザからHTTPの仕組み

ブラウザからHTTPを使用することでWebサーバーと通信を行いWebページやコンテンツを取得したり送信することができる。ブラウザはHTTPを使用してURLを入力したり、リンクをクリックすることでHTTPリクエストをWebサーバーに送信し、Webサーバーはそれに対してレスポンスを返す。
またログインや検索フォームもHTTPを介して行われる。

ブラウザからHTPPレスポンスでWebページが返してきた後に処理順番とは

1 HTTPレスポンスが帰ってくる

2 HTMLが読み込まれる

3 HTMLの解釈してDOMという内部表現に変換します。DOMはHTMLの文章要素(div,h1)タグなどを階層的に表示にする

<!DOCTYPE html>
<html>
<head>
  <title>My Web Page</title>
</head>
<body>
  <h1>Hello, World!</h1>
  <p>This is a paragraph.</p>
</body>
</html>

↓変換される

 Document
  - html
    - head
      - title (テキストコンテンツ: "My Web Page")
    - body
      - h1 (テキストコンテンツ: "Hello, World!")
      - p (テキストコンテンツ: "This is a paragraph.")

4 CSSが読み込まれる

HTML内にlinkやstyleなどを使用してCSSを参照している場合,CSSを再度、Webサーバーにリクエストをする

<!DOCTYPE html>
<html>
<head>
  <title>My Web Page</title>
//↓ここ
  <link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
  <h1>Hello, World!</h1>
  <p>This is a paragraph.</p>
</body>
</html>

ではHTMLにCSSを直書きした方がいいのでは?

HTMLにCSSを直書きするメリット

・HTMLを読み込む時にリクエストが減るのでページの読み込み速度は早くなる

HTMLにCSSを直書きするデメリット

メンテナンスが大変になる

CSSを外部ファイルにするとして参照するメリット

メンテナンスが楽

CSSを外部ファイルにするとして参照するデメリット

HTMLとCSSで読み込みに時間がかかる

5 CSSの解釈

ブラウザはCSSファイルを解釈して,CSSオブジェクトモデル(CSSOM)と呼ばれる内部表現に変換する。CSSOMはHTML文章の要素に適応されるスタイルの情報に表示される

body {
  font-family: Arial, sans-serif;
  background-color: #f0f0f0;
}

h1 {
  color: #007bff;
  text-align: center;
}

p {
  font-size: 16px;
  line-height: 1.6;
}

↓に変換される

- CSSOM
  - Rule1 (body)
    - Property (font-family: "Arial, sans-serif")
    - Property (background-color: #f0f0f0)
  - Rule2 (h1)
    - Property (color: #007bff)
    - Property (text-align: center)
  - Rule3 (p)
    - Property (font-size: 16px)
    - Property (line-height: 1.6)

6 JavaScriptの読み込み

HTML内のscriptで外部JavaScriptのファイルを読み込んでいる際は再度、Webサーバーにリクエストする

7 JavaScriptの解析

JavaScirptファイルを解析(コードをトークンに分割して意味を理解しやすいコードに変換)する

8 抽象構文木(AST)の作成(JavaScriptエンジン中で行われる)

JavaScriptではコードは抽象構文木(AST)と呼ばれる、内部表現に変換される。ASTはコードの構造を木構造で表現してそれぞれのノードが意味を持つ。JSOMを作成する。

function add(a, b) {
  return a + b;
}

const x = 5;
const y = 10;
const result = add(x, y);
console.log(result);

↓に変換

Program
├── FunctionDeclaration (name: "add")
│   ├── Identifier (name: "a")
│   ├── Identifier (name: "b")
│   └── BlockStatement
│       └── ReturnStatement
│           └── BinaryExpression (operator: "+")
│               ├── Identifier (name: "a")
│               └── Identifier (name: "b")
├── VariableDeclaration (kind: "const")
│   ├── VariableDeclarator (id: Identifier (name: "x"), init: NumericLiteral (value: 5))
│   └── VariableDeclarator (id: Identifier (name: "y"), init: NumericLiteral (value: 10))
└── ExpressionStatement
    └── CallExpression (callee: Identifier (name: "console.log"))
        └── Identifier (name: "result")

9 コードを実行

ASTが生成された後にブラウザはASTを元にJavaScriptを実行する。これによりコードが処理され,web上の動的な動作が実現される

10 レンダリング

ブラウザはDOMとCSSOMとJSOMを結合させてHTML文章をスタイリングされたレンダリングツリーに変換する
このレンダリングツリーに基づいて、ブラウザはwebページを表示する

11 Webページの表示

以上がwebブラウザの仕組みです。
ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?