HTTP Methods and Status Codes: The Essential Guide for Web Developers

Joshua Agbomeikhe
5 min readApr 24, 2023

--

An illustration of HTTP communication between client and server
Photo by Miguel Á. Padriñán

As web developers, we often work with the Hypertext Transfer Protocol (HTTP) to build and maintain websites or web applications. Understanding the core concepts of HTTP methods and status codes is essential for creating seamless user experiences and efficient server communication.

We’ll cover the most common HTTP methods, dive into status codes, and explore their real-world applications. By the end, you’ll have a solid grasp of these fundamental web development concepts, enabling you to build more robust and effective web applications.

Don’t forget to bookmark this article for future reference and share it with your fellow developers.

A visual representation of different HTTP methods and status codes
Created with AI

HTTP Methods

HTTP methods, also known as verbs, are the actions performed by the client when making a request to the server. They help define the intended operation and play a crucial role in the communication between the client and server in web applications.

Common HTTP methods

Let’s explore the five most common HTTP methods — GET, POST, PUT, PATCH, and DELETE — and their typical use cases.

GET

The GET method retrieves information from the server without altering any resources. It’s the most widely used HTTP method and is considered both safe and idempotent, meaning it can be called multiple times without causing unintended side effects.

Use cases

  • Fetching a webpage
  • Retrieving data from an API

Example

GET /api/users/1 HTTP/1.1
Host: example.com

POST

The POST method submits data to the server, often resulting in a new resource being created or updated. It is neither safe nor idempotent, as submitting the same data multiple times may lead to different outcomes.

Use cases

  • Creating a new user account
  • Submitting a contact form

Example

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com"
}

PUT

The PUT method updates an existing resource on the server by replacing it entirely with the provided data. It is idempotent but not safe, as it modifies resources.

Use cases

  • Updating a user’s profile information
  • Replacing a document with a new version

Example

PUT /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.new@example.com"
}

PATCH

The PATCH method partially updates an existing resource on the server, modifying only specified fields. It is idempotent but not safe.

Use cases

  • Updating a user’s email address without changing other profile details
  • Modifying a specific field in a database record

Example

PATCH /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "john.updated@example.com"
}

DELETE

The DELETE method removes a specified resource from the server. It is idempotent but not safe, as it deletes resources.

Use cases

  • Deleting a user account
  • Removing an item from a shopping cart

Example


DELETE /api/users/1 HTTP/1.1
Host: example.com

Less common HTTP methods

In addition to the common methods mentioned above, there are a few less frequently used methods:

1. HEAD: Similar to GET, but retrieves only the headers and not the actual resource
2. OPTIONS: Returns the supported HTTP methods for a specific resource
3. CONNECT: Establishes a network connection, usually for use with a proxy
4. TRACE: Retrieves a diagnostic representation of the request and response messages for a specific resource

HTTP Status Codes

HTTP status codes are three-digit numeric responses sent by the server to indicate the outcome of an HTTP request. They provide valuable feedback, helping clients understand whether a request was successful or if any errors occurred during processing.

HTTP status codes are grouped into five classes based on their first digit:

  • 1xx (Informational): The request was received, and the server is continuing to process it
  • 2xx (Success): The request was successfully received, understood, and accepted
  • 3xx (Redirection): Further action is needed to complete the request, typically involving following a new URL
  • 4xx (Client error): The request contains bad syntax or cannot be fulfilled by the server
  • 5xx (Server error): The server failed to fulfill a valid request
A chart displaying the five classes of HTTP status codes
Image from https://devqa.io/http-status-codes/

Common HTTP status codes

Here’s a quick overview of the most frequently encountered HTTP status codes:

  • 200 OK: The request was successful, and the server has returned the requested data
  • 201 Created: The request was successful, and the server has created a new resource as a result
  • 204 No Content: The request was successful, but there’s no data to return (often used for DELETE requests)
  • 400 Bad Request: The server cannot process the request due to invalid syntax or malformed data
  • 401 Unauthorized: The request requires authentication, and the client has not provided valid credentials
  • 403 Forbidden: The client does not have permission to access the requested resource
  • 404 Not Found: The requested resource could not be found on the server
  • 500 Internal Server Error: The server encountered an error while processing the request
  • 503 Service Unavailable: The server is temporarily unable to handle the request, usually due to maintenance or high load

Using accurate and appropriate status codes in your web application is crucial for effective error handling and communication. Ensure that your server responds with the correct status codes to help clients diagnose issues and make your API more user-friendly. Familiarize yourself with the full list of HTTP status codes and their meanings to optimize your web application’s performance.

Tools and Resources

Boost your productivity and gain insights into your web applications with these popular HTTP debugging tools:

  1. Postman: A versatile API development and testing tool with support for various HTTP methods, response visualization, and collaboration features
  2. Curl: A command-line tool for transferring data using various protocols, including HTTP, making it ideal for testing APIs and web requests

For a quick reference or to look up an unfamiliar status code, check out these resources:

  1. HTTPStatusDogs: A fun and memorable collection of HTTP status codes represented by dog images
  2. HttpStatusCodes.net: A simple, searchable list of HTTP status codes and their descriptions

In this article, we’ve covered the essentials of HTTP methods and status codes, from the most common methods like GET and POST to important status code classes and their meanings.

Now that you’re equipped with this fundamental knowledge, we encourage you to practice and apply these concepts in your web development projects.

We’d love to hear about your experiences using HTTP methods and status codes or any questions you might have. Feel free to share your thoughts in the comments section below!

--

--

Joshua Agbomeikhe
Joshua Agbomeikhe

Written by Joshua Agbomeikhe

Just a Node.js Chef and an AI enthusiast, nothing more!

No responses yet