Skip to content

Conversation

@ottomorac
Copy link
Contributor

@ottomorac ottomorac commented Sep 12, 2025

This PR attempts to address #161 by adding a statement requiring that DID resolvers implement HTTP GET bindings and allowing an alternative HTTP POST binding to be used when desired.


Preview | Diff

@ottomorac
Copy link
Contributor Author

@peacekeeper I have initially opted to just add the normative statement requiring GET and allowing POST. I thought the HTTP binding section would be appropriate location for the change but if you think we should make the change in the DID Resolution and Dereferencing Sections directly let me know.

Also not sure yet if I need to go into the detailed steps of how the binding can be done with either GET or POST in steps 2 and 4 and how that might affect things like encoding of query params etc. I think let's align on the normative statement first, and perhaps discuss if we need to add the detailed steps as well once we figure that out.

@w3cbot
Copy link

w3cbot commented Sep 18, 2025

This was discussed during the #did meeting on 18 September 2025.

View the transcript

w3c/did-resolution#192

Wip: another one from Otto, also about binding.

markus_sabadello: it is about adding a POST binding, which we don't have right now.
… I think it is fine.
… It goes together with PR w3c/did-resolution#196 which I submitted.


Co-authored-by: Markus Sabadello <[email protected]>
Copy link
Member

@TallTed TallTed left a comment

Choose a reason for hiding this comment

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

Editorial. Improves language and flow.

@wip-abramson
Copy link
Contributor

We will want to align with #182 before merging this

<p>This binding is generally considered a <a>remote binding</a>, but could
also be a <a>local binding</a> if the HTTP(S) endpoint is run in a local environment, such as on <code>localhost</code>.</p>

<p>All conformant <a>DID resolvers</a> MUST implement an HTTP(S) binding using GET as described in the algorithm below.
Copy link
Member

Choose a reason for hiding this comment

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

Does this duplicate text in PR #182: https://github.com/w3c/did-resolution/pull/182/files#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051R2298-R2299

... if so, we shouldn't repeat normative statements because edits to one of them are often missed in the other statement. It is a best practice to follow DRY principles with normative statements.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok good observation @msporny. After some review, I think then we keep the normative text in this PR and then remove some of the redudant text in #182

In #182 I will keep the text about "All HTTPS bindings MUST use TLS".

@peacekeeper do you agree?

Choose a reason for hiding this comment

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

There's the "secure" language that is used in other W3C specs based on "secure contexts" (see: https://www.w3.org/TR/secure-contexts/) that might be able to be leveraged so we don't have to continue to make extra distinctions. This also provides "localhost" treatment.

Co-authored-by: Manu Sporny <[email protected]>
@w3cbot
Copy link

w3cbot commented Oct 16, 2025

This was discussed during the #did meeting on 16 October 2025.

View the transcript

w3c/did-resolution#192

ottomorac: This PR is related to changes regarding HTTP Get binding. Noting that Manu has highlighted some duplicates with another PR

<ottomorac> w3c/did-resolution#182

ottomorac: PR 182, has the duplicate text
… Proposing removing the overlapping text from 182, to focus on the usage of TLS

manu: Sounds good to me

Dmitri: reminder that if we are going to require TLS, we need to make an exception for testing purposes in local setups

manu: Suggested language, we could say all production deployments must use TLS
… All production deployments that are exposed directly to the internet must use TLS. This would focus on the place that we really need TLS
… Production deployments that are directly exposed to the internet MUST use TLS. And then explain that testing and proxy deployments do not need TLS for example

markus_sabadello: Not sure I am up to date, but is the language now that all conformant DID Resolvers must implement HTTP binding?

ottomorac: The language is all conformant DID resolvers must use HTTPS binding with the GET as well as optionally supporting the POST

markus_sabadello: To me this doesnt make much sense, a DID resolver that resolves a DID key locally as part of a simple library is also a DID resolver without needing HTTP
… It is just a local library executing a local transformation. It is still a conformant DID resolver
… There is no HTTPS binding

manu: I agree with Markus. Wondering if we could use the language, all conforming web based DID resolvers. This is about the second conformance class we discussed last week
… Then a separate conformance class for local DID resolvers
… We need a conformance class that talks about libraries and one that talks about web based
… We should decide about web based or internet based

ottomorac: This shifts us to the other issue around conformance class
… Trying to think about the best way to handle this
… To avoid tangling these issues together
… the other issue is #213 w3c/did-resolution#213
… I suggest we merge this for now and then have a disucssion around the conformance classes later
… Would this be okay

<manu> Wip: Don't like merging something that'll be wrong, especially if it has normative language in.

<manu> Wip: This PR will put in a MUST statement that says what Markus has concerns about.

<manu> ottomorac: Maybe you MUST if you are working over network and other specifics?

manu: Usually bad practice to merge in things that we know are wrong
… The thing to do would be to process the PRs in the opposite order.
… What are the conformance classes and the names of these classes. Lets decide that then address this PR after

ottomorac: Okay, makes sense


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.

7 participants