見出し画像

【サイバーセキュリティ】実は2パターン!HTTPリクエスト行の「パス」

はい、こんにちは。前回記事からの続きです。サイバーセキュリティについて学ぶため、HTTPの仕組みをご紹介しております~。

前回記事では、リクエスト行の1番目の要素である「メソッド」の種類について紹介しました。いろいろありますが、まずはGETとPOSTを知っておけばOKということでした~。

リクエスト行の例

サーバからリソースが欲しいなら「GET」、サーバにデータを受け取ってほしいなら「POST」とするのが基本でした。

今回は、リクエスト行の2番目の要素である「パス」について理解しましょう。単にリソース(htmlファイルとか)の場所を指定するだけでしょう~と思うかもしれませんが、もう少し奥が深そうです。

では、行ってみましょう!

パスの目的は?

まずは、そもそもパスが存在する理由です。

それは、インターネット上に無限のようにあるリソースを特定するためのものです。「このホスト(サーバ)のこの情報をくれ」といった感じに。

「パス」以外の呼び方は?

続いて、このリクエスト行の2番目の要素ですが、実は文献によって呼び方がバラバラです。具体的には、

  • パス(Path;経路)

  • URI(Uniform Resource Identifier)

  • URL(Uniform Resource Locator)

などです。このブログでは「パス」を採用しました。URIというべきか、URLというべきか迷った挙句、「パス」にしたという経緯ですw。

なお、URIは、「URLとURN(Uniform Resource Name)」を含む用語です。ただ、URNについては、あまりお目にかかる機会がなく、「URIとURLは、(だいたい)同じ」と考えて当面差し支えなさそうです。

パスが不完全なのはどうして?

もう一度、パスの例を見てみましょう。

「/site/topics.html」ですね。でも、これよりも左側にあるはずの、ホスト名がないのですけれども。これでは、インターネット上にあるリソースにたどり着けません…。

これはどういうことでしょうか?

実は、ホスト名は、リクエストヘッダーの方に書き込んでおくのです。例えば次のようにです。

GET /site/topics.html HTTP/1.1
Host: www.example.com

Hostヘッダフィールド(後述)で、ホスト名を指定しておくのですね。どうりで何かおかしいと思いました。

でも、別の書き方も存在します。URIをすべて書く方法です。

GET https://www.example.com/site/topics.html HTTP/1.1

人間からすると、こちらの方が見やすい気がしますね。両方知っておくことにしましょう。


はい、本日はここまで~。今回は、リクエスト行のうち、「パス」について紹介しました。「なぜURLの途中からしか記載されてないんだ…」という謎が解けました!

次回は、リクエスト行のうち、3番目の要素、バージョンを見てみましょう!

では。

追記:URLは、ホスト部とパス部に分かれます。下の例でいえば、①がホスト部で、②がパス部です。

「パス」といった場合、基本的にURLの一部である②の部分を指すことになります。このため、URLとパスは指し示している範囲が異なります。

この記事が気に入ったらサポートをしてみませんか?