Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Webブラウザのお仕事
Search
Hironori Yamada
November 04, 2021
Programming
30
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Webブラウザのお仕事
Hironori Yamada
November 04, 2021
More Decks by Hironori Yamada
See All by Hironori Yamada
コーディングの時間・工数・見積についてのお話
janham
0
84
Webでの通信プロトコルの紹介とこれから
janham
0
25
Other Decks in Programming
See All in Programming
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
R8 の設定見直しでアプリサイズ削減
andpad
0
220
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
GitHub's CSS Performance
jonrohan
1033
470k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
The agentic SEO stack - context over prompts
schlessera
0
970
The World Runs on Bad Software
bkeepers
PRO
72
12k
Leo the Paperboy
mayatellez
10
2.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Transcript
8&#ϒϥβͷ͓ࣄ
͡Ίʹ • 「WEBサイトを閲覧」するとき多くの場合WEBブラウザを使⽤することになる • 今回お話しするのはWEBブラウザを使っているその時、裏側では何が起きているか?に ついて • WEBを主戦場とする仕事をしている以上ぜひ知っておきたいWEBブラウザのお仕事の内 容をなるべく簡単になるよう図を⽤いて説明していく •
これらを知っておくことでひょんな時に問題解決の⽷⼝になったりすることがあるので ぜひ頭の隅に置いていただけると幸いです🙌
None
͜͜ͷ ΤϦΞ
example.com ブラウザでアドレスバーに URLを⼊⼒しEnterを押す DNS サーバー DNS キャッシュ サーバー ブラウザ Operation
System Router ISP キャッシュなし キャッシュあり 次の処理へ(8ページ⽬へ) ルートネーム サーバー ネーム サーバー ネーム サーバー 名前解決 順番に各ネーム サーバーへアクセス してIPとURLを結び つける作業を⾏う その後情報をキャッ シュサーバーへ保存 ① ② ③ example.com || 93.184.216.84 ブラウザにキャッシュが あるかどうかで処理を 分ける 名前解決に失敗
名前解決に失敗したときの表⽰
͜͜ͷ ΤϦΞ
DNS サーバー TCP通信の 初期化 クライアント サーバー SYN SYN ACK ACK
送るよ 受け取ったよ 3Way Handshake :TCP通信の際に使⽤される接続⽅法 ここで外部のサーバーとの安全な通信を確⽴する HTTP リクエスト リクエストライン リクエストヘッダー メッセージボディ GET/HTTP/1.1 Host: client.hogehoge.com User-Agent: Mozilla/5.0 Accept: */* なし 接続先サーバーへの 要求内容の詳細 受け取ったよ 送るよ! グローバルな インターネットへ 通信時に使うお約束事(通信プロトコル)のひとつ その中でも安全性重視の通信⽅法 5$1
͜͜ͷ ΤϦΞ
HTTPレスポンス ステータスライン レスポンスヘッダー メッセージボディ HTTP/2 200 <!doctype html> <html> <head>
<title>ほげほげサイト</title> </head> <body>・・・省略・・・</body> </html> 接続先サーバーからの返ってきた情報の詳細 etag: "de 7-OJQMWJz+xf8wsmQufuQRjAHeH+c” content-type: text/html; charset=utf-8 accept-ranges: none vary: Accept-Encoding X-cloud-trace-context: f3a1f4bba84c09e88367b8d3335822a7;0=1 date: Sat, 06 Mar 2021 13:29:54 GMT server: Google Frontend content-length: 3559 )551εςʔλείʔυ HTTPリクエストの結果を表す3桁の数字 1xx 情報レスポンス 情報が処理中の状態を表す ブラウザ上ではめったに⾒ない 2xx 成功レスポンス リクエストが正常に処理された 状態を表す 3xx リダイレクション リクエストを完了させるために 追加処理が必要な状態を表す 4xx クライアントエラー クライアント(ユーザ)側での操作 や⼊⼒の不備によるエラーの状 態を表す 5xx サーバーエラー サーバー側でシステムエラーが 起きている状態を表す クライアント側では何もできな い 403 Forbidden ファイルやフォルダの閲覧権限が無いなど 404 Not Found Webページが⾒つからない、URLが間違っているなど レスポンス 詳しくはこちら https://www.itmanage.co.jp/column/http-www-request-response-statuscode/
͜͜ͷ ΤϦΞ
ブラウザの 内部での処理 HTTP レスポンス https://www.html5rocks.com/ja/tutorials/internals/howbrowserswork/ 参考 レンダリングの詳細 User Interface アドレスバー
戻る、進む ブックマークメニュー など Browser engine UIとレンダリングエンジンの間の処理を整理 Rendering engine 要求されたコンテンツの表⽰を担当 Networking HTTP リクエストなどのネットワークの呼び出しに使⽤ JS Interpreter JavaScript コードの解析と実⾏に使⽤ UI Backend 基本的なウィジェットの描画に使⽤ Data Persistence ブラウザ内のデータベース 保存されたパスワード Cookie Session などはここに記憶
WEBページの レンダリング Rendering engine HTMLを解析(パース) CSSをパース 画像ファイルなど JSをパース HTMLのパース完了 遅延読み込み設定のJSをパース
CSSOMを作成 DOMの作成 DOMの作成完了 レンダリングブロックが 起きるので、サイトの 表⽰スピードを左右する プロセス 0.: Object Modelの略 ここではプロパティをツリー状に マップしたものを指す https://coliss.com/articles/build-websites/operation/work/how-the-browser-renders-a-web-page.html https://www.html5rocks.com/ja/tutorials/internals/howbrowserswork/ 参考 これらをブラウザ で処理 8&#αΠτ͕ݟΒΕΔʂ
(0"-