Have you ever wondered what's the difference between GET and POST requests, or what does 404 Not Found means? You're not alone. Having a basic understanding of the different HTTP Methods and HTTP Status Codes is important when you're exploring and testing APIs.
Below are some common HTTP methods. Let's discuss what each of them means.
GET method is used to retrieve data from a server at the specified resource.
GET is often the default method in HTTP clients
POST requests are used to send data to the API server to create or update a resource. The data sent to the server is stored in the request body of the HTTP request.
The simplest example is a contact form on a website. When you fill out the inputs in a form and hit Send, that data is put in the response body of the request and sent to the server.
Similar to POST, PUT requests are used to send data to the API to update or create a resource. The difference is that PUT requests are idempotent. That is, calling the same PUT request multiple times will always produce the same result. In contrast, calling a POST request repeatedly make have side effects of creating the same resource multiple times.
PATCH is used for modifying capabilities. The PATCH request only needs to contain the changes to the resource, not the complete resource.
This resembles PUT, but the body contains a set of instructions describing how a resource currently residing on the server should be modified to produce a new version. This means that the PATCH body should not just be a modified part of the resource, but in some kind of patch languages like JSON Patch or XML Patch.
DELETE is pretty easy to understand. It is used to delete a resource identified by a URI.
HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped into five classes. Let's touch upon some most common HTTP response status codes from all these classes in this blog.
- Informational responses (100–199)
Successful responses (200–299)
200 OK: The request was completed successfully.
301 Moved Permanently: The resource is permanently located in a different URI. A new URI should be given in the response.
302 Found: The resource temporarily moved to a new location.
Client errors (400–499)
400 Bad Request: The request could not be understood by the server.
401 Unauthorized: The request has not been applied because it lacks valid authentication credentials for the target resource.
403 Forbidden: User not authorized to perform the requested operation.
404 Not Found: The requested resource could not be found at the given URI.
405 Method Not Allowed: The request method is not allowed on the specified resource.
Server errors (500–599)
500 Internal Server Error: The server encountered an unexpected condition, preventing it to fulfill the request.
503 Service Unavailable: The server is temporarily unavailable, usually due to overloading or maintenance.
504 Gateway Timeout: The server is a gateway or proxy server, and it is not receiving a response from the backend servers within the allowed time period.