Visual RFC.
ALL RFCs / RFC 7033
Read the RFC ↗
RFC 7033 / RESOURCE DISCOVERY

Choose the target and encode each query value

01

WebFinger discovers relatively static metadata about a Uniform Resource Identifier (URI). A URI identifies something; it need not be a location you can fetch. The resource parameter identifies the subject of the question. The HTTPS endpoint is the service receiving it. An application can use an acct URI for an account without assuming it is an email address or a login.

RFC 7033 · § 4.1EXAMPLE
4 / 4
Choose the target and encode each query valueOne account resource is followed by two rel parameters with outer separators and no spaces.A target URI is a query valueClientOriginone resourceresource=acct%3Acarol%40example.com&rel=author&rel=copyrightRepeat rel · select either typeEncode each value, then join with &
04
Repeat rel, while keeping resource once.

Return to the account target. Add &rel=author&rel=copyright after its one resource value. These filters request either relation type. The joining ampersands separate outer parameters, with no inserted spaces.

Source for this drawing: RFC 7033 · Read RFC section 4.1 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Encode values before joining parameters, so a target’s own punctuation cannot become a second query parameter.

  • Every query MUST contain resource exactly once. Percent-encode each parameter value, including any = and & inside it. Join name=value pairs with &, without inserting spaces. Parameter order does not affect interpretation.
  • The initial endpoint MUST use HTTPS and the path /.well-known/webfinger. When the target has a host under RFC 3986, the query host SHOULD match unless out-of-band instructions say otherwise. Otherwise the application determines the host using additional information.
  • An acct URI has no generic RFC 3986 host component. Our account example uses the application’s acct-domain rule, illustrated by RFC 7565 §4. It does not define a universal URI-to-host algorithm or imply that the account can receive email.
  • The optional rel parameter MAY occur more than once to request several link relation types. Encode each value separately. A nested %26 in the target URI becomes %2526 in the outer query; decoding that query once recovers the original URI.
DETAILS

The offline helpers accept bounded, already valid ASCII absolute-URI examples and an explicitly chosen ASCII service host. They are not complete URI, acct, IDNA or application-profile implementations. All identifiers are fictional.

Read the RFC section ↗

All chapters in RFC 7033

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