@hongminhee@hollo.social · Reply to :_ko::_ko::_a::_ni::_lya::_n:

@cocoa_vrc 区別していますね!しかし、アプリケーション開発者が希望すれば、区別しない様にする事も出来ます。ちなみに、区別する根拠は以下の通りです。

acct: URIのユーザー部分の大小文字の区別について、二つのRFCを根拠に説明させていただきます。

RFC 75654章「定義」(Definition)の最後では、acct: URIの比較について以下の様に規定しています:

アプリケーションが二つのacct: URIを比較する必要がある場合(例:認証や認可の目的で)RFC 39866.2.2.1節6.2.2.2節で規定されている大小文字の正規化とパーセントエンコーディングの正規化を使用しなければなりません。

そして、RFC 39866.2.2.1節「大小文字の区別」(Case Normalization)では以下のように規定しています:(強調は私がしました)

URIがジェネリック構文の構成要素を使用する場合、構成要素の構文同等性規則が常に適用されます。つまり、スキームとホストは大小文字を区別せず、したがって小文字に正規化されるべきです。例えば、URI HTTP://www.EXAMPLE.com/http://www.example.com/と同等です。その他のジェネリック構文の構成要素は、スキームによって特に別途定義されない限り、大小文字を区別するものと見なされます。

したがって:

  1. acct:FOO@example.comacct:foo@example.comは異なるURIとして扱われます。
  2. これは以下の理由によります:
    • スキーム部分(acct:)は大小文字を区別しません。
    • ホスト部分(example.com)は大小文字を区別しません。
    • ユーザー部分(FOOfoo)は大小文字を区別します。これは、スキームによって特に別途定義されていない限り、ジェネリック構文の構成要素は大小文字を区別するというRFC 3986の規定に従うためです。

お役に立てば幸いです!

datatracker.ietf.org

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax

A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]

2 shares