<<第13回:Webサイトはどのようにできているか?【HTMLファイル・スタイルシート・CSS・ハイパーテキスト】
この記事のポイント
- WebサイトのアドレスはURLと呼ばれる
- URLは転送してほしいWebサーバとそのファイルをあらわしている
Webサイトのアドレス
URLとは
Webサイトのアドレス
ここまで解説しているように、Web サイトはHTML ファイルとして作成しているWebページの集まりです。そして、Webサイトを見るときにはWebページのHTMLファイルをダウンロードしてWebブラウザで表示しています。Webサイトを見るためには、いったいどのWebページのファイルを転送してほしいのかを示さないといけません。転送してほしいWebページを指定するのがWebサイトのアドレスです。
URLの意味
Webサイトのアドレスは主に「http://」で始まる文字列でURL(Uniform Resource Locator)(※3)と呼ばれています。Resource は「ファイル」の意味でURLによって「転送してほしいファイル」を指定しています。
URLは、「https://vpn.taikutsu-mccartney.com/public-key-cryptography/index.html」のように書きます。最初の http はスキームといいWebブラウザがWeb サーバのデータにアクセスするためのプロトコルをあらわしています。普通は、httpですがhttpsやftpなども利用されることがあります。コロン(:)の後ろがファイルの場所を示し、//は、そのあとに続く部分がホスト名であることを示しています。Webサーバヘアクセスする際には、DNSによってホスト名からIPアドレスへの名前解決が必要です。
ホスト名のあとには、ポート番号が続くことになっていますが、たいてい省略されます。省略されている場合、スキームのプロトコルのウェルノウンポートになります。ホスト名の後ろの部分がWeb サーバ内のどこに目的とするファイルがあるかを指し示すパスをあらわしています。
このURLは「vpn.taikutsu-mccartney.com」というWebサーバがインターネットに公開しているディレクトリ「public-key-cryptography」内の「index.html」というファイルを「HTTP」で転送するように要求しています。
(※3)なお、正式にはURI(Uniform Resource ldentifier)ですが、URLといいう表現が広く一般的に使われています。
Webサイトのファイルをリクエストする
次の項目のポイント
- WebブラウザとWebサーバアプリケーション間でHTTPを利用して Webページのファイル転送を行う
- HTTP のやりとりの前にWebブラウザとWebサーバアプリケーション間でTCPコネクションを確立する
- HTTPリクエストでWebブラウザからWebサーバアプリケーションヘファイル転送をリクエストする
HTTPとは
HTMLファイルの転送
Webサイトを構成するHTMLファイルを転送するためにHTTP(HyperText Transfer Protocol)を利用します。HTTPはそのまま解釈すると「ハイパーテキストを転送するプロトコル」です。ただ、HTTPはHTMLファイルに限らず、さまざまな種類のファイルを転送する汎用的なプロトコルとしても利用できます。JPEGやPNGなどの画像ファイルはもちろん、PDFやWORD、EXCELなどの文書ファイルの転送も可能です。
HTTPでのファイル転送は、HTTPリクエストとHTTPレスポンスのやリとりで行います。HTTPはトランスポート層のプロトコルとしてTCPを利用するので、HTTPのやりとりを行う前にTCPコネクションを確立します。
HTTPリクエスト
Webブラウザから Webサーバアプリケーションへ送信されるHTTPリクエストは、リクエスト行、メッセージヘッダ、エンティティボディの3つの部分に分けられます。メッセージヘッダとエンティティボディの間には空白行があります。
リクエスト行は、HTTPリクエストの1行目で、Webサーバに対する実際の処理要求を伝えます。リクエスト行は、さらにメソッド、URI、バージョンで構成されています。メソッドは、サーバに対する要求をあらわしています。
最もよく使われるメソッドはGETです。WebブラウザでURLを入力したり、リンクをクリックしたりするとGETメソッドのHTTPリクエストをWebサーバアプリケーションへ送信することになります。メッセージヘッダはリクエスト行に続く複数行のテキスト列です。ここでは、Webブラウザの種類やバージョン、対応するデータ形式などの情報を記述しています。メッセージヘッダのあとは空白行で区切り、そのあとにエンティティボディが続きます。エンティティボディは、POSTメソッドでWebブラウザからデータを送るときに使われます。
Webサイトのファイルを転送する
次の項目のポイント
- HTTPリクエストに対してHTTPレスポンスで返事を返す
- HTTPレスポンスには転送するべきファイルが含まれる
- ファイルサイズが大きいとTCPによって分割される
HTTPレスポンスとは
リクエストに返すHTTPレスポンス
HTTPリクエストに対してHTTPレスポンスを返します。HTTPレスボンスは、HTTP リクエストと似た構成でレスポンス行、メッセージヘッダとエンティティボディから構成されています。
レスポンス行は、さらにバージョン、ステータスコード、説明文に分かれています。バージョンは、リクエストと同じくHTTPのバージョンを示し、現在主なバージョンは1.0か1.1です。ステータスコードはリクエストに対するWebサーバアプリケーションの処理結果をあらわす3桁の数字です。ステータスコードには、多くの種類があり、表のように百の位で大まかな意味が決まっています。
説明文とは、ステータスコードの意味を簡単に示したテキストです。
Webサーバアプリケーションが返すステータスコードで一番多いのは「200」です。ステータスコード200はリクエストを正常に処理できたということをあらわしています。しかし、リクエストが正常に処理されればWebブラウザにはリクエストした内容が表示されるので、ステータスコード200そのものをユーザが目にすることはまずありません。
Webブラウザを利用しているユーザが誰でも一度は目にしたことがあるステータスコードは、おそらく「404」でしょう。URLを間違えてしまったりWebページが削除されていたりすると、Webサーバはステータスコード404を返します。ステータスコード404を受け取ると Web ブラウザでは「ページが見つかりません」といった表示になります。
メッセージヘッダは、Webサーバアプリケーションが、より詳細な情報をWebブラウザに伝えるために利用します。例えば、データの形式や更新された日付などが記述されます。
そのあとに区切りの空白行があり、空白行のあとにエンティティポディ入ります。エンティティポディに Web ブラウザに返信すべきデータ入ります。Webブラウザに返信するデータは、主に HTML ファイルです。
>>第15回:Webサイトにアクセスしたことを覚えておく【HTTP Cookie・クッキー・プロキシサーバ・URLフィルタリング・Webフィルタリング】