- URLでホスト名またはIPアドレスを指定できます。同様に、ポート番号を指定できますが、ポート番号の代わりにサービス名を指定できますか?そうでない場合は、必要に応じてサービス名を指定できます(たとえば、サービスのポート番号を覚えていない場合)。
指定できますか?転送プロトコルURLに? URLにトランスポートプロトコルを指定できない場合は、必要に応じてトランスポートプロトコルをどのように指定できますか?この必要性は、1つのサービス名が2つのトランスポートプロトコルに対応できることです。
/etc/services
http 80/tcp # Hypertext Transfer Protocol http 80/udp ssh 22/tcp # Secure Shell ssh 22/udp telnet 23/tcp # Telnet telnet 23/udp smtp 25/tcp # Simple Mail Transfer Protocol smtp 25/udp
ありがとうございます。
答え1
あなたの質問は、これらのURLで何をしたいのかわかりません。目的を知らずに規格を遵守する必要があると仮定する必要があります。非標準 URL の使用を開始すると、問題が発生する可能性があります。
RFC 3986URLの標準です。そして…
- プロトコルを指定しません。しかし、それは計画を指定します。通常、このスキームはプロトコルを指定するために使用されます。たとえば
http://example.com/blah.html
。 - サービスを指定しません。しかし、指定します数字ポート。通常、このポート番号はサービスを指定するのに十分です。サービスが登録されているからです。インターネット割り当て番号機関。
ポート番号の不足によってサービスが欠落している問題を解決する必要がある場合、私が見た最も一般的なアプローチは、各プロトコル/ポートのペアに固有のスキームを定義することです。
答え2
サービス名はオペレーティングシステムレベルのアプリケーションレベルの概念/サービスで、単にポート番号に変換されます。結局、それは数字に翻訳された名前にすぎません。
ただし、RFC RFC 3986 §3.2.3ではこれを許可しませんが(@ JdeBPに感謝します)、ブラウザ/アプリケーションで許可されている場合は、URLにサービス名を使用できます。
ほとんどの一般的なURL /ブラウザユーティリティパーサーは、この操作を正しく実行できません。
これらの異常を説明するために、サービス名を含むURLを許可するテキストモードのブラウザーlynxを使用します。
lynx https://www.cnn.com:https
または
lynx http://www.sapo.pt:http
動作し、IPが適切なWebサイトを正しく閲覧しているようです。定義によると、lynxユーティリティ/プロトコルはTCPを使用し、サービス番号UDP定義を取得しません。