はじめに
ブラウザからデスクトップアプリを起動するリンクは、https
またはhttp
から始まっていないけど、URLだと言えるのかについて疑問に思ったので、いろいろ調べてみた。
tl;dr
カスタムプロトコルもプロトコルの一種なので、ブラウザからデスクトップアプリを起動するリンクもURLであることがわかった。
背景
研究室でNotionを使用していて、リンクシェアのたびにwebアプリのリンク(https://www.notion.so)とデスクトップアプリのリンク(notion://www.notion.so)の両方を貼ることを推奨されている。リンクばかりが並ぶと見づらいので、web app
やdesktop app
の見出しを加える人もいるが、中にはwebアプリの方にURL
、デスクトップアプリの方にapp
と表記している人もいて、webアプリもappだし、デスクトップアプリを開くリンクもURLなのでは?(見出しに使う言葉の意味が怪しいのでは?)と疑問に思った。
URLの定義
"URL"とは「Uniform Resource Locator」の略称で、インターネット上に存在する情報資源(文書や画像など)の場所を指し示す技術方式です。 通常「プロトコル://ドメイン名/ディレクトリパス名/ファイル名」という形式で構成されるホームページページの住所(アドレス)のことです。
(https://www.sony.jp/support/vaio/beginner/dialogue/015.html)
HTTPSとHTTP
『HTTPS(HyperText Transfer Protocol Secure)』『HTTP(HyperText Transfer Protocol)』は、ともにウェブブラウザでホームページの内容を表示させるためウェブサーバと通信させるプロトコル(仕組み)のことですが、HTTPSとHTTPの違いは、通信がSSLによって暗号化されているか否かです。暗号化されていれば「HTTPS」、暗号化されていなければ「HTTP」です。
(https://college.globalsign.com/ssl-pki-info/https-http/)
Custom URL Scheme (Custom Protocol)
ここからが本題で、どうやらカスタムURLスキーム(カスタムプロトコル)というものが存在している模様。
他のアプリとの連携を行うための手法として、カスタムURLスキームという機構が用意されています。
簡単にいえば、アプリ独自のスキーム(“hoge://fuga”というURLにおける”hoge”の部分)を定義し、
そのURLを別のアプリから開いた際、スキームを定義したアプリの起動とデータの送信を行うための機構となっています。
(https://biz-collections.com/support/webpages/html/onlinemanual/browser_ai/crs/intro/intro12.htm)
例えば、Chromeブラウザのアドレスバーに notion://www.notion.so を入力し、デスクトップアプリを立ち上げるには、このカスタムプロトコル(ここではnotion
)を設定する必要がある。
Notionに関しては、アプリ開発者がすでにカスタムプロトコルを用意してくれているので、自分で設定する必要な特にないが、このカスタムプロトコルを応用して、自分でいろいろ設定すれば、ブラウザから任意のデスクトップアプリを起動できるようになる。
結論
つまり、notion
はプロトコルの一種であり、notion://www.notion.so
は、URLの定義を満たしているので、https://www.notion.so
とnotion://www.notion.so
のいずれもURLである。
参考文献
- 「URL(ユーアールエル)」ってなに? | VAIO | ソニー (2023/09/28閲覧)
- カスタムURLスキームについて (2023/09/28閲覧)
- ブラウザ上のリンクから任意のデスクトップアプリのファイルを開けると超便利 (2023/09/28閲覧)
- カスタムURLスキームのアプリに対応しているか検知する方法 (2023/09/28閲覧)
- Defining a custom URL scheme for your app (2023/09/28閲覧)
- 通信プロトコル | IBM (2023/09/28閲覧)
- HTTPSとは? HTTPとの違いとは? 簡単解説 (2023/09/28閲覧)