洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 甘瀬ここあ ☕'s post

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

お役に立てば幸いです!

Emelia 👸🏻's avatar
Emelia 👸🏻

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee @cocoa_vrc translating this, and wow, that's chaotic. Surely the username part of a webfinger acct: value shouldn't be case-sensitive?

cc @by_caballero