こんにちは、ピクピクあやかです!
こちらの記事では、webエンジニア向けにエンジニア向けに、
URLってこういうことなんだよっと書いていこうと思います。
URL自体に疑問を持つことも少ないかと思います。(私はそうでした…)
物心ついた時から、インターネットが身近にあり、URLを入力して検索するだなんて、当たり前過ぎて疑問を持つ余地もなかったから。
でもあなたはwebエンジニア。
URLについてちゃんと理解していて損はない、むしろマスト。
この記事で、少しでもURLを理解しているエンジニアが増えることを願います。
(なんて偉そうに言ってるけど、私がURLちゃんと理解できてなかったから備忘録なんだけどね☆)
URLってなんやねん
一言でいうと…どのサーバーの、どこにアクセスするかのパスを表している。
これに尽きます。
ブラウザにURLを入力した時、そのサイトが表示されますよね。
それは、webサーバーのこのパスにアクセスしてね、とブラウザにお願いしているのです。
どこら辺がお願いしてるのか全然わからないー
ちょっと、URLを解剖してみます。
そうしたら、もう少し理解しやすいと思います!
URLを解剖してみる
例えば、あなたが今読んでいるこのサイトのURLは、「https://pikupiku-ayaka.com/infra/214」です。
このURLは、次の4つに解剖することができます。
これらを簡潔に説明すると…
(1) httpsプロトコルを使って…
(2) 右記のサーバー、つまり…
(3) pikupiku-ayaka.comの…
(4)infra/214/に…
アクセスしてください!
…という意味です!
もう少し踏み込んで、それぞれ説明します。
(1) httpsプロトコルを使って
URL、これはブラウザに入力することが一般的です。
なので、http または https以外を目にすることはほとんど無いと思います。
ただ、ブラウザは実はあなたが思っているよりも優秀でですね…
http / https 以外の入力もできるんです!
まず、http / httpsというのは、このプロトコルを使ってどの種類のサーバーにアクセスしに行くのかを指定しています。
あなたがブラウザでURLを入力する時は、大体、「このサイトみたいな〜」「調べたいな〜」という時だと思います。
つまり、webサイトを表示しようとしている訳なので、サーバーの種類は、webサーバーを見に行くことになるのです。
webサーバーに見に行くなら、http / httpsプロトコルを使うというのが今となってはお決まりなので、
「どのプロトコルを使ってどの種類のサーバーにアクセスしに行くのか」という指定は、
「http://」というのが一般的なのです。
もし、webサイトつまりwebサーバーではなく、FTPサーバーを見に行って欲しいなら、
ブラウザのURLに、「http://」ではなく「ftp://」と記述すれば見に行ってくれます。
FILEサーバーを見に行って欲しいなら、「http://」ではなく「file://」と記述すれば良いのです。
つまり、私たちが、「https://」と記述しているのは、「webサーバーを見に行って欲しい」とお願いしていることと同義なのです!
(2) 右記のサーバー、つまり…
URLの中の「://」は、「右記がサーバーにあたるよ〜」という目印です。
例えば、https://pikupiku-ayaka.com/であれば、「pikupiku-ayaka.comがサーバー名だよ〜」という意味合いです。
(3) pikupiku-ayaka.comの…
「://」の右、今回でいうところの「pikupiku-ayaka」というサーバーにアクセスしてほしい、ということを指示しています。
サーバーに名前ってついてるの??
「webサーバー」とかよく聞くけど、その一種??
(1) で記載した通り、http または httpsのプロトコルを使っているので、webサーバーにアクセスしにいきます。
なので、pikupiku-ayakaはwebサーバーではあるのですが、
「pikupiku-ayaka」は正確にはドメインなだけで、webサーバーではないのです…。
全く意味がわからん
ですよね…。私も言っていて微妙だなーと思ってました。
ちなみに、サーバーがそもそもよくわからんという人にはこの記事でわかりやすく書いたので是非読んでみてくださいね(^^)/
つまりは、「このサーバーにアクセスしてね!」ということを伝えたい部分が、この(3)にあたるんです。
そして「このサーバー」という表現の仕方として、
私たち人間にわかりやすい、ドメインという形で指定しているわけです。
このドメインはこの記事でやると趣旨とずれてしまうので、別の記事で書きますね!
(4) infra/214/に…
(3) で「pikupiku-ayaka」というサーバーの指定をしていますが、
その中の、どのファイルにアクセスするのかを指定しています。
あなたのPCの中にも、たくさんファイルが保存されているかと思いますが、
1箇所のディレクトリに全てが保存されているのではなく、
いろいろなディレクトリにいろいろなファイルが保存されていますよね。
サーバーも同じです。
webサーバーの中の、どのディレクトリのどのファイルなのかを指定しているのです。
この例でいうと、「pikupiku-ayaka」というサーバーの中の、
「infra/214/」のディレクトリにアクセスしてくださいということです。
ディレクトリの指定だけでファイルの指定が無い場合は、
そのディレクトリの中のindexファイル(デフォルト指定されているファイル)を参照することになっています。
ですので今回の場合でいうと、「infra/214」ディレクトリにあるindexファイルを参照してねということです。
そういう意味でいくと、このURLの書き方はちょっと変です。
「http://pikupiku-ayaka.com/hoge」
上記のURLだと、参照先は「hogeディレクトリ」なのか「hogeというファイル」なのかわかりません。
末尾に「/」があったら、ディレクトリだと分かるのですが、無いので、ディレクトリでは無さそうだと判断されます。
ですのでこの指定でアクセスがあった場合は、「hogeというファイルがあったらそれを参照し、無かったら、hogeディレクトリの中にあるデフォルトファイルを参照する」ということになっています。
URLを入力すると、何が起きてるのか
上述したことのまとめになりますが、
入力したURLに基づいて、特定のwebサーバーの、特定のパスにアクセスしにいく、
ということが起きています。
ITエンジニアではない方でしたら、ここまで知っていれば十分だと思います。
ただ、きっとあなたはITエンジニアです。(ちがってたらすみません)
もう少し深く知っておくべきです。
それは、「アクセスしにいく」といっても、
何をしにアクセスするのか、の種類があるということです。
アクセスの種類として、GETなのかPOSTなのか、DELETEなのか等を、HTTPメソッドで管理しているのです。
ここまで広げると、この記事の趣旨からどんどん広がってしまうので、
また別の記事で書きたいと思います。
本記事がわかりやすいと思ったなら乞うご期待!w