がじぇ

お金と家電とプログラミングのブログ

プラウザは何をやっているか?(クライアントとサーバ)

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。




WEBサーバとクライアント


現在のコンピュータシステムはクライアントとサーバというモデルが基本です。
我々が使っているプラウザは上記のモデルでいうとクライアントにあたります。

f:id:gadgeterkun:20191011235929p:plain
wikipediaより


クライアントからサーバに「リクエスト」を送り、サーバはクライアントに対して「レスポンス」を返します。

クライアントがサーバに対して、「どこどこにあるこのコンテンツ(HTML)」を要求し、サーバは
返答しますが、その「どこどこ」という場所を指し示すのがURLになります。

URLは当然場所を指し示すものになりますからインターネット上で一意のものになります。

上記のクライアントとサーバは別のコンピュータであるため、コンテンツのやりとりを行うには共通の通信ルールが必要になります。

その取り決めを通信プロトコルと呼び、WEBサーバとクライアントがやりとりするプロトコルHTTPと呼ばれています。

リクエストとレスポンス

クライアントがリクエストを送り、サーバがレスポンスを返すまでの流れをみていきます。

クライアントで行われること

  1. リクエストメッセージの構築
  2. リクエストメッセージの送信
  3. (レスポンスがかえるまで待機)
  4. レスポンスメッセージの受信
  5. レスポンスメッセージの解析
  6. HTMLの表示(プラウザの場合)

サーバで行われること

  1. (リクエストの待機)
  2. リクエストメッセージの受信
  3. リクエストメッセージの解析
  4. アプリケーションの処理の実行
  5. アプリケーションから処理結果を取得
  6. レスポンスメッセージの構築
  7. レスポンスメッセージの送信

例えばこのブログでいうとクライアント(スマホやPC)は
はてなブログが載っているサーバに対してリクエストを送ります。

リクエストが届いたはてなブログのサーバはhtmlをレンダリングjavascriptを実行するアプリケーションに処理を移譲し、結果のHTMLを取得します。
この際、いくつブックマーク数があるか、などはデータベースを見に行かないとわからないので、アプリケーションはDBから情報を取得し、サーバに返します。

サーバは結果となるHTMLが取得できたらクライアントにその結果を返します。


次はクライアントが送るリクエストの中身、サーバが送り返すレスポンスの中身を詳しくみていこうと思います。


参考文献

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか