今更聞けない!Webサイトから先のWebサーバーの仕組みを超わかりやすく解説!

ベビたこ
ベビたこ

Webサイトのリクエストとレスポンスの話はなんとなくわかったけど、実際リクエストを受け取ったり返す時のサーバーの動きってどうなってるんだろーーー!!

てっぱん
てっぱん

たこ、何をそんなことを叫んでるんだい

ベビたこ
ベビたこ

わからないことを夕日に叫ぶとわかるようになるって本に書いてあったんだ

てっぱん
てっぱん

どんな自己啓発本だよ…笑

じゃあ、今回はWebサイトの仕組みの先にあるWebサーバーがどういうふうに動いているのかについて紹介するね。

Webサイトのプログラミングをやる上でも重要な知識だからしっかり覚えておこう!

Webサイトの仕組みをおさらい

まずは前回やったWebサイトの仕組みのおさらいだ。

Webサイトはクライアントと呼ばれる、スマホやパソコン側とサーバー側のリクエストとレスポンスのやり取りで成り立っているという話だったね。

リクエストをクライアントが送って、そのリクエストに沿った処理をサーバーが行って、レスポンスとしてクライアントに送り返す。

送り返されたレスポンスに応じた画面をクライアント側が表示することで、Webサイトが閲覧できてWebサイト上で色々な動作を起こすことができるって話だったね。

情報のやり取りの際は基本的にブラウザを使って、特定のURL(ウェブアドレス)にアクセスすると、そのURLに対応するWebサイトのページが表示されるだったね。

Webサーバーの仕組み

Webサイトの情報は「Webサーバー」と呼ばれるコンピュータに保存されていて、クライアント側がWebサイトにアクセスすると、Webサーバーがその情報を受け取って送信するんだ。

Webサーバーは、HTTP(HyperText Transfer Protocol)という通信プロトコルを使って情報を送受信するよ。

URLの上らへんに「http」とか「https」というのはこれを意味しているんだ。

ブラウザでURLを入力すると、そのリクエストがWebサーバーに送られ、Webサーバーは対応するWebページのデータをブラウザ(クライアント)に送り返すんだ。

今回はそんなWebサーバーが何をしているのか中身を見ていこう。

Webサーバー内で起こっていること

Webサーバー内で起こっていること

Webサーバーでは、リクエストが来るたびに色々な処理が行っているんだ。

たとえば、ユーザーがログインするときには、ユーザー名とパスワードが正しいかをチェックする処理が行われるね。

チェックの後に、正しければログイン完了の画面情報を。

間違ったユーザー名やパスワードだったら、間違っていますよの画面情報を返すんだ。

また、ユーザーが商品を購入するときには、在庫の確認や注文情報の保存などの処理が行われるよ。

商品を購入できたら購入情報をクライアントにレスポンスで返したりする。

これらの処理は、「バックエンド」と呼ばれる部分で行われるんだ。

ベビたこ
ベビたこ

バックエンド?わからない単語が出てきた…!!

てっぱん
てっぱん

大丈夫、そんな身構えなくてもそんな難しい話じゃないからさ。

フロントエンドとバックエンドとDB

Webサーバーは大きく分けて、「フロントエンド」と「バックエンド」の2つの部分で構成されているんだ。

フロントエンドは、ユーザーが直接見たり触ったりする部分だよ。

Webページのデザインや操作性を担当している感じ。

プログラミング言語としては、HTML、CSS、JavaScriptなどの言語が使われることが多いよ。

僕たちユーザー側が目にする画面を担当している処理をする部隊って感じだね。

一方、バックエンドは、サーバー内部で行われる処理を担当しているんだ。

リクエストに応じてデータベース(DB)から情報を取得したり、新たな情報をDBに保存したりするんだ。

プログラミング言語としてはPythonやJava、Rubyなどの言語が使われることが多いよ。

データベースっていうのは、情報を記録しておくところ。

Aさんが何時何分にパソコンを購入した。という情報を記録しておくことができる装置なんだ。

バックエンドというのはこの情報を記録する装置とやり取りしながら、僕たちユーザーの情報を記録したりユーザーに合わせた情報を取得したりする仕組みを司っているんだよ。

ベビたこ
ベビたこ

うーーんと、フロントエンドは画面の表示、バックエンドはデータの記憶屋さんとのやり取り、じゃあその間はどうやっているの?

てっぱん
てっぱん

フロントエンドとバックエンドの間は基本的にデータのやり取りを行っているんだ。

例えばログイン情報を入力してログインボタンを押した時、フロントエンド側はではログインボタンが押されましたよーとバックエンドにお知らせする。

そうしたらバックエンド側はログインボタンが押された時の処理として、ユーザー情報の照らし合わせをデータベースと一緒に実施する。

ログイン情報が合っていれば、「正しいログインでしたよー」ってフロントエンド側に知らせる。

フロントエンドがその情報をもとに次はクライアント側にログイン画面の情報をレスポンスとして返すイメージだね。

図にまとめるとこんな感じで、情報の受け渡しの流れがわかると思う。

ベビたこ
ベビたこ

おー、図にすると一気にわかったよ。Webサイト内の情報の流れが見えやすくなった。

Webサイトのプログラミングっていうのはこれでいうところのどこをやることを意味しているの?

プログラミングはこの関係を作ること

Webサイトのプログラミングっていうのは、フロントエンド部を作ることやバックエンドを作ることを指すよ。

フロントエンドでどんな画面を作るのかデザインなどをプログラミングする。

バックエンド側では、押されたボタンによってどのデータベースとやり取りを行うのかをプログラミングする感じだね。

そして、何より重要なのがフロントエンドとバックエンドを結びつけること。

これもプログラミングの見せ所だよ。

フロントエンドで押されたボタンに沿った正しい処理を行えるように、連携がうまくいくようにプログラミングをしていくんだ。

それぞれを別々に作って組み上げることもできるけど、より簡単にフロントエンドとバックエンドを作るために「フレームワーク」というものも存在するんだ。

「フレームワーク」を使うことで、ある程度決まった型でWebサイトを作り上げることができるんだ。

フレームワークの種類は豊富で、また別にフレームワークについては解説するからそっちで確認してみてね。

まとめ

ベビたこ
ベビたこ

フロントエンドとバックエンド、僕はバックエンドでデータをうまくやり取りするのがプログラミングの醍醐味だと思ったなー

てっぱん
てっぱん

僕はフロントエンドの方がわかりやすくて好きだけど、いいと思うよ!

プログラミングはあくまでやりたいことを実現するための道具だからね。

フロントエンド、バックエンドをあまり分けすぎずに、どっちも学んでいくことがプログラミングの上達方法だから覚えておいてね。

ベビたこ
ベビたこ

はーーい

そういえば!ボクが読んだ本の教えは本当だったね!

てっぱん
てっぱん

どういうこと?

ベビたこ
ベビたこ

夕日に向かってわからないことを叫べばわかるようになるってあれさ!

夕日に叫んだらてっぱんにいちゃんが解説してくれたもん

てっぱん
てっぱん

う…!確かに…!!なんかちょっと悔しい!!

おすすめのプログラミングマンツーマン塾

てっぱん
てっぱん
マンツーマンだから、みんなの前では聞けないことも聞けちゃう!! 今なら無料体験もあるよ!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA