はじめに
Web通信とサーバーについて、とても初歩的なところからまとめた覚書です。
入門②はこちらです。
動的なWebページとは
リクエスト内容に応じて異なるページを表示するWebページのこと。
http通信は基本的にリクエストに対してレスポンスを返すというシンプルなプロトコルなため、初期の段階ではサーバーに設置された静的なページを返す(ブラウザに表示させる)だけでした。
しかし、現在多くのWebページが動的に内容を変更できるようになっています。例えば、買い物かごなどです。
ステートレスなhttp
httpは1つのリクエストに対して1つのレスポンスなので、ブラウザの以前の通信状態(ステート)を維持しません。
例えば、「商品Aを買い物かごへ入れる」という動作をした際、普通であればカートのアイコンの横に1
と表示されているはずです。しかし、ステートレスな状態だと現在このページを表示したブラウザが、「買い物かごへ入れる」という動作をした人と同じかどうかというのが判断できません。そこで利用されているのが、cookie
です。
cookieとセッションID
cookieはクライアント側の状態を維持するための仕組みです。
まずサーバーがブラウザへレスポンスを返す際、cookieを一緒に返します。次にブラウザがサーバーへリクエストを出す際、このcookieも一緒に渡すことで、サーバーはこのリクエストが前回リクエストしてきたクライアントだと判断できる仕組みです。また、cookieはセッション管理にも使われます。セッションIDを発行してcookieとして利用することで、「このセッションIDはすでにログイン済みだから、ログイン後の画面を表示させる」といった動的なページを実現できます。
外部プログラム
サーバーに届いた情報を外部プログラムにデータ渡しし、プログラムを実行、結果をサーバーを通じてブラウザへ返すといった流れで動的なページを実現することができます。
外部プログラムとは、.cgi
となるcgiスクリプトなどです。このあたりに関しては、もう少し勉強が必要…。