情報応用演習Ⅰ(2024)

【T3a】HTTPのやり取りを確かめる(3/5)

プロジェクトタイプASP.NET Core (空)
プロジェクト名T3a
ソリューション名PIT3
ターゲットフレームワーク.NET 8.0(長期的なサポート)
最上位レベルのステートメントを使用しない使用する(チェックオフ)
注意
  • 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
    • 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
    • プロジェクトの作成作業については準備作業を参照せよ.

3a-3. URLのフォーマット

ここで URL について少し詳しく説明しておこう.URLそのものの役割についてはここで説明するまでもないと思われるが, これはWWWにおいて「 リソースの場所 」(≒ファイルやページなどの場所)を指し示すための文字列である.「住所(アドレス)」と言い換えてもよいだろう. 例えば以下のようなものである.

https://www.example.com/path/to/some/file.html?hoge=piyo&foo=bar#quux
URLの例

HTTP同様,URLについても取り決めがあり,そのフォーマットは,RFC3986というインターネット標準で定められている. チュートリアル【T1a】でも少し説明したが, この文字列の各部にはきちんとした意味がある .WWWで使用される いわゆるURLは_に示すいくつかのパート(≒部品)で構成されている.

URLのフォーマット
スキーム://オーソリティパス?クエリ#フラグメント

例えば_のようなURLであれば,各パートは_のように対応する.

URLの例

今回はこのうちスキーム,オーソリティ,パスの意味と役割について簡単に説明しておこう.

スキーム はWWWにおいてはアクセスする際のプロトコルを指定している.よく見かけるhttpや,httpsなどは 「この『場所』にはHTTPの取り決め(プロトコル)を使ってアクセスせよ」ということを指示している(HTTPSは セキュリティのための仕組みであるSSL(参考)という 仕組みの上でHTTPのやり取りをする,ということを意味している).

オーソリティ とは要するに 通信先のコンピューター のことである.たとえば_の例で言えば, オーソリティは「www.example.comという名前のコンピューターへアクセスせよ」ということを表している. 後述するようにこの「オーソリティ」部分にもフォーマットが存在する.

パス はアクセスしようとしているリソース(≒ファイルやページなど)が通信先の コンピューター内のどこにあるのか (≒ファイルの場所),を表している. Windowsなどでいえば "C:\Path\To\Some\File.txt" のようなファイルパスであると理解してよい (ただしWindowsと異なり区切り文字は/であり,また"C:"のようなドライブレターはない).

なお,この「ファイルの場所」は必ずしもその通信先のコンピューターが装備しているストレージの物理的なファイルシステムにおける ファイルパスである必要はない.T1aで試みたように,ファイルシステム内の特定のフォルダ(例えば wwwroot フォルダ)からの 相対パスであってもよいし,ウェブアプリケーションの場合,そのアプリケーションが理解可能ならば実際には存在しないパスであってもよい. このことは ASP.NET Core MVC (というよりもREST1の仕組み)において重要な点である.

さらに オーソリティ についてもその各部は_に示す意味を持つ.

オーソリティのフォーマット
ユーザー@ホスト名:ポート

ユーザー はアクセスするのにユーザー情報を必要とするような場合のものでHTTPにおいてはあまり頻繁には使用されない. ホスト名 はコンピューター名(IPアドレスやドメイン名),ポート は「そのコンピューターのどのTCPポートに接続するのか」を表している. なお,「ポート」とか「TCPポート」という用語に関しては1年次の「通信ネットワーク」や,2年次の「情報基礎実験(ネットワーク実験)」などで 学習しているはずであるのでここでの説明は省略する._にいくつかのオーソリティの例を示す.

オーソリティの例

たとえば今まで ASP.NET Core アプリケーションを動作させると http://localhost:5432/ のようなURLへのアクセスが発生していたはずであるが, このlocalhost:5432の部分は「 "localhost"という名前のホスト(≒コンピューター)の5432番ポート 」を表している.なお, "localhost"という名前は そのコンピューター自身を意味する特別な名前である .「ASP.NET Core ウェブアプリ」タイプのプロジェクトのデバッグ実行は, 当然のことながら Visual Studio を実行しているコンピューター内で実行されているため,http://localhost:5432/ のようなURLは そのコンピューター自身に接続するということを表している.

また_のURLのオーソリティ部分は www.example.com となっており,ポート番号の指定がない. ポート番号の指定がない場合は,アクセス方法(=プロトコル)ごとのデフォルトのポートが指定されたものとみなされる HTTPなら80番ポートHTTPSなら443番ポート にアクセスすることが定められている2

まずはこのURLのフォーマットを頭に入れたうえで次に進もう.


  1. 教科書「Webを支える技術」P.26~ ↩︎

  2. このようなサービスごとに定められているデフォルトの接続先ポートのことをwell-known(うぇる・のうん)ポートという. ↩︎

Last updated on 2024-05-10
Published on 2024-05-10

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.