FreeToGenerate.com

Three properties, and the registry only records two of them.

Look up a method

Safe
no
Idempotent
no
Cacheable
conditional
  • A user agent should not issue it automatically, and should make a person aware before it does.
  • A proxy must not repeat it automatically — RFC 9110 says so outright.
  • A cache may store the response only when the server marks it, and may use it only for a later GET or HEAD.

cacheable only with explicit freshness information and a matching Content-Location, and only to answer a later GET or HEAD

Defined in RFC 5789 §2

Case does not matter. Try PATCH, DELETE, QUERY or REPORT — each of them surprises people for a different reason.

The registry, counted

registered names
41
safe
9
idempotent
36
plainly cacheable
3
never say
9

Safe and idempotent are columns in the IANA registry. Cacheable is not — it had to be read out of thirteen separate RFCs.

Nine of the forty-one specifications never mention caching. That is not an unknown: RFC 9110 says a method definition that does not describe its own caching cannot be cached.

All 41 registered methods

41 shown
MethodSafeIdempotentCacheableReference
ACLnoyesnot statedRFC 3744 §8.1
BASELINE-CONTROLnoyesnoRFC 3253 §12.6
BINDnoyesnot statedRFC 5842 §4
CHECKINnoyesnoRFC 3253 §9.4
CHECKOUTnoyesnoRFC 3253 §8.8
CONNECTnononoRFC 9110 §9.3.6
COPYnoyesnoRFC 4918 §9.8
DELETEnoyesnoRFC 9110 §9.3.5
GETyesyesyesRFC 9110 §9.3.1
HEADyesyesyesRFC 9110 §9.3.2
LABELnoyesnoRFC 3253 §8.2
LINKnoyesnoRFC 2068 §19.6.1.2
LOCKnononoRFC 4918 §9.10
MERGEnoyesnoRFC 3253 §11.2
MKACTIVITYnoyesnoRFC 3253 §13.5
MKCALENDARnoyesnoRFC 4791 §5.3.1
MKCOLnoyesnoRFC 4918 §9.3
MKREDIRECTREFnoyesnoRFC 4437 §6
MKWORKSPACEnoyesnoRFC 3253 §6.3
MOVEnoyesnoRFC 4918 §9.9
OPTIONSyesyesnoRFC 9110 §9.3.7
ORDERPATCHnoyesnot statedRFC 3648 §7
PATCHnonoconditionalRFC 5789 §2
POSTnonoconditionalRFC 9110 §9.3.3
PRIyesyesnot statedRFC 9113 §3.4
PROPFINDyesyesconditionalRFC 4918 §9.1
PROPPATCHnoyesnoRFC 4918 §9.2
PUTnoyesnoRFC 9110 §9.3.4
QUERYyesyesyesRFC 10008 §2
REBINDnoyesnot statedRFC 5842 §6
REPORTyesyesnot statedRFC 3253 §3.6
SEARCHyesyesnoRFC 5323 §2
TRACEyesyesnoRFC 9110 §9.3.8
UNBINDnoyesnot statedRFC 5842 §5
UNCHECKOUTnoyesnoRFC 3253 §4.5
UNLINKnoyesnoRFC 2068 §19.6.1.3
UNLOCKnoyesnoRFC 4918 §9.11
UPDATEnoyesnoRFC 3253 §7.1
UPDATEREDIRECTREFnoyesnoRFC 4437 §7
VERSION-CONTROLnoyesnot statedRFC 3253 §3.5
*nononot statedRFC 9110 §18.2

Safe and idempotent come from the IANA HTTP Method Registry. Cacheability comes from each method's own RFC, quoted and checked sentence by sentence.

Also available in: Español · Português · Français · العربية

HTTP Methods: Safe, Idempotent, Cacheable

Every method IANA has registered, with what each one means for a crawler, a proxy and a cache.

What is an HTTP method?

An HTTP method — the verb at the start of a request, GET or POST or DELETE — says what the client wants done with the resource it names. There are far more of them than most people meet: IANA's registry holds 41 names, only nine of which come from the core HTTP specification. The rest arrive from WebDAV, from versioning extensions, from CalDAV, from HTTP/2, and from three standalone specs.

RFC 9110 gives every method three properties. It is safe if its semantics are essentially read-only, so a crawler can issue it without fear. It is idempotent if sending the same request twice has the effect of sending it once, so a proxy can retry it after a dropped connection. And it is cacheable if a cache may store the response and reuse it later.

