Skip to content

Replace 'absolute URI' with 'URI'#48

Merged
ebremer merged 1 commit into
mainfrom
absolute-uri
Jan 20, 2026
Merged

Replace 'absolute URI' with 'URI'#48
ebremer merged 1 commit into
mainfrom
absolute-uri

Conversation

@acoburn
Copy link
Copy Markdown
Member

@acoburn acoburn commented Dec 18, 2025

Resolves #46

The Authentication and Authorization sections of the specification make use of the phrase "absolute URI", but RFC 3986, section 4.3 defines an absolute URI as a URI without a fragment identifier. It was not the intention of the author to exclude URIs that contain fragment identifiers; instead, the goal was to exclude relative URI references, since these values will generally cross domain and/or security boundaries and so any ambiguity would be problematic. The terminology "URI" implies that these values are not relative URI references.


Preview | Diff

@TallTed
Copy link
Copy Markdown
Member

TallTed commented Dec 22, 2025

Is there a reason not to forbid "relative URIs", which is absolutely clear, rather than mandating "URIs", which I do not find to imply "non-relative URIs" and which could also be the mandate, i.e., "non-relative URIs", if there is some proof that relative URIs are actually harmful?

In my world, a great many documents are authored using relative URIs, because they are trivially movable from internal deployment (for testing, etc., by company entities) to external deployment (for consumption by the general public). This prohibition seems likely to be problematic for this workflow.

@acoburn
Copy link
Copy Markdown
Member Author

acoburn commented Dec 22, 2025

The rationale for non-relative URIs in these particular cases is that these identifiers are used for crossing security domains. E.g. an access token with a globally unique issuer or the location of an authorization server. In these cases, global uniqueness is important.

This change does not affect URIs in documents.

@TallTed
Copy link
Copy Markdown
Member

TallTed commented Dec 22, 2025

OK, so given that I accept this prohibition in "non-documents" (though I think many documents are included under that label, e.g., *.ttl, *.jsonld), what about making the requirement be non-relative URIs rather than URIs?

@jeswr jeswr self-requested a review January 5, 2026 14:22
@pchampin
Copy link
Copy Markdown
Contributor

pchampin commented Jan 9, 2026

@TallTed, the problem that I raised in #46 and that this PR aims to address is that the common usage of terms like "URI", "absolute URI", "relative URI" is not aligned with RFC3986...

Consider the following examples:
A: https://example.org/foo/bar#baz
B: https://example.org/foo/bar
C: ../foo/bar

Many people would consider that A, B and C are all "URIs", A and B being "absolute URIs" and C being a "relative URI". Unfortunately, that's inaccurate.

According to Section 4. Usage of RFC3986, only A and B are "URIs", and C is a "relative reference (to a URI)". The term encompassing all three A, B and C is "URI Reference". Note that (contrary to common usage) there is no such thing as "relative URI" in the RFC (only references can be relative)... but there is a notion of "absolute URI", which only covers B in my example, because "absolute URIs" are URIs without a fragment (don't ask me!).

I don't expect our readers to be aware of the subtle oddities of the terminology of RFC3986, nor do I believe that we should make this a requirement to read the LWS spec. But I think that we should at least not use a term that is defined in RFC3986 with a meaning different from what we want to convey (in this case, "absolute URI").

@pchampin
Copy link
Copy Markdown
Contributor

pchampin commented Jan 9, 2026

I suggest to accept this PR, and complement it with an entry in the "terminology" section to clarify what we mean by URI (i.e., recall what it means in RFC3986)

Proposal:

URI: this specification makes use of the notion of URI as defined by [[RFC3986]]. Recall that, according the RFC, URIs can not be relative: https://example.org/foo/bar#baz and https://example.org/foo/bar are URIs, but ../foo/bar is not. The latter is, strictly speaking, a relative reference, and the term encompassing both URIs and relative references is URI references.

Copy link
Copy Markdown
Contributor

@ebremer ebremer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ebremer ebremer merged commit 8b85867 into main Jan 20, 2026
2 checks passed
@ebremer ebremer deleted the absolute-uri branch January 20, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

use of "relative URI"

6 participants