Webページが表示される一連の流れ

#　はじめに

## この記事のゴール

* **URL**を理解する
* Webページが表示されるまでの流れを理解する
* **静的コンテンツ**と**動的コンテンツ**の違いを理解する

## 目次
[1.URLの意味](#1-URLの意味)
[2.Webページが表示される一連の流れ](#２-Webページが表示される一連の流れ)
[3.静的コンテンツと動的コンテンツ](#3-静的コンテンツと動的コンテンツ)
[4.まとめ](#4-まとめ)

## 1. URLの意味
**URL(Uniform Resouce Locator)**はインターネット上のコンテンツの住所のようなものです。
このURLには

1　どのやり取りの手順で
2　どのWebサーバーに
3　どのコンテンツを取得するか

以上の3つの情報が含まれています。図で示すとこんな感じです![スクリーンショット 2020-11-30 11.32.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/772095/76d37804-417d-f002-e235-fbebcf16fdc0.png)
このURLをもとにブラウザはサーバーから要求するコンテンツを取得していきます。
やり取りの手順には[前回の記事](https://qiita.com/anago1030/items/05c927d410ce74ae0f81)で説明した**HTTP**とHTTPのセキュリティ面を高めた**HTTPS**の２つがありますが**HTTPS**については後の記事で詳しく説明します。

## 2. Webページが表示される一連の流れ
これまでの記事で説明したことをまとめるとWebページの構成と表示される流れは次の通りです

１　Webページは**ハイパーテキスト**で書かれ、HTMLは**タグ**によって文章を意味付けている
2　**ブラウザ**で単語または**URL**で検索しコンテンツを**サーバー**に要求する
3　サーバーは要求されたコンテンツがあればブラウザに返す
4　サーバーから受け取ったハイパーテキストをブラウザが人間用に解釈して画面に表示する

以上の流れでWebページは表示されます。
また。一度の転送で送られるファイルは一つとなっています。
HTMLをブラウザが解釈した結果、画像ファイルや別のWebページのファイルが必要になった場合は再度サーバーに要求します。必要なファイルがすべて揃った時点でブラウザは要求したWebページを画面に表示します。

## 3. 静的コンテンツと動的コンテンツ
###3-1. 静的コンテンツ
まず言葉の意味から整理します。
何度アクセスしても毎回同じ情報が表示されるWebページを**静的コンテンツ**と呼びます。
例えば、企業のHPやブログなどは、いつ訪れても同じ情報を表示する必要があるため、一般的には静的コンテンツで構成されることが多いです。
静的コンテンツは制作者が更新しない限り内容が変化しません。
しかし、Webが普及して閲覧するユーザーの状態や要求に応じて表示する内容を変化させる**動的コンテンツ**の技術が誕生しました。

###3-2. 動的コンテンツ
静的コンテンツに対して、アクセスしたときの状況に応じて表示される内容が変化するWebページを**動的コンテンツ**と呼びます。
例えば、Amazonや楽天市場のようなショッピングサイトは毎回表示される商品は違うし、ユーザーの特性に合わせて商品をレコメンドします。また、ニュースサイトも毎回内容が変化しますね。他にも、掲示板や会員サイトなど動的コンテンツは多様です。

###3-3. 動的ページの仕組み
Webサーバーがブラウザからの要求に応じてプログラムを起動させるための仕組みを**CGI(Common Gateway Interface)**と呼びます。
CGIについては、[CGIとは](https://wa3.i-3-i.info/word112.html)で以下のように説明されています。
> 普通のホームページでやれることは「事前に作っておいたホームページのファイルを渡す」だけです。
誰から注文が来ても同じファイルを渡すことになります。

>一方、CGIの仕組みで返されるページは作り置きではありません。
「このページをおくれ」な注文が来たときに、Webサーバ上にいるプログラムが、その場でホームページのファイルを作って返します。
ホームページのファイルを作るついでに他のお仕事をすることもあるでしょう。

>CGIの仕組みで返されるホームページのファイルは、出来立てホヤホヤです。
お寿司屋さんのお寿司と同じです。

つまり、CGIをとして渡されるコンテンツは要求をされて初めてファイルが作られるので毎回違う内容がユーザー側に提供されるというわけです。

###3-4. サーバーサイド・スクリプト
CGIから呼び出されるプログラムは**サーバーサイドプログラム**と呼びます。
一般的には文字列の扱いに長けた**スクリプト言語**で書かれるのですが、具体的にはPerl、Ruby、Python、PHPなどが挙げられます。

###3-5. クライアントサイド・スクリプト
サーバーサイド・スクリプトに対してHTMLに埋め込まれて、ブラウザ上で読み込まれる際によびだされるプログラムを**クライアントサイド・スクリプト**と呼びます。
主に、Javascriptが用いられます。

## 4. まとめ

* **URL**とは、ネット上のコンテンツの住所である
* Webページはブラウザからサーバーへコンテンツを要求し、渡されたハイパーテキストを解釈して画面に表示する
* **静的コンテンツ**は毎回同じ情報を表示し、**動的コンテンツ**はユーザーの状況によって表示内容を変化させる

以上です。最後まで読んでいただきありがとうございました！
お疲れさまです。。

## 参考文献
この記事は以下の情報を参考にして執筆しました。

- [Web技術の基本](https://www.amazon.co.jp/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E5%9B%B3%E8%A7%A3%E5%BC%8F-%E3%81%93%E3%81%AE%E4%B8%80%E5%86%8A%E3%81%A7%E5%85%A8%E9%83%A8%E3%82%8F%E3%81%8B%E3%82%8BWeb%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%B0%8F%E6%9E%97-%E6%81%AD%E5%B9%B3-ebook/dp/B06XNMMC9S/ref=sr_1_1?adgrpid=71142886531&dchild=1&gclid=Cj0KCQiAqo3-BRDoARIsAE5vnaJxzbiejHm6yNdLYsDiMd0_Pn1KcF8fcEnilP5W26H-u1KQ13NQYIkaAnm4EALw_wcB&hvadid=338577085874&hvdev=c&hvlocphy=1009332&hvnetw=g&hvqmt=e&hvrand=16551898121320693899&hvtargid=kwd-334312951121&hydadcr=15818_11177340&jp-ad-ap=0&keywords=web%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC&qid=1606707204&s=books&sr=1-1&tag=googhydr-22)
- [CGIとは](https://wa3.i-3-i.info/word112.html)