From e7c1d2c099bb4e7f1c2eaee7526f1fb25ea4e0bf Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 27 Aug 2024 23:19:37 +0900 Subject: [PATCH] =?UTF-8?q?2024/08/27=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index.md | 20 ++++-- .../web/uri/fragment/text_fragments/index.md | 33 +++------ files/ja/web/uri/schemes/data/index.md | 68 ++++++++++--------- files/ja/web/uri/schemes/resource/index.md | 27 ++++---- 4 files changed, 70 insertions(+), 78 deletions(-) diff --git a/files/ja/web/uri/authority/choosing_between_www_and_non-www_urls/index.md b/files/ja/web/uri/authority/choosing_between_www_and_non-www_urls/index.md index 087e2d07c431ae..218a1bbda4c7f4 100644 --- a/files/ja/web/uri/authority/choosing_between_www_and_non-www_urls/index.md +++ b/files/ja/web/uri/authority/choosing_between_www_and_non-www_urls/index.md @@ -1,12 +1,13 @@ --- title: www 付きと www なしの URL の選択 slug: Web/URI/Authority/Choosing_between_www_and_non-www_URLs -original_slug: Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs +l10n: + sourceCommit: 6b730e3cfdf0f51940b44efa71bd59c84ce76e71 --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/ja/docs/Web/URI")}} -ウェブサイトの管理者の間で繰り返される質問が、www URL と非 www URL のどちらを選択するかです。このページでは、何が最良かについてアドバイスを提供します。 +ウェブサイトの管理者の間で繰り返される質問が、 'www' (`www.example.com`) のついた URL と非 'www' (`example.com`) URL のどちらを選択するかです。このページでは、何が最良かについてアドバイスを提供します。 ## ドメイン名とは何か @@ -17,7 +18,7 @@ HTTP の URL では、先頭の `http://` または `https://` に続く部分 ## では、自身のウェブサイトでどちらかを選択しなければならないのか - **はい**、ひとつを選択して維持しなければなりません。基準となる場所に応じてどちらを選択するかはあなた次第ですが、どちらかを選択したら、それを維持してください。それにより、ユーザーや検索エンジンから見てウェブサイトが首尾一貫したものになります。これは、常に選択したドメインにリンクする (ウェブサイト内で相対 URL を使用すれば、難しくはないでしょう)、および常に同じドメインへのリンクを (電子メールやソーシャルネットワークなどで) 共有することを含みます。 -- **いいえ**、二つ持つことができます。どちらが公式なドメインであるかについて、一貫性を持って矛盾しないことが重要です。**この公式なドメインは*正規名*と呼ばれます。** すべての絶対パスリンクで正規名を使用するべきです。しかし、それでも他のドメインを機能させることができます。HTTP ではどちらのドメインが正規のものであるかをユーザーや検索エンジンに対して明らかにするとともに、非正規のドメインが機能して想定したページを提供できるようにするための技術が 2 つあります。 +- **いいえ**、2 つ持つことができます。どちらが公式なドメインであるかについて、一貫性を持って矛盾しないことが重要です。**この公式なドメインは*正規名*と呼ばれます。** すべての絶対パスリンクで正規名を使用するべきです。しかし、それでも他のドメインを機能させることができます。HTTP ではどちらのドメインが正規のものであるかをユーザーや検索エンジンに対して明らかにするとともに、非正規のドメインが機能して想定したページを提供できるようにするための技術が 2 つあります。 従って、正規なドメインとしてひとつ選択してください! 以下の 2 つの技術によって、非正規のドメインも機能させることができます。 @@ -37,13 +38,15 @@ HTTP の URL では、先頭の `http://` または `https://` に続く部分 [HTML5 boilerplate project](https://github.com/h5bp/html5-boilerplate) に、[あるドメインから別のドメインへリダイレクトするように Apache を設定する方法](https://github.com/h5bp/html5-boilerplate/blob/7a22a33d4041c479d0962499e853501073811887/.htaccess#L219-L258) の例があります。 -### \ を使用する +### `` を使用する ページの正規のアドレスは何かを示す、専用の HTML {{HTMLElement("link")}} 要素をページに追加できます。これは人間向けのページリーダーには影響がありませんが、検索エンジンのクローラーに対してページが実際はどこにあるかを示します。この方法では検索エンジンが同じページで何度もインデックスを作成したり、重複したコンテンツやスパムであると判断されたり、検索エンジンの結果ページでページが排除されたりランクが下がったりすることがなくなります。 このようなタグを追加するときは両方のドメインで同じコンテンツを提供して、どの URL が正規であるかを検索エンジンに示します。先ほどの例では `http://www.example.org/whaddup` が `http://example.org/whaddup` と同じコンテンツを提供していますが、head に {{htmlelement("link")}} 要素を追加します: -`` +```html + +``` リダイレクトの場合と異なり、ブラウザーの履歴では非 www URL と www URL が独立した項目であるとみなします。 @@ -53,7 +56,10 @@ HTTP の URL では、先頭の `http://` または `https://` に続く部分 ## 状況を判断する -これは[自転車置き場](http://bikeshed.com/)問題と考えられる、とても主観的な話題です。もっと深く読んでみたいと思ったら、この件に関する[多くの](https://www.netlify.com/blog/2017/02/28/to-www-or-not-www/)[記事](https://www.wpbeginner.com/beginners-guide/www-vs-non-www-which-is-better-for-wordpress-seo/)をご覧ください。 +これは非常に主観的なトピックであり、[自転車置き場](https://bikeshed.com/)問題として考えることもできます。より深くお読みになりたい場合は、以下のリソースをご参照ください。 + +- [Options for bare domains](https://www.netlify.com/blog/2020/03/26/how-to-set-up-netlify-dns-custom-domains-cname-and-a-records/#options-for-bare-domains) (netlify.com, 2020) +- [WWW vs non-WWW – Which Is Better for WordPress SEO?](https://www.wpbeginner.com/beginners-guide/www-vs-non-www-which-is-better-for-wordpress-seo/) (wpbeginner.com, 2023) ## 関連情報 diff --git a/files/ja/web/uri/fragment/text_fragments/index.md b/files/ja/web/uri/fragment/text_fragments/index.md index 46fe5a2de863e7..9688f720bb40d6 100644 --- a/files/ja/web/uri/fragment/text_fragments/index.md +++ b/files/ja/web/uri/fragment/text_fragments/index.md @@ -3,9 +3,11 @@ title: テキストフラグメント slug: Web/URI/Fragment/Text_fragments original_slug: Web/Text_fragments l10n: - sourceCommit: c9cc38c3c3c342e2e952c1acd57f55e104c5bb06 + sourceCommit: 6b730e3cfdf0f51940b44efa71bd59c84ce76e71 --- +{{QuickLinksWithSubpages("/ja/docs/Web/URI")}} + **テキストフラグメント**は、URL フラグメントの特定の構文を使用することにより、作成者が ID で注釈を付けなくても、ウェブ文書内のテキストの特定の部分に直接リンクできるようにするものです。対応しているブラウザーは、リンクされたテキストに注意を引く方法を自由に選べます。例えば、色の強調表示やページ上のコンテンツへのスクロールなどです。これは、ウェブコンテンツの作成者が、使用可能な ID が存在しなくても、制御下にない他のコンテンツに深くリンクすることができるため有益なものです。さらに、ユーザーが互いに交換するための、より効果的なコンテンツ共有リンクを生成するために使用することもできます。 ## 概念と使用方法 @@ -33,7 +35,7 @@ ID が変更または削除された場合、文書フラグメントは無視 テキストフラグメントは文書フラグメントと似た様式であり、URL の後にハッシュ記号 (`#`) を付けます。しかし、構文は多少異なります。 -``` +```url https://example.com#:~:text=[prefix-,]textStart[,textEnd][,-suffix] ``` @@ -93,7 +95,7 @@ https://example.com#:~:text=[prefix-,]textStart[,textEnd][,-suffix] ### 複数のテキストフラグメントが付いた URL -アンパサンド(`&`)文字で区切ることで、同じ URL で強調表示する複数のテキストフラグメントを指定することができます。 +アンパサンド (`&`) 文字で区切ることで、同じ URL で強調表示する複数のテキストフラグメントを指定することができます。 - [https://developer.mozilla.org/ja/docs/Web/HTML/Element/a#:~:text=リンクされた&text=扱う](/ja/docs/Web/HTML/Element/a#:~:text=リンクされた&text=扱う) は、テキスト文字列 `Causes` および `linked` のうち最初に出現するものにスクロールし強調表示します。 - [https://developer.mozilla.org/ja/docs/Web/HTML/Element/a#:~:text=リンク先%20URL,-の&text=非推奨の-,属性,属性](/ja/docs/Web/HTML/Element/a#:~:text=リンク先%20URL,-の&text=非推奨の-,属性,属性) は、2 つのテキストにスクロールし強調表示します。 @@ -125,27 +127,8 @@ https://example.com#:~:text=[prefix-,]textStart[,textEnd][,-suffix] ```js document.fragmentDirective; -``` - -以下のような構造を持つ {{domxref("FragmentDirective")}} オブジェクトインスタンスが返されるはずです。 - -```js -items: [ - { - prefix: "", - textStart: "Module Workers", - textEnd: "", - suffix: "support", - type: "text", - }, - { - prefix: "feedback on", - textStart: "usability", - textEnd: "", - suffix: "", - type: "text", - }, -]; +// 対応していれば、空の FragmentDirective オブジェクトを返す +// それ以外の場合は undefined ``` この機能は、現在は主に機能検出を目的としていますが、将来的には、翻訳ヒントなど他の情報を記載するために展開することができます。 @@ -174,4 +157,4 @@ items: [ ## 関連情報 -- [Boldly link where no one has linked before: Text Fragments](https://web.dev/text-fragments/) +- [Boldly link where no one has linked before: Text Fragments](https://web.dev/articles/text-fragments) diff --git a/files/ja/web/uri/schemes/data/index.md b/files/ja/web/uri/schemes/data/index.md index 69d930a1876e81..6eb7b9a7ce87da 100644 --- a/files/ja/web/uri/schemes/data/index.md +++ b/files/ja/web/uri/schemes/data/index.md @@ -1,42 +1,45 @@ --- title: データ URL slug: Web/URI/Schemes/data -original_slug: Web/HTTP/Basics_of_HTTP/Data_URLs +l10n: + sourceCommit: 6b730e3cfdf0f51940b44efa71bd59c84ce76e71 --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/ja/docs/Web/URI")}} -**データ URL** は `data:` スキームが先頭についた URL で、小さなファイルをインラインで文書に埋め込むことができます。以前、 WHATWG で取り下げられるまでは "data URIs" と呼ばれていました。 +**データ URL** は `data:` スキームが先頭についた URL で、小さなファイルをインラインで文書に埋め込むことができます。以前、 WHATWG で取り下げられるまでは「データ URI」と呼ばれていました。 > [!NOTE] -> 最近のブラウザーでは、データ URL はナビゲーションを担当する設定オブジェクトの起源を継承するのではなく、一意の不透明な起点として扱われます。 +> 最近のブラウザーでは、データ URL はナビゲーションを担当する設定オブジェクトのオリジンを継承するのではなく、一意の不透明なオリジンとして扱われます。 ## 構文 データ URL は接頭辞 (`data:`)、データの種類を示す [MIME タイプ](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types)、テキストではないデータである場合のオプションである `base64` トークン、データ自体の 4 つの部品で構成されます。 -``` +```plain data:[][;base64], ``` `mediatype` は [MIME タイプ](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types)で, 例えば `'image/jpeg'` で JPEG 画像を表します。省略時の既定値は `text/plain;charset=US-ASCII` です。 -データが文字ならば、そのまま埋め込めます (埋め込む文書タイプに応じて、適切な実体参照やエスケープを行なってください)。それ以外では `base64` を指定し、 base64 エンコードしたバイナリデータを埋め込みます。 MIME タイプについての詳しい情報は[こちら](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types)や[こちら](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types)にあります。 +データに [RFC 3986 で予約文字として定義されている文字](https://datatracker.ietf.org/doc/html/rfc3986#section-2.2)が含まれている場合、または空白文字、改行文字、その他の出力されない文字が含まれている場合は、それらの文字は{{Glossary("Percent-encoding", "パーセントエンコード")}}でエンコードする必要があります。 + +データが文字ならば、そのまま埋め込めます (埋め込む文書タイプに応じて、適切な実体参照やエスケープを行なってください)。それ以外では `base64` を指定し、 base64 エンコードしたバイナリーデータを埋め込みます。 MIME タイプについての詳しい情報は[こちら](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types)や[こちら](/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types)にあります。 例: -- `data:,Hello%2C%20World!` - - : 平易な text/plain データです。引用符や空白には[パーセントエンコーディング](/ja/docs/Glossary/percent-encoding) (URL エンコーディング) を使用します。また、 CSV データ (MIME タイプは "text/csv") もスプレッドシートの行を区切るための改行文字を保存するためにパーセントエンコーディングが必要です。 +- `data:,Hello%2C%20World%21` + - : text/plain データで `Hello, World!` です。なお、カンマは{{Glossary("Percent-encoding", "パーセントエンコード")}}で `%2C`となり、スペースは `%20` となります。 - `data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==` - : 同じ内容の base64 エンコード版 -- `data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E` - - : `

