Visual RFC.
ALL RFCs / RFC 9110
Read the RFC ↗
RFC 9110 / REQUEST DECISIONS

Methods & retry safety

04

Reading, replacing, processing, and deleting have different semantics, especially after a connection fails.

Related RFCs and changes

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

DIAGRAM§ 9 ↗
RFC 9110 · § 9EXAMPLE
4 / 4
Methods & retry safetyA retry decision contrasts a repeated PUT, which replaces the same state, with an uncertain repeated POST that might create a second item.Repeating an action has consequencesIllustrative request outcomesMETHODINTENDED EFFECTGET /draft · Read the current draftPUT /draft · Replace the draftPOST /jobs · Process a new jobPUT /draftstate = revision BPUT /draft againstate = revision BUnknown POST outcome: do not blindly repeatRetry only with evidence that it is safe
04
Avoid accidental duplicate effects.

A missing response does not prove that the server did nothing.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

Retry according to semantics and evidence.

  • GET and HEAD retrieve information; HEAD omits response content. Safe methods do not request state changes.
  • PUT replaces target state, POST requests target-specific processing, and DELETE removes the target association. PUT and DELETE are idempotent.
  • OPTIONS describes communication options, CONNECT establishes a tunnel, and TRACE requests a loopback diagnostic.
DETAILS

Idempotent means repeating the intended effect is equivalent to one request. Responses can differ. Automatically retrying a non-idempotent request requires knowledge that doing so is safe or that the original was not applied.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. One meaning, many transports
  2. Targets, origins & intermediaries
  3. Fields, content & representations
  4. Methods & retry safety
  5. Content negotiation
  6. Validators & conditional requests
  7. Range requests
  8. Status codes & redirects
  9. Caches & revalidation
  10. Authentication, security & extensions
RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