![見出し画像](https://assets.st-note.com/production/uploads/images/112040252/rectangle_large_type_2_945fb2a124202ba9f574502b0a204263.png?width=1200)
【サイバーセキュリティ】実は2パターン!HTTPリクエスト行の「パス」
はい、こんにちは。前回記事からの続きです。サイバーセキュリティについて学ぶため、HTTPの仕組みをご紹介しております~。
前回記事では、リクエスト行の1番目の要素である「メソッド」の種類について紹介しました。いろいろありますが、まずはGETとPOSTを知っておけばOKということでした~。
![](https://assets.st-note.com/img/1690661840454-66kVcPaMnm.png)
サーバからリソースが欲しいなら「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は、(だいたい)同じ」と考えて当面差し支えなさそうです。
パスが不完全なのはどうして?
もう一度、パスの例を見てみましょう。
![](https://assets.st-note.com/img/1690662792021-YrKKYD93rM.png)
「/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は、ホスト部とパス部に分かれます。下の例でいえば、①がホスト部で、②がパス部です。
![](https://assets.st-note.com/img/1690876449457-1P75tVKEWk.png)
「パス」といった場合、基本的にURLの一部である②の部分を指すことになります。このため、URLとパスは指し示している範囲が異なります。
この記事が気に入ったらサポートをしてみませんか?