URL の scheme と protocol の違い
- カテゴリ:
- JavaScript
- コメント数:
- Comments: 2
◆ JavaScript だと protocol になってるけど URL 的には scheme が正しい
◆ プロトコルだと「:」が入るけどスキームだと含まない
◆ スキームにはプロトコル名が基本的に使われてる
◆ // から始まるのは共通構文で file でも 2 つ
◆ 3 つなのはローカルファイルへのアクセスで host 名が省略されてるから
◆ プロトコルだと「:」が入るけどスキームだと含まない
◆ スキームにはプロトコル名が基本的に使われてる
◆ // から始まるのは共通構文で file でも 2 つ
◆ 3 つなのはローカルファイルへのアクセスで host 名が省略されてるから
JavaScript で URL の情報を見ると
http に当たる部分は protocol となっています
なので URL の最初の部分は プロトコルと呼べばいいんだと思ってましたが正確にはちがうみたいです
http://var.blog.jp/archives/58464918.html
のピンク色のところが スキームで 水色のところが スキームごとに決められたデータを書くところです
(scheme):(schemeごとのパート)
というのが URL の基本的な書き方です
// から始まるのは インターネット上のものを表す共通な書き方だそうです
//username:password@example.co.jp:8080/index.html
user password hostname port url-path
それで スキームに使われるのが 基本的にプロトコルなので違いがよくわからないことになっています
プロトコルとスキームが意味してるものは別で スキームにプロトコル名が使われているということです
また JavaScript で確認するとプロトコルというと「:」まで入ってるようです
他と一緒で // から始まっていて 3 つめの / は別の意味があります
フォーマットはこうなっています
file://host/path
普段は自分のローカル環境なので host は書かないですが エクスプローラーで
\\gw-win-note\share\picture\
とネットワークアクセスしてるフォルダ
これに ブラウザでアクセスしようとすると host が必要になります
file://gw-win-note/share/picture/
にアクセスすればブラウザからネットワーク上のフォルダが見えるはずです
http に当たる部分は protocol となっています
なので URL の最初の部分は プロトコルと呼べばいいんだと思ってましたが正確にはちがうみたいです
http://var.blog.jp/archives/58464918.html
のピンク色のところが スキームで 水色のところが スキームごとに決められたデータを書くところです
(scheme):(schemeごとのパート)
というのが URL の基本的な書き方です
// から始まるのは インターネット上のものを表す共通な書き方だそうです
//username:password@example.co.jp:8080/index.html
user password hostname port url-path
それで スキームに使われるのが 基本的にプロトコルなので違いがよくわからないことになっています
プロトコルとスキームが意味してるものは別で スキームにプロトコル名が使われているということです
また JavaScript で確認するとプロトコルというと「:」まで入ってるようです
new URL("http://var.blog.jp").protocol
// http:
// http:
スキームの例
- http
- https
- ftp
- file
- mailto
- javascript
- blob
- data
- about
- chrome
- resource
おまけ
file って file:/// になっていますが file の場合は特別で / が 3 つから始まるというわけではないです他と一緒で // から始まっていて 3 つめの / は別の意味があります
フォーマットはこうなっています
file://host/path
普段は自分のローカル環境なので host は書かないですが エクスプローラーで
\\gw-win-note\share\picture\
とネットワークアクセスしてるフォルダ
これに ブラウザでアクセスしようとすると host が必要になります
file://gw-win-note/share/picture/
にアクセスすればブラウザからネットワーク上のフォルダが見えるはずです
COMMENT
コメント一覧 (2)
-
- 2022/04/03 23:00
- JavaScriptでプロトコルは「http:」までで、URLでいう「http」がスキームで「:」が含まれていないことから、スキームにプロトコル名が使われるなら、スキームにも「:」が含まれていないと変ではないですか?
-
- 2022/04/05 21:14
-
>>1
JavaScript の protocol は URL のスキームに : をつけたものと仕様で決まってるのでそういうものしか言えないかと
https://url.spec.whatwg.org/#dom-url-protocol
http だけのこともあれば http:// まで含めてプロトコルと呼ぶケースもあるみたいなのでどこまでなのかは曖昧みたいですね
一般的にプロトコルというと HTTP だけみたいに記号はつかないですし
https://ja.wikipedia.org/wiki/%E9%80%9A%E4%BF%A1%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB
MDN の説明のだと // も含まれています
https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#syntax_of_uniform_resource_identifiers_uris