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?

【初心者向け】ブラウザの仕組みを「レストランの注文」に例えたら、エンジニアの視界がクリアになった件

1
Posted at

プログラミングの学習を始めて数ヶ月。私たちが書いたコードは、ブラウザを通していとも簡単に画面に表示されます。
最初は「わあ、画面が出た!」と感動するだけでしたが、学習が進むにつれて一つの壁にぶつかりました。

「エラーが出たとき、何が原因で画面が表示されないのかサッパリわからない…」

ブラウザをただの「魔法の箱」だと思っていると、トラブルが起きたときにお手上げになってしまいます。そこで今回は、URLを打った瞬間に裏側で何が起きているのか、その「魔法のタネ明かし」を「レストランでの注文」に例えてざっくり解説してみたいと思います。

この仕組みを知ると、エラー画面を見るのが少しだけ怖くなくなりますよ!

🍽️ 全体像:Web表示までのレストラン見取り図
まずは、全体の流れをイメージしてみてください。

image.png

私たちがURLを打ち込んでから画面が表示されるまで、実は裏側ではこんなにも多くの「スタッフ」が連携して動いているんです。順を追って見ていきましょう。

  1. URL入力 = 「メニューを見て注文する」
    ブラウザのアドレスバーにURLを入力したり、リンクをクリックしたりする行為。
    これはレストランで言うところの、「すみません、このハンバーグ定食をください」と注文票を渡す作業です。
    URLは、あなたが欲しいWebページを指定するための「注文票」そのものです。

  2. DNS(ドメインネームシステム) = 「ウェイターさん(電話帳)」
    URL(例:qiita.com)は人間にとって読みやすい文字ですが、実は厨房(サーバー)には伝わりません。厨房は「IPアドレス(例:192.168.x.x)」という数字の住所でしか場所を特定できないからです。

ここで登場するのがDNS(ウェイターさん)です。
DNSは「えーっと、qiita.comの注文は……第3厨房の192番コンロですね!」と、文字のURLを数字のIPアドレスに翻訳してくれます。

  1. TCP/IP接続 = 「厨房への注文伝達」
    IPアドレスがわかったら、次は厨房との間で通信の準備をします。
    専門用語で「3ウェイ・ハンドシェイク」と呼びますが、要するに「もしもし、聞こえますか?」「はい、聞こえますよ!」「では、今から注文を送りますね!」という事前の確認作業です。いきなり注文を送りつけて迷子にならないための、大切な思いやりですね。

  2. HTTP/HTTPS通信 = 「注文のルールと安全な梱包」
    道がつながったら、いよいよ「HTMLという料理をください!」とリクエスト(要求)を送ります。
    このときの注文のルールがHTTPです。そして、注文内容を誰かに盗み見られないように、鍵付きの頑丈なアタッシュケースに入れて運ぶ安全対策が「HTTPS」(最後にSがつくもの)です。

  3. サーバーからのレスポンス = 「料理の配膳」
    注文を受け取ったサーバー(シェフ)は、リクエストに応じたデータを作って送り返してくれます。これが「レスポンス」です。
    お盆に乗って運ばれてくるのは、こんなデータたちです。

HTML: お肉や野菜などの「食材」

CSS: お皿やパセリなどの「盛り付け(デザイン)」

JavaScript: 鉄板でジュージュー音を立てる「シズル感・動く仕掛け」

  1. ブラウザのレンダリング = 「キッチンスタッフの最終調理」
    ここがブラウザの腕の見せ所です!
    運ばれてきた「食材(HTML)」「盛り付け指示書(CSS)」などをそのままポンと出すのではなく、ブラウザというキッチンスタッフが「DOMツリー」と呼ばれる設計図を頭の中で組み立てて、画面上に綺麗に配置してくれます。
    これでついに、私たちの目の前に美しいWebページが表示されるわけです。

🛠️ 知っておくと強い!エラーコードは「厨房からのメッセージ」
この流れがわかると、よく見るあの憎きエラー画面も、実は厨房からの親切なメッセージだということに気づきます。

image.png

「404 Not Found」

意味: 「お客さん、その料理はうちのメニューにありません(住所間違い・ページ削除)」

対策: URL(注文票)の打ち間違いがないか確認する。

「500 Internal Server Error」

意味: 「厨房でシェフがひっくり返って料理が作れません!(サーバー側のトラブル)」

対策: 自分のPCの問題ではなく、お店(サーバー)側の問題なので復旧を待つ。

おまけ:デベロッパーツール(F12)は「厨房の確認カメラ」
「なんで画面が崩れるの!?」と思ったときは、ブラウザのデベロッパーツール(F12キー)を開いてみましょう。
これは「注文票がちゃんと届いたか」「どんな食材(データ)が運ばれてきたか」を確認できる厨房の監視カメラです。ネットワークタブやコンソールタブを見ると、どこで配膳がストップしているかが一目でわかります。

おわりに
最初は「魔法の箱」に見えていたブラウザですが、裏側ではウェイターさんやシェフが一生懸命バケツリレーをしてくれていると思うと、なんだか愛おしくなってきませんか?

「なんか動かない!」とPCを叩きたくなった時は、ぜひこのレストランの風景を思い出して、どこで注文が止まっているのか推理してみてください。この記事が、同じように学習を頑張る初学者の方のヒントになれば嬉しいです!

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?