Hello, World!

` という HTML 文書 -- `data:text/html,` - - : JavaScript のアラートを実行する HTML 文書。終了タグが必要ですので注意してください。 +- `data:text/html,%3Ch1%3EHello%2C%20World%21%3C%2Fh1%3E` + - : HTML 文書で `

Hello, World!

` +- `data:text/html,%3Cscript%3Ealert%28%27hi%27%29%3B%3C%2Fscript%3E` + - : HTML 文書で `` であり、JavaScript のアラートを実行する HTML 文書。終了タグが必要ですので注意してください。 ## データの base64 形式へのエンコード -Base64 はバイナリからテキストへのエンコード方法の集まりで、バイナリデータを 64 進数表現に変換することで ASCII 文字列形式にするものです。 ASCII 文字のみから成るため、 Base64 の文字列は一般に URL でも安全ですので、データ URL のデータのエンコードに利用することができます。 +Base64 は、バイナリーからテキストへエンコードする方式の総称で、バイナリーデータを {{Glossary("ASCII")}} 文字列形式へ、64 進表現に変換することで表します。URL 構文で許可されている文字(「URL セーフ」)のみで構成されているため、データ URL にバイナリーデータを安全にエンコードすることができます。Base64 は、URL で特別な意味を持つ可能性のある文字 `+` と `/` を使用することができます。データ URL には URL パス区間やクエリー引数がないため、このコンテキストではこのエンコード方式は安全です。 ### Javascript でのエンコード @@ -60,16 +63,16 @@ base64 a.txt>b.txt ### Microsoft Windows でのエンコード -Windows では、 [Convert.ToBase64String](https://docs.microsoft.com/ja-jp/dotnet/api/system.convert.tobase64string?view=net-5.0) を PowerShell で使用することで Base64 エンコードを行うことができます。 +Windows では、 [Convert.ToBase64String](https://learn.microsoft.com/ja-jp/dotnet/api/system.convert.tobase64string?view=net-5.0) を PowerShell で使用することで Base64 エンコードを行うことができます。 -``` +```plain [convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello")) # outputs to console: aGVsbG8= ``` 他にも、 GNU/Linux シェル ([WSL](https://ja.wikipedia.org/wiki/Windows_Subsystem_for_Linux) など) が `base64` ユーティリティを提供しています。 -``` +```bash bash$ echo -n hello | base64 # outputs to console: aGVsbG8= ``` @@ -78,44 +81,43 @@ bash$ echo -n hello | base64 この章では `data` の URL を作ったり使ったりするときに、よく起こる問題について述べます。 -``` -data:text/html,lots of text...

bottom?arg=val +```html +data:text/html,lots of text…

bottom?arg=val

``` これは次の内容の HTML リソースを表します。 -``` -lots of text...

bottom?arg=val +```html +lots of text… +

bottom?arg=val

``` - 構文 - : `data` URL の書式は非常に単純ですが、"データ" 部分の前にカンマを置くのを忘れがちです。忘れるとデータが正しく base64 形式にエンコードされません。 - HTML におけるフォーマット - - : `data` はファイル内でファイルを提供しますが、外側の文書に比べて幅がとても広くなる可能性があります。 URL としては、 `data` はホワイトスペース (改行、タブ、空白) で体裁を整えることができるはずですが、 [base64 エンコードをすると起こる問題](http://bugzilla.mozilla.org/show_bug.cgi?id=73026#c12) があります。 + - : `data` はファイル内でファイルを提供しますが、外側の文書に比べて幅がとても広くなる可能性があります。 URL としては、 `data` はホワイトスペース (改行、タブ、空白) で体裁を整えることができるはずですが、 [base64 エンコードをすると起こる問題](https://bugzil.la/73026#c12) があります。 - 長さの制限 - : ブラウザーは特定の最大長のデータに対応する必要はありません。たとえば、 Opera 11 ブラウザーでは URL が 65535 文字に制限されており、 `data` URL は 65529 文字に制限されています (65529 文字は、 MIME タイプを指定せずにプレーンの `data:` を使用した場合、ソースではなくエンコードされたデータの長さです)。Firefox 97 以降 では、最大 32MB の `data` URL がサポートされます (97 より前のバージョンでは、制限は約 256MB でした)。 Chromium は 512MB 以上の URL 、Webkit (Safari) は 2048MB 以上の URL をサポートしています。 - エラー処理の欠如 - : メディア内の不正な引数や、 `'base64'` の定義内の打ち間違いは無視され、何もエラーは出ません。 -- クエリ文字列のサポートの欠如、など - - : データ URL のデータ部分は不透明 (opaque) なので、データ URL と一緒にクエリ文字列 (`?parameter-data` という構文で表されるページ固有のパラメータ) を使うと、データ URL が表現するデータに単にクエリ文字列が含まれたものになります。 +- クエリー文字列のサポートの欠如、など + - : データ URL のデータ部分は不透明 (opaque) なので、データ URL と一緒にクエリー文字列 (`?parameter-data` という構文で表されるページ固有のパラメーター) を使うと、データ URL が表現するデータに単にクエリー文字列が含まれたものになります。 - セキュリティの課題 - : 多数のセキュリティ問題 (フィッシングなど) がデータ URL に関連付けられており、ブラウザーの最上位でそれらに移動しています。このような問題を軽減するために、Firefox 59+ (リリース版、Nightly/Beta は 58 以降) では `data:` URL へのトップレベルのナビゲーションがブロックされており、他のブラウザーがすぐに対応することを期待しています。詳細については、[Firefox 58 におけるデータ URL へのトップレベルナビゲーションのブロック](https://blog.mozilla.org/security/2017/11/27/blocking-top-level-navigations-data-urls-firefox-58/)を参照してください。 ## 仕様書 -| 仕様書 | 題名 | -| --------------- | --------------------- | -| {{RFC("2397")}} | The "data" URL scheme | +{{Specifications}} ## ブラウザーの互換性 -{{Compat}} +{{compat}} ## 関連情報 -- [Base64](/ja/docs/Glossary/Base64) -- [パーセントエンコーディング](/ja/docs/Glossary/percent-encoding) -- {{domxref("WindowBase64.atob","atob()")}} -- {{domxref("WindowBase64.btoa","btoa()")}} -- [CSS `url()`](/ja/docs/Web/CSS/uri) -- [URI](/ja/docs/Glossary/URI) +- {{Glossary("Base64")}} +- {{Glossary("Percent-encoding", "パーセントエンコーディング")}} +- {{domxref("WorkerGlobalScope.atob()", "atob()")}} +- {{domxref("WorkerGlobalScope.btoa()", "btoa()")}} +- CSS の {{CSSXref("url", "url()")}} +- {{Glossary("URI")}} diff --git a/files/ja/web/uri/schemes/resource/index.md b/files/ja/web/uri/schemes/resource/index.md index 421ffdaf992bd7..8b8d5b3c9fb5f9 100644 --- a/files/ja/web/uri/schemes/resource/index.md +++ b/files/ja/web/uri/schemes/resource/index.md @@ -1,34 +1,35 @@ --- title: リソース URL slug: Web/URI/Schemes/resource -original_slug: Web/HTTP/Basics_of_HTTP/Resource_URLs +l10n: + sourceCommit: 6b730e3cfdf0f51940b44efa71bd59c84ce76e71 --- -{{HTTPSidebar}}{{non-standard_header}} +{{QuickLinksWithSubpages("/ja/docs/Web/URI")}}{{non-standard_header}} `resource:` というスキームのプレフィックスが付いたリソース URL は、Firefox と Firefox のブラウザー拡張機能によってリソースを内部的に読み込むために使用されますが、情報の一部はブラウザーが接続するサイトでも利用できます。 ## 構文 -リソース URL は、接頭辞 (`resource:`) とロードするリソースを指す URL の 2 つの部分で構成されます。 +リソース URL は、接頭辞 (`resource:`) と読み込むするリソースを指す URL の 2 つの部分で構成されます。 -``` -resource:// +```url +resource:// ``` 例 -``` +```url resource://gre/res/svg.css ``` リソース URL ('->') に矢印がある場合は、最初のファイルが次のファイルにロードされたことを意味します。 -``` +```url resource:// -> ``` -より一般的な詳細については、[ウェブ上のリソースの識別](/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)を参照してください。 +より一般的な詳細については、[ウェブ上のリソースの識別](/ja/docs/Web/URI)を参照してください。 この記事では、組み込みのリソースを指すために Firefox が内部的に使用するリソース URI に焦点を当てます。 @@ -36,11 +37,11 @@ resource:// -> `resource:` URL によって共有される情報の一部はウェブサイトで利用できるため、ウェブページは内部スクリプトを実行し、デフォルトの設定を含む Firefox の内部リソースを調べることができます。 -たとえば、[Browserleaks のスクリプト](https://www.browserleaks.com/firefox)は、サイトで実行されている簡単なスクリプトでクエリが実行されたときに Firefox が表示する内容を強調表示します (コードは にあります)。 +たとえば、[Browserleaks のスクリプト](https://browserleaks.com/resource-urls)は、サイトで実行されている簡単なスクリプトでクエリーが実行されたときに Firefox が表示する内容を強調表示します(コードは にあります)。 ファイル firefox.js は、プリファレンス名と値を pref() 関数に渡します。 例えば、 -``` +```url http://searchfox.org/mozilla-central/rev/48ea452803907f2575d81021e8678634e8067fc2/browser/app/profile/firefox.js#575 ``` @@ -59,7 +60,7 @@ http://searchfox.org/mozilla-central/rev/48ea452803907f2575d81021e8678634e8067fc > [!NOTE] > ウェブと拡張機能の開発者がリソース URL をもう使用しようとしないことをお勧めします。彼らの使い方はうまくいきませんでした。そしてほとんどの使用法はこれ以上動作しません。 -## 仕様 +## 仕様書 resource: はどの仕様書にも定義されていません。 @@ -69,6 +70,6 @@ resource: は Firefox のみ対応 ## 関連情報 -- [ウェブ上のリソースの識別](/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) -- [URL とは何か](/ja/docs/Learn/Common_questions/What_is_a_URL) +- [ウェブ上のリソースの識別](/ja/docs/Web/URI) +- [URL とは何か](/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) - [IANA list of URI schemes](https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml) (`resource:` is [covered here](https://www.iana.org/assignments/uri-schemes/prov/resource))