Open6

URLについて理解したい

hirohiro

個人開発でCORSエラーとかで詰まったりしたから備忘録としてまとめる

hirohiro

URLとは

  • Uniform Resource Locator の略で、インターネット上の固有のリソースのアドレスのこと。
  • 理論的には有効なURLは一意のリソースを指している(例外もあり)

URLの構造


上記画像にあるように

  • スキーム
  • ドメインネーム(ホスト + ドメイン)
  • ポート番号
  • パス

が基本構造。

必要であれば

  • パラメータ(引数)
  • アンカー

も付与される。

hirohiro

スキーム

URL の最初の部分はスキームで、ブラウザーがリソースをリクエストするために使用するプロトコルを示します(プロトコルとは、コンピューターネットワーク上でデータを交換または転送するための一連の手順です)。通常、ウェブサイトのプロトコルは、 HTTPS または HTTP (保護なしバージョン)です。しかし、ブラウザーは mailto: (メールクライアントを開く)のような他のスキームを処理する方法も知っているので、他のプロトコルを見かけても驚かないでください。

  • URLの先頭部分のこと。://は含まない。
  • http,https,ftpなど通信手段を示す情報。
    →つまりプロトコルを明示している

一般的なスキームの種類

スキーム名 用途
http 標準的なWebページアクセス
https 暗号化されたWebページアクセス
blob 大規模なバイナリーオブジェクト。メモリに存在する大規模オブジェクトへのポインター
data URLに直接埋め込まれたデータ
ftp ファイル転送
mailto 電子メール送信先指定
file ローカルファイルシステムへのアクセス
javascript URLに埋め込まれたJavaScriptコード
ssh Secure shell

参考文献

https://developer.mozilla.org/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#スキーム

https://developer.mozilla.org/ja/docs/Web/URI/Schemes

https://wa3.i-3-i.info/word1814.html

hirohiro

オーソリティ

  • ドメインネーム + ポート番号の組み合わせのこと
    • そもそもドメインネーム自体も、www.example.comだとしたら、wwwホストexample.comdomainというように明確に区分される
    • 通常はドメイン名だけどIPアドレスを使用することもある(利便性に欠けるのでほとんどない)💡
    • ポートはウェブサーバー上のリソースにアクセスするために使用される「門」のようなもの
      • データの宛先はIPアドレスで判断するが、1台のコンピュータで複数のサービスが動いている場合、どのサービスへ届けるべきか判断できない
      • それを解決するためにポート番号がある
      • ポートの詳細は別でまとめた方が良さそう

スキームとオーソリティの間の区切り文字は :// です。コロンはスキームと URL の次の部分を分離し、 // は URL の次の部分がオーソリティであることを示します。
オーソリティを使用しない URL の一例として、メールクライアント (mailto:foobar) があります。これはスキームを含んでいますが、オーソリティ部分を使用していません。したがって、コロンの後には 2 つのスラッシュがなく、スキームとメールアドレスの間の区切り文字としてのみ機能します。

=> なるほど、めっちゃ重要なこと書いてある。
://で一つのまとまりと思っていたけど、

  • : → スキームとURLの次の部分を分離している
  • // → URLの次の部分がオーソリティであることを示している

https://developer.mozilla.org/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#オーソリティ

hirohiro

パラメータ(クエリパラメータ)

  • ?key1=value1&key2=value2の様に?以降にキー=値といった形式で定義されるもの
  • サーバーに対して追加の情報を与えることができる
  • ウェブサーバーはそのパラメータを使用してリソースを返す前に追加の処理を行うことができる。
  • 複数のパラメータを渡すときは&で区切る
  • GETメソッドでやり取りする際に登場する

https://developer.mozilla.org/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#引数

https://wa3.i-3-i.info/word111407.html