URI、URL、URN の違いを理解する

Python, JavaScript

URI、URL、URN の解明: 主な違い

Web テクノロジーの分野では、開発者やテクノロジー愛好家にとって、URI、URL、URN の違いを理解することが重要です。各用語はインターネット上のリソースを識別する際に独自の目的を果たしますが、同じ意味で使用されることもよくあります。

これらの概念を理解すると、Web 開発スキルが向上するだけでなく、正確なコミュニケーションと効率的な Web リソース管理が保証されます。この記事は、URI、URL、URN の違いを明確にし、それぞれの特定の役割と用途を明確に理解することを目的としています。

指示 説明
urlparse() URL をコンポーネントに分割するために使用される Python の urllib.parse モジュールの関数。
re.compile() 正規表現パターンを Python の正規表現オブジェクトにコンパイルします。
new URL() 文字列から URL オブジェクトを作成するための JavaScript コンストラクター。
pattern.test() JavaScript の正規表現パターンに対する文字列の一致をテストします。
regex.match() 正規表現が Python の文字列と一致するかどうかを確認します。
try { ... } catch (_) 例外を処理するための JavaScript ブロック。ここでは URL を検証するために使用されます。

スクリプトの機能を理解する

Python スクリプトは、いくつかの主要な関数を使用して、URI、URL、および URN を検証および解析します。の urllib.parse モジュールの関数を使用して URL をコンポーネントに分割し、スキームと netloc の両方が存在することを確認します。の 関数は、正規表現パターンを正規表現オブジェクトにコンパイルし、その正規表現オブジェクトを入力文字列との照合に使用します。同様に、 メソッドは、正規表現が指定された文字列と一致するかどうかをチェックし、URI、URL、または URN としての有効性を確認するために使用されます。

JavaScript スクリプトは コンストラクターを使用して文字列から URL オブジェクトを作成し、スクリプトでプロトコルとホスト名を抽出して検証できるようにします。の メソッドは、正規表現パターンに対して文字列をテストするために使用され、入力が期待される形式に準拠していることを確認します。さらに、 ブロックは例外を処理するために実装されており、無効な入力によってスクリプトが中断されることなく URL を検証する堅牢な方法を提供します。これらのスクリプトは、Web 開発者が正確かつ信頼性の高いリソースを識別するために不可欠です。

Python での URI、URL、URN の検証と解析

検証と解析のための Python スクリプト

import re
from urllib.parse import urlparse
 
def is_valid_uri(uri):
    try:
        result = urlparse(uri)
        return all([result.scheme, result.netloc])
    except ValueError:
        return False
 
def is_valid_url(url):
    regex = re.compile(r'^(https?|ftp):\/\/[^\s\/$.?#].[^\s]*$', re.IGNORECASE)
    return re.match(regex, url) is not None
 
def is_valid_urn(urn):
    regex = re.compile(r'^urn:[a-z0-9][a-z0-9\-]{0,31}:[a-z0-9()+,\-.:=@;$_!*\'%/?#]+$', re.IGNORECASE)
    return re.match(regex, urn) is not None
 
uri = "http://www.example.com"
url = "https://www.example.com"
urn = "urn:isbn:0451450523"
 
print(f"URI: {uri}, Valid: {is_valid_uri(uri)}")
print(f"URL: {url}, Valid: {is_valid_url(url)}")
print(f"URN: {urn}, Valid: {is_valid_urn(urn)}")

JavaScript を使用した URI、URL、および URN の検証

URI、URL、URN をチェックするための JavaScript コード

function isValidURI(uri) {
    try {
        let url = new URL(uri);
        return url.protocol && url.hostname;
    } catch (_) {
        return false;
    }
}
 
function isValidURL(url) {
    const pattern = new RegExp('^(https?:\\/\\/)?'+
        '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|'+
        '((\\d{1,3}\\.){3}\\d{1,3}))'+
        '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+
        '(\\?[;&a-z\\d%_.~+=-]*)?'+
        '(\\#[-a-z\\d_]*)?$','i');
    return !!pattern.test(url);
}
 
function isValidURN(urn) {
    const pattern = /^urn:[a-z0-9][a-z0-9\-]{0,31}:[a-z0-9()+,\-.:=@;$_!*'/%?#]+$/i;
    return pattern.test(urn);
}
 
console.log(isValidURI("http://www.example.com"));
console.log(isValidURL("https://www.example.com"));
console.log(isValidURN("urn:isbn:0451450523"));

URI、URL、URN の違いの拡張

URI、URL、URN について理解する上で重要な側面の 1 つは、それらの階層的な性質と、それらが Web の全体的な構造にどのように寄与するかということです。 URI (Uniform Resource Identifier) は、特定のリソースを明確に識別する文字列です。これはさらに、URL (Uniform Resource Locator) と URN (Uniform Resource Name) に分類できます。 URL は最もよく知られており、HTTP、HTTPS、FTP などのプロトコルを介してインターネット上のリソースを見つける手段を提供します。対照的に、URN は永続的な場所に依存しないリソース識別子として機能し、たとえ環境に依存してもリソースを確実に見つけることができます。その場所が変わります。

注目に値するもう 1 つの側面は、各識別子がサポートする構文の違いとスキームです。 URL は定義された構文 (http://www.example.com など) を通じてリソースのアドレスを指定することに重点を置いていますが、URN は urn:isbn:0451450523 などの異なるパターンに従います。構文とスキームの使用法におけるこの違いは、開発者がアプリケーションやサービス内で適切なリソースの識別と取得を確実に行うために正しく理解して実装するために不可欠です。

  1. URIとは何ですか?
  2. あ 場所、名前、またはその両方によってリソースを識別するUniform Resource Identifierです。
  3. URL は URI とどう違うのでしょうか?
  4. あ 特定の種類の これは、インターネット上のリソースを見つける手段を提供します。
  5. URN は何に使用されますか?
  6. あ はリソースを名前で一意に識別するために使用され、その識別が場所に依存しないようにします。
  7. URI を URL にすることはできますか?
  8. はい、 になることができます インターネット上のリソースを見つけるのに十分な情報が含まれているかどうか。
  9. URL はどのようなプロトコルを使用しますか?
  10. URL では通常、次のようなプロトコルが使用されます。 、 、 、その他のリソースにアクセスします。
  11. 開発者にとって URI を理解することが重要なのはなぜですか?
  12. 理解 開発者が Web リソースを正確に識別、検索、管理するのに役立ちます。
  13. URN の構文は何ですか?
  14. あ 通常は次の構文に従います 、 のような 。
  15. リソースに URL と URN の両方を含めることはできますか?
  16. はい、リソースは両方の方法で識別できます。 それを見つけるためと、 ユニークな名前を付けているからです。
  17. URL をどのように検証しますか?
  18. の検証 正規表現または Python などのプログラミング言語の組み込み関数を使用して実行できます。 またはJavaScriptの コンストラクタ。
  19. URN の例は何ですか?
  20. 例としては、 は 、ISBN によって書籍を一意に識別します。

URI、URL、URN に関する最終的な考え

URI、URL、URN の違いを理解することは、効果的な Web 開発とリソース管理にとって不可欠です。それぞれが独自の役割を果たし、URI は包括的な用語として機能し、URL はリソースの場所を特定し、URN は場所に依存しない永続的な名前を提供します。 Python と JavaScript の検証スクリプトを活用することで、開発者はこれらの識別子の正確かつ信頼性の高い使用を保証し、Web コミュニケーションの効率と明瞭さを向上させることができます。