SoLA2-TechBlog

退屈な作業はプログラムに任せましょう!日々の作業に少し工夫を足すだけであなたの時間はもっとクリエイティブになる。

専門用語少なめ!HTTP入門-URLとURI【基礎知識シリーズ】

f:id:gootor3030:20180823224524j:plain

概要

皆さんこんにちは、SoLA2です。

基礎知識シリーズ第3回目です。今回のテーマはURLとURIについてです。実を言うとシステム開発をする段階では、あまりURIやURLの知識が必要になることは無いのですが、見積り作成や、要件定義の段階でインフラエンジニアと相談する際に、抑えておきたい部分ではあります。

URIとURLについて

URIとURLってすごく似ていますね。実はURNなんてものもあったりします。これらの違いについて説明しようと思ったのですが、わかりやすい例えをしている記事があったのでそちらを御覧ください。
qiita.com

上記の記事にもあるように、URIはURLやURNの総称です。URLは対象の場所を一意に特定する、いわばインターネット上の住所ということですね。そのため、URLの事をアドレスなんて呼んだりもします。

URLを構成する要素

WEBアプリケーションを開発する上で、URLを構成する要素について理解する事は、必須となります。インターネットには無数のURLが所狭しと存在している訳ですが、これらURLは無秩序な文字の羅列というわけではありません。実際にいくつかURLを並べてみましょう。

いくつか共通点が見えてくると思います。まずURLの先頭から「://」までの区間ですが、上記の例では、全て「HTTPS」となっていますね。この部分はプロトコル(規約)を意味してます。ですので、上記の例にはありませんが、HTTPS以外にも、HTTPであったり、FTPなんかが存在します。

次に「://」以降最初の「.」まではホスト名を表しております。ホスト名は省略されることもあります。上記の例でいうと「著者TwitterのURL」はホスト名が省略されております。そして最初の「.」から「:」までの部分をドメインと呼んでおります。

・・・あれ?上記の例には「:」なんてないぞ!と思われるかも知れません。これはその次の要素であるポートが省略されているためです。ちなみにURLの最初の要素はプロトコルを表していることは前述しましたが、プロトコルが決まると、一般的に使用するポートも決まります。

この一般的に使用するポートの事を、ウェルノウンポートと呼びます。URI上で、ポートが省略されている場合は、ウェルノウンポートを使っていることを意味しています。

ポートは「:」から次の「/」までです。「/」以降はパスと呼ばれる部分で、サーバ内のどこに対象が配置されているのかを表しています。このパスで指定した場所にファイルが存在しない場合は404 NotFoundが返ってくるというわけです。

ドメイン名

ドメイン名は、インターネット上の場所を特定するためのものです。場所を特定するための名前なので、ドメイン名はインターネット上で一意の値となる必要があります。そのためドメインを新たに取得する場合は、ドメインを管理している組織に申請する必要があります。

余談ですが、ドメインは「.」を堺に右に行く程、範囲が大きくなります。一番右側はトップレベルドメイン(.comや.jpなど)と呼ばれます。日本の住所は最初に書く方が、範囲も大きいので違和感があるかも知れませんが、海外の場合は、右に行くほど範囲が大きくなるので、それが踏襲されたのでしょう。

ポート番号

サーバにもタワーマンションのように、多数のコンピュータがサーバの配下に存在するケースがあります。その場合、ポートはマンションの玄関を番号で表したものと言えるでしょう。通信はどの玄関から出てきて、どの玄関へ入るのかをポート番号で管理しています。

WEBアプリケーションの開発では基本的にウェルノウンポートを使うので、あまりポート番号を意識する必要はありません。とはいえ、セキュリティを考慮して一般とは違ったポートを使用する際や、ローカル開発環境でテストをする際に時々必要になる概念なので覚えておきましょう。

まとめ

いかがだったでしょうか。今回はURLとURI(とは言ってもほとんどURL)について学びました。少し細かい内容で、若干実践的ではなかったですが、インフラエンジニアと会話する際には、知らないとお話にならない内容なので、是非抑えておきましょう。

ではまた。