|
||||
|
|
HTTPの基礎知識
|
|
|
HTTPとは?
HTTPとはURI(Uniform Resource Identifiers)という表記(URLもこの統一表記の種類になります)で指定されたリソースをクライアントとサーバの間で転送する事を目的とした単純なプロトコルです。
用語の説明でも述べましたが、ブラウザのアドレスバーにURLを入力するなり、お気に入りをクリックして見たいページを表示していると思います。 この「URLを入力する」「お気に入りをクリック」と言うアクションで、ブラウザは Webサーバとやり取りを行ってページを取得/表示するわけですが、この時にブラウザとWebサーバでどのような手順でやり取りを行なうかを規定しているのが HTTPになるのです。 ブラウザと HTTPサーバではどんなやり取りがされている??
繰り返しになってしまいますが、HTTPとは Webブラウザと Webサーバ(HTTPサーバ)間で要求と応答を送信することでデータをやり取りするプロトコルです。
HTTPは 相手とのコネクション(接続)を確立し、そのうえで「メッセージ」をやり取りすることによって通信を行ないます。 HTTPのメッセージには Webクライアントから Webサーバへ送信される「要求」メッセージと、Webサーバから Webブラウザへ送信する「応答」メッセージの2種類があります。 元々HTTP とは Hyper Text (前述したHTMLファイル)、画像、その他ドキュメント を Transfer(移動/転送)させるための非常に簡単なプロトコルです。そのため転送された HTMLファイルをどのように表示するかは Webブラウザの役割であって、この HTTPプロトコルはそこまでは意識しません。 あなたが WebブラウザのアドレスバーにURLを入力してからページが表示されるまで、どのようなやり取りが Webブラウザ <--> Webサーバの間で行われているか、大まかではありますが下図を参照してください。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 単純にページと言ってしまいましたが、大抵のページが文字だけではなく画像ファイルなど色々なファイルが組み合わさって構成されています。この HTTPは非常に単純なプロトコルなので、どのファイルまをダウンロードした等の状態を維持すると言う概念がありません (これをステートレスと呼びます)。 そのため、一つのページを表示するために、構成されているファイルの数だけこのやり取りを Webブラウザ <-> Webサーバで行っているんです。 ![]() ※現在広く使用されているHTTPのバージョン 1.1では、永続性接続を動作のデフォルトとしています。これは最初に接続し一度のリクエストとレスポンスを終了しても、上図のように都度切断するのではなく、TCP/IPレベルでの接続を維持しておく動作のことです。クライアントがもし続けてリクエストしたい場合には、そのまま次のリクエストを送ることができます。なお、HTTP 1.0で永続性接続を実現するには、「Connection: Keep-Alive」というヘッダ指定をリクエストで行います。このヘッダも下位互換のために残されています。 HTTPサーバの種類
サーバとは 基本的な用語を押さえよう でも少し触れましたが、何らかのサービスを提供するホストの事を意味していて、 ホームページを公開するというサービスを提供するホストを Webサーバ、または、wwwサーバ、HTTPサーバ と呼んでいることもご説明しました。
また、これらはホストだけで実現されているわけではなく、UNIXでは デーモンプロセス、Windowsでは サービス と呼ばれるそのホスト上で動作しているソフトウェアにて処理が行われています。これらのソフトウェアは大抵システムの起動時に起動され、システムが終了するときに終了します。また実行中はほとんどの時間をイベント待ち(接続要求等)のままで過ごすものです。 下記に現在使用されている主な HTTPサーバソフトウェアを挙げてみます。
URLを理解しよう
ブラウザのアドレスバーに表示されているこのページのアドレス(URL:Uniform Resource Locator )を見てください。
※ちなみに URL は URI(Uniform Resource Identifiers) と呼ばれるリソースを特定する手段の形式をさします。 ![]() ブラウザのアドレスバーには上記のように表示されていると思います。下線でそれぞれに名称を付けてみましたが、それぞれ表す意味が異なっているのです。順を追ってどういった意味があるのか見てみましょう。 普段何気に入力している URL ですが、このような事を表しているのか言った事を理解していただけると思います。
これからはホームページを作成するためにすること(Htmlファイルの作成、ファイルの転送)について紹介します。 |