初めに
こちらの実務未経験エンジニアがLaravel&ReactでWebアプリケーション開発に挑戦してみた!(要件定義・設計編)という記事はご覧になったことはありますでしょうか?
実務未経験・1年目エンジニアとしてポートフォリオ作成に励みました。
今日から、ポートフォリオ作成の過程で学んだことを小出しにして発信していくことにしました。
よろしくお願いいたします。
今日は、超入門ということで、Webサービスがどのような仕組みになっているのかを超ザックリと解説します。
サーバーとクライアント
サーバー
その名の通り、サービスを提供します。
まあ、「すっごいマシン」だと思ってください(最近はクラウド上に展開することが多いですが、難しい話は一旦なしにしておきます)。
このマシンは、お客さんの要望に応じて、何かを見せてあげます。
例えば、Instagramの写真やQiitaの記事です。
クライアント
その名の通り、サービスを受けるお客さんです。
PCやスマートフォンなどの端末上でブラウザと呼ばれるアプリケーションを利用することで、お客さんになることができます。
Google ChromeやFireFox、Microsoft Edge、Safariあたりが有名どころです(近年はスマートフォンが普及してスマホアプリを使う機会が多いですが、「ブラウザの機能がそれらのアプリに内蔵されている」と捉えてもらえればよいかなと思います)。
リクエストとレスポンス
リクエスト
先ほどお話ししたお客さんであるクライアントは、サーバーに対して「〇〇さんが昨日Instagramに投稿した写真を見せてください」と要求することで、スマホ上で写真を見ることができます。
この要求することを、リクエストと呼びます。
そのまま英語にしただけです。
レスポンス
一方で、リクエストを受けたInstagramのサーバーは、「分かりました。これです。どうぞ」と自身の中に保存されている〇〇さんが投稿した写真と一緒にお返事をクライアントに対して送信します。
このお返事のことを、レスポンスと呼びます。
これも、そのまま英語にしただけです。
図解
まとめ
普段僕たちがWebサービスを利用できる仕組みとして、以下の二つがあります。
- クライアントとサーバーという二つの概念がある
- これらが、リクエストとレスポンスをしている
「じゃあ、どうやって遠く離れたクライアントとサーバーがやり取りできるの?」
とか
「なんで世界中のどこにあるかもわからないサーバーにリクエストを送ることができるの?」
とか、そういう疑問もわいてくると思いますが、それはまた別の機会にでも。
