{
    "api": "YAML JSON TOON Database",
    "version": "1.0.0",
    "format": "json",
    "dataset": {
        "id": 12,
        "slug": "http-methods-reference",
        "title": "HTTP Methods Reference",
        "description": "Standard HTTP request methods: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, TRACE with safety, idempotency, and body characteristics.",
        "summary": "The standard HTTP methods with their safety, idempotence, whether they carry a body and what they are for: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS and TRACE, plus CONNECT for proxy tunnels.",
        "use_when": [
            "You are choosing a method for an API operation.",
            "You need to know whether a request can be retried safely."
        ],
        "caveats": [
            "Safe and idempotent describe the semantics defined by the specification; a badly designed server can violate them.",
            "POST is neither safe nor idempotent by definition; use an idempotency key if retries must be safe.",
            "A request body on GET, HEAD, or DELETE has no generally defined semantics. Do not infer universal support from a client library accepting one."
        ],
        "related": [
            "http-methods",
            "http-status-codes-complete",
            "http-status-code-best-practices",
            "http-client-error-guide",
            "http-request-retry-decisions"
        ],
        "category": "HTTP Status Codes",
        "category_slug": "http-status-codes",
        "tags": "http,methods,rest,web",
        "view_count": 0,
        "created_at": 1777673262,
        "updated_at": 1791799373,
        "sources": [
            {
                "title": "IETF HTTP semantics",
                "url": "https://httpwg.org/specs/rfc9110.html"
            }
        ],
        "reading": [
            "api-retries-with-backoff-and-idempotency"
        ],
        "reviewed_at": "2026-10-12",
        "provenance": "Original editorial reference notes by YJTOON, informed by the linked primary documentation. External specifications retain their own licenses.",
        "entry_count": 9,
        "fields": [
            {
                "section": "methods",
                "field": "method",
                "type": "string",
                "example": "GET"
            },
            {
                "section": "methods",
                "field": "safety",
                "type": "string",
                "example": "Safe"
            },
            {
                "section": "methods",
                "field": "idempotent",
                "type": "boolean",
                "example": "true"
            },
            {
                "section": "methods",
                "field": "body",
                "type": "string",
                "example": "No generally defined semantics"
            },
            {
                "section": "methods",
                "field": "purpose",
                "type": "string",
                "example": "Retrieve a resource"
            }
        ]
    },
    "data": {
        "methods": [
            {
                "method": "GET",
                "safety": "Safe",
                "idempotent": true,
                "body": "No generally defined semantics",
                "purpose": "Retrieve a resource"
            },
            {
                "method": "POST",
                "safety": "Unsafe",
                "idempotent": false,
                "body": "Yes",
                "purpose": "Process the enclosed representation according to the target resource; creation is one use"
            },
            {
                "method": "PUT",
                "safety": "Unsafe",
                "idempotent": true,
                "body": "Yes",
                "purpose": "Replace a resource"
            },
            {
                "method": "PATCH",
                "safety": "Unsafe",
                "idempotent": false,
                "body": "Yes",
                "purpose": "Partially modify a resource"
            },
            {
                "method": "DELETE",
                "safety": "Unsafe",
                "idempotent": true,
                "body": "No generally defined semantics",
                "purpose": "Delete a resource"
            },
            {
                "method": "HEAD",
                "safety": "Safe",
                "idempotent": true,
                "body": "No generally defined semantics",
                "purpose": "GET without response body"
            },
            {
                "method": "OPTIONS",
                "safety": "Safe",
                "idempotent": true,
                "body": "No",
                "purpose": "Describe communication options"
            },
            {
                "method": "TRACE",
                "safety": "Safe",
                "idempotent": true,
                "body": "No",
                "purpose": "Echo request for diagnostic"
            },
            {
                "method": "CONNECT",
                "safety": "Unsafe",
                "idempotent": false,
                "body": "No generally defined semantics",
                "purpose": "Establish a tunnel to the target, used by proxies for HTTPS"
            }
        ]
    }
}
