HTTPとは
HTTPはデータをクライアントとサーバー間でやりとりするためのプロトコル(ルール)です。私たちがwebサイトを見るときwebブラウザがほしいwebサイトのデータが保存されているサーバーに対して要求します。サーバーは要求に対して返事を返すといった流れを定めているのがHTTPです。このHTTPがデータをやりとりする上での標準となっているため、私たちは世界中から情報を得ることができます。
HTTPはHyper Text Transfer Protocolと名前がハイパーテキストの転送用プロトコルとなっていますが、実際はテキストだけでなく、画像、動画、音声、PDF、ドキュメントファイル、JSプログラムといったコンピュータで扱うデータ全般を転送することができます。
クライアントとサーバーのやりとり
HTTPではクライアント(webブラウザ)から出したリクエストをサーバー(webサーバー)が処理をしてレスポンスとして返します。これをリクエスト/レスポンス型レスポンスといいます。実際のやりとりとして以下のようになります。
① webブラウザからURLを使用
② URLのリンク情報をもとにデータをwebサーバーに対してデータを要求
③ webサーバーは受け取った要求内容を解析
④ 解析した結果から、必要なデータをwebブラウザへレスポンスとして返答
⑤ webブラウザはwebサーバーから受け取ったレスポンスを解析して、webページとして表示する
クライアント側がしていること
クライアント側が一つのリクエストを送り、レスポンスが返るまでにやっていることを見ていきます。
① リクエストメッセージの構築
② リクエストメッセージの送信
③ レスポンスが返ってくるまで待機
④ レスポンスメッセージの受信
⑤ レスポンスメッセージの解析
⑥ クライアントの目的を達成するために必要な処理(たりないデータを再リクエスト)
このように必要なデータ(画像やリンクなど)が揃うまで①~⑥の流れを繰り返し、最後にブラウザがHTMLを解析してウィンドウに表示します。
レスポンス側がしていること
クライアントが送ってきたリクエストを受けたサーバー側を見ていきます。
① リクエストの待機
② リクエストメッセージの受信
③ リクエストメッセージの解析
④ 適切なアプリケーションプログラムへの処理の委譲
⑤ レスポンスメッセージの構築
⑥ レスポンスメッセージの送信