HTTP Request Methods Cheat Sheet
The core request methods and their respective purpose
API: /api/v1/cheatsheet/http-request-methods-cheat-sheet
Core Methods Overview
| Method | Purpose | Idempotent | Safe | Body |
|---|---|---|---|---|
| GET | Retrieve data | ✓ | ✓ | X |
| POST | Create new resource | X | X | ✓ |
| PUT | Replace resource | ✓ | X | ✓ |
| PATCH | Partially update resource | X | X | ✓ |
| DELETE | Delete resource | ✓ | X | X |
| HEAD | GET without body | ✓ | ✓ | X |
| OPTIONS | Describe allowed methods | ✓ | ✓ | X |
GET — Retrieve Data
Purpose:
Fetch data from the server.
Example: GET /api/users/1
Characteristics:
- No side effects (should not modify state)
- Parameters passed via URL
POST — Create Resource
Purpose:
Send data to create something new.
Example: POST /api/users Body { "name": "Alice" }
Characteristics:
- Not idempotent (calling twice creates duplicates)
- Used for form submissions, API creation
PUT — Replace Resource
Purpose:
Replace entire resource.
Example: PUT /api/users/1 Body { "name": "Alice", "age": 30 }
Characteristics:
- Idempotent (same request = same result)
- Full replacement
PATCH — Partial Update
Purpose:
Update part of a resource.
Example: PATCH /api/users/1 Body { "age": 31 }
Characteristics:
- Not necessarily idempotent
- More efficient than PUT
DELETE — Remove Resource
Purpose:
Delete something.
Example: DELETE /api/users/1
Characteristics:
- Idempotent (deleting twice = same result)
- Usually no response body
HEAD — Metadata Only
Purpose:
Same as GET but returns only headers.
Example: HEAD /api/users/1
Use Cases:
- Check if resource exists
- Get content length
OPTIONS — Discover Capabilities
Purpose:
Ask server what methods are allowed.
Example: OPTIONS /api/users
Response: Allow: GET, POST, OPTIONS
Used for:
- CORS preflight requests
Idempotency Explained
Idempotent: Same request → same result
Safe: No side effects
Examples:
- GET /users/1 → always same result
- PUT /users/1 → same data replaces resource
- DELETE /users/1 → deleting again does nothing
- POST /users → creates new each time
Join the Newsletter
Practical insights on Django, backend systems, deployment, architecture, and real-world development — delivered without noise.
Get updates when new guides, learning paths, cheat sheets, and field notes are published.
No spam. Unsubscribe anytime.
There is no third-party involved so don't worry - we won't share your details with anyone.