Those three answers are what a page about HTTP methods should give you, and they do not all live in the same place — which is the reason this page exists rather than a copy of the registry.

How to use it

  1. Type a method name. Case does not matter. You get the three properties, what each one means in practice for a client and a cache, and a link to the section of the RFC that says so.
  2. Or search the whole registry. The table below holds all 41 names. Searching an RFC number — 9110, 4918 — brings back everything that document defines.
  3. Narrow it to the ones you will actually meet. One checkbox drops the table to the nine names RFC 9110 registers itself, which is every method most APIs ever send.

The property the registry does not record

RFC 9110 section 16.1.1 lists the fields a method registration must carry: the name, whether it is safe, whether it is idempotent, and a pointer to the specification. Four fields, and cacheability is not among them. Yet section 16.1.2 of the same document says a new method definition needs to indicate whether it is safe, idempotent and cacheable. Three properties named one section apart, two of them written down.

So the third has to be read out of the defining documents, and there are thirteen of those. Doing that gives a clean answer for most rows and an awkward one for the rest: 3 methods are plainly cacheable, 3 more only under stated conditions, 26 are explicitly not, and 9 specifications never mention caching at all.

That silence is not an unknown, though, and this is the sentence that makes the table complete rather than partial. Section 9.2.3: for a cache to store and use a response, the method needs to explicitly allow caching and detail the conditions, and a method definition that does not do so cannot be cached. Silence is a refusal, by default, written into the standard. The table still shows those nine as not stated rather than as no, because what a specification refuses and what it never considered are different facts and only one of them can be quoted at you in a code review.

The wording differs too, in ways that are worth seeing. Eight methods say responses MUST NOT be cached, which binds the cache. Ten — the versioning family, plus MKCALENDAR — instead require the server to send Cache-Control: no-cache, which binds the server. SEARCH says only SHOULD NOT. PROPFIND says results may be cached, with care. The table records which form of words produced each answer.

The rows people get wrong

PATCH is not idempotent. It sits beside PUT in every REST tutorial and behaves differently: applying the same patch twice may not be the same as applying it once, so the registry records it as neither safe nor idempotent, and RFC 9110 says a proxy must not automatically retry a request like that. DELETE, meanwhile, is idempotent despite sounding like the most destructive verb on the list — deleting something twice leaves it deleted.

Safe does not mean cacheable. Nine methods are safe and only three of them — GET, HEAD and QUERY — are plainly cacheable. OPTIONS and TRACE are read-only and their responses are explicitly never cacheable. REPORT is safe, idempotent, and its specification says nothing about caching at all.

The reverse fails as well: POST and PATCH are neither safe nor idempotent, and both are cacheable under conditions. A POST response can be stored when it carries explicit freshness information and a Content-Location matching the request target — and then it may only be used to answer a later GET or HEAD, never another POST. RFC 9110 notes in passing that the overwhelming majority of caches implement only GET and HEAD anyway, which is a specification conceding that reality has diverged from it.

Two more curiosities. QUERY became a standards-track method in June 2026: safe, idempotent, cacheable, and carrying a request body — the thing people have wanted every time they tried to put a long search into a GET. Its cache key must incorporate the body, which is exactly why it took so long. And the registry contains an entry named simply an asterisk, which is not a method: it is reserved so that nobody can ever register one, because that name would collide with the wildcard in fields like Access-Control-Request-Method.

What this page cannot tell you

These are properties of the method, not promises about a server. A server can implement GET so that it deletes something; the specification is clear that this makes the server wrong rather than making GET unsafe. What the properties buy you is the right to assume: a crawler prefetching safe methods, a proxy retrying idempotent ones, a cache storing cacheable ones, all without asking anyone's permission.

The table is also a snapshot of a registry that grows. QUERY was added in 2026 and nothing here predicts what will be added next. Where a row says a specification is silent, that is a statement about the document as it stands, not a prediction that it will stay silent.

And a method being registered says nothing about whether anything supports it. Most of these 41 names belong to WebDAV and its extensions, which a normal web server will answer with 405.

Why is it free?

The whole registry is a few kilobytes shipped with the page and searched in your browser. Nothing you type is uploaded, nothing is logged, and there is no account to make.

No sign-up, no limits, and no watermark on anything you copy out.