Open6
URLについて理解したい
個人開発でCORSエラーとかで詰まったりしたから備忘録としてまとめる
URLとは
-
Uniform Resource Locator
の略で、インターネット上の固有のリソースのアドレスのこと。 - 理論的には有効なURLは一意のリソースを指している(例外もあり)
URLの構造
上記画像にあるように
- スキーム
- ドメインネーム(ホスト + ドメイン)
- ポート番号
- パス
が基本構造。
必要であれば
- パラメータ(引数)
- アンカー
も付与される。
スキーム
URL の最初の部分はスキームで、ブラウザーがリソースをリクエストするために使用するプロトコルを示します(プロトコルとは、コンピューターネットワーク上でデータを交換または転送するための一連の手順です)。通常、ウェブサイトのプロトコルは、 HTTPS または HTTP (保護なしバージョン)です。しかし、ブラウザーは mailto: (メールクライアントを開く)のような他のスキームを処理する方法も知っているので、他のプロトコルを見かけても驚かないでください。
- URLの先頭部分のこと。
:
や//
は含まない。 -
http
,https
,ftp
など通信手段を示す情報。
→つまりプロトコルを明示している
一般的なスキームの種類
スキーム名 | 用途 |
---|---|
http | 標準的なWebページアクセス |
https | 暗号化されたWebページアクセス |
blob | 大規模なバイナリーオブジェクト。メモリに存在する大規模オブジェクトへのポインター |
data | URLに直接埋め込まれたデータ |
ftp | ファイル転送 |
mailto | 電子メール送信先指定 |
file | ローカルファイルシステムへのアクセス |
javascript | URLに埋め込まれたJavaScriptコード |
ssh | Secure shell |
参考文献
オーソリティ
- ドメインネーム + ポート番号の組み合わせのこと
- そもそもドメインネーム自体も、
www.example.com
だとしたら、www
がホスト、example.com
がdomainというように明確に区分される - 通常はドメイン名だけどIPアドレスを使用することもある(利便性に欠けるのでほとんどない)💡
-
ポートはウェブサーバー上のリソースにアクセスするために使用される「門」のようなもの
- データの宛先はIPアドレスで判断するが、1台のコンピュータで複数のサービスが動いている場合、どのサービスへ届けるべきか判断できない
- それを解決するためにポート番号がある
- ポートの詳細は別でまとめた方が良さそう
- そもそもドメインネーム自体も、
スキームとオーソリティの間の区切り文字は
://
です。コロンはスキームと URL の次の部分を分離し、//
は URL の次の部分がオーソリティであることを示します。
オーソリティを使用しない URL の一例として、メールクライアント (mailto:foobar
) があります。これはスキームを含んでいますが、オーソリティ部分を使用していません。したがって、コロンの後には 2 つのスラッシュがなく、スキームとメールアドレスの間の区切り文字としてのみ機能します。
=> なるほど、めっちゃ重要なこと書いてある。
://
で一つのまとまりと思っていたけど、
-
:
→ スキームとURLの次の部分を分離している -
//
→ URLの次の部分がオーソリティであることを示している
パス
- リソースへのパスを表している
- ウェブにおける文脈だとウェブサーバー上のリソースのパス
パラメータ(クエリパラメータ)
-
?key1=value1&key2=value2
の様に?
以降にキー=値
といった形式で定義されるもの - サーバーに対して追加の情報を与えることができる
- ウェブサーバーはそのパラメータを使用してリソースを返す前に追加の処理を行うことができる。
- 複数のパラメータを渡すときは
&
で区切る -
GET
メソッドでやり取りする際に登場する