DEV Community

Cover image for ๐Ÿšจ "The Untold Secrets of HTTP Methods You NEED to Know!" ๐Ÿšจ
Dharmendra Kumar
Dharmendra Kumar

Posted on

๐Ÿšจ "The Untold Secrets of HTTP Methods You NEED to Know!" ๐Ÿšจ

HTTP methods are the backbone of how clients and servers communicate. Each method serves a specific purpose, from fetching data to updating and deleting resources. Let's dive into the world of HTTP methods and learn when and how to use them with practical examples! ๐Ÿ’ป


๐ŸŒ 1. HTTP GET โ€“ "Show Me the Goods!"

  • What it does: GET is used to retrieve data from the server. It is a safe and idempotent method, meaning multiple GET requests wonโ€™t change the data on the server.
  • When to use: Use GET when you want to fetch data, like retrieving a list of users or fetching details of a product.

Example with Axios:

axios.get('https://api.example.com/users')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output:

[
  { "id": 1, "name": "John Doe", "email": "john@example.com" },
  { "id": 2, "name": "Jane Doe", "email": "jane@example.com" }
]
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“จ 2. HTTP POST โ€“ "Hereโ€™s My Data, Please Save It!"

  • What it does: POST is used to send data to the server to create a new resource. This can be adding a new user, submitting a form, or creating a comment.
  • When to use: Use POST when you want to send new data to the server, such as registering a new user.

Example with Axios:

axios.post('https://api.example.com/users', {
  name: 'John Doe',
  email: 'john@example.com'
})
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'John Doe', email: 'john@example.com' })
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output:

{
  "id": 3,
  "name": "John Doe",
  "email": "john@example.com",
  "message": "User created successfully!"
}
Enter fullscreen mode Exit fullscreen mode

๐Ÿ› ๏ธ 3. HTTP PUT โ€“ "Letโ€™s Replace Everything!"

  • What it does: PUT is used to update or replace an existing resource entirely. If the resource doesnโ€™t exist, PUT can also create it.
  • When to use: Use PUT when you want to replace an entire resource, like updating all the details of a user.

Example with Axios:

axios.put('https://api.example.com/users/1', {
  name: 'Jane Doe',
  email: 'jane@example.com'
})
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users/1', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'Jane Doe', email: 'jane@example.com' })
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output:

{
  "id": 1,
  "name": "Jane Doe",
  "email": "jane@example.com",
  "message": "User updated successfully!"
}
Enter fullscreen mode Exit fullscreen mode

๐Ÿ”ฅ 4. HTTP PATCH โ€“ "Just Fix This Little Part!"

  • What it does: PATCH is used for partial updates to an existing resource. Unlike PUT, PATCH modifies only the specified parts of the resource.
  • When to use: Use PATCH when you want to update a part of a resource, such as changing a user's email without altering other data.

Example with Axios:

axios.patch('https://api.example.com/users/1', {
  email: 'jane@newemail.com'
})
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users/1', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ email: 'jane@newemail.com' })
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output:

{
  "id": 1,
  "name": "Jane Doe",
  "email": "jane@newemail.com",
  "message": "User email updated successfully!"
}
Enter fullscreen mode Exit fullscreen mode

๐Ÿ’ฃ 5. HTTP DELETE โ€“ "Itโ€™s Time to Say Goodbye!"

  • What it does: DELETE is used to remove a resource from the server. Once deleted, the resource is gone for good.
  • When to use: Use DELETE when you need to remove a resource, like deleting a user or removing an item from a list.

Example with Axios:

axios.delete('https://api.example.com/users/1')
  .then(response => console.log('User deleted'))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users/1', {
  method: 'DELETE'
})
  .then(response => console.log('User deleted'))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output:

{
  "message": "User deleted successfully!"
}
Enter fullscreen mode Exit fullscreen mode

๐Ÿง  6. HTTP HEAD โ€“ "I Just Need the Facts, No Data!"

  • What it does: HEAD works like GET, but it only retrieves the headers of the response without the body. Itโ€™s a way to check meta-information like file size or content type.
  • When to use: Use HEAD when you need to know about the headers (e.g., to check if a resource has been modified without downloading it).

Example with Axios:

axios.head('https://api.example.com/users')
  .then(response => console.log(response.headers))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users', { method: 'HEAD' })
  .then(response => console.log(response.headers))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output (Headers):

{
  "content-type": "application/json",
  "content-length": "123",
  "date": "Mon, 17 Sep 2024 10:00:00 GMT"
}
Enter fullscreen mode Exit fullscreen mode

โ“ 7. HTTP OPTIONS โ€“ "What Are My Options Here?"

  • What it does: OPTIONS is used to describe the communication options available for a resource. It's like asking the server, "What methods can I use?"
  • When to use: Use OPTIONS when you need to discover what HTTP methods are allowed on a resource.

Example with Axios:

axios.options('https://api.example.com/users')
  .then(response => console.log(response.headers))
  .catch(error => console.error(error));
Enter fullscreen mode Exit fullscreen mode

Example with Fetch:

fetch('https://api.example.com/users', { method: 'OPTIONS' })
  .then(response => console.log(response.headers))
  .catch(error => console.error('Error:', error));
Enter fullscreen mode Exit fullscreen mode

Example Output (Headers):

{
  "allow": "GET, POST, PUT, DELETE, OPTIONS",
  "content-type": "application/json"
}
Enter fullscreen mode Exit fullscreen mode

๐ŸŽฏ Conclusion:

Understanding HTTP methods like GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS is key to building effective web applications. Each method has its purpose, defining how you interact with APIs and web servers. Master these methods, and you'll become a more efficient developer! ๐Ÿ’ช


Happy coding! ๐ŸŽ‰

Top comments (0)