Image by Author

HTTP: Beyond Requests and Responses

Yeran Kods
Nerd For Tech
3 min readFeb 8, 2024

--

HTTP, or Hypertext Transfer Protocol, serves as the foundation of communication on the World Wide Web. Often perceived as a simple request-response protocol, HTTP encompasses more complexities than meets the eye. In this article, we delve into the intricacies of HTTP, exploring its verbs, message bodies, and common URL patterns.

HTTP Basics: A Request-Response Paradigm

At its core, HTTP operates on a client-server model, where a client sends a request to a server, and the server responds accordingly. The interaction is framed by two entities — the HTTP client (typically a web browser) and the HTTP server hosting the desired resources.

HTTP Verbs

HTTP verbs, also known as methods, define the action to be performed on a resource. Common verbs include:

  • GET: Retrieve data from a specified resource.
  • POST: Submit data to be processed to a specified resource.
  • PUT: Update a specified resource or create it if it doesn’t exist.
  • DELETE: Delete a specified resource.

HTTP Message Body: Conveying Data

HTTP requests and responses often include a message body to convey additional data. The structure varies based on the content type but typically follows this pattern:

HTTP Request Body

<VERB>  <URI> <HTTP version>
<Request Header>
<Request Body>
  1. <VERB> <URI> <HTTP version>:
  • <VERB>: Stands for the HTTP verb or method, indicating the action to be performed on the resource. Common verbs include GET, POST, PUT, DELETE, etc.
  • <URI>: Represents the Uniform Resource Identifier, specifying the location or identifier of the resource on the server. It could be a URL (Uniform Resource Locator) or a URN (Uniform Resource Name).
  • <HTTP version>: Denotes the version of the HTTP protocol being used. Common versions include HTTP/1.0, HTTP/1.1, and the more recent HTTP/2 and HTTP/3.

Example:

GET /example/resource HTTP/1.1

2. <Request Header>:

  • The HTTP header contains metadata about the request, providing additional information or instructions. Headers are key-value pairs separated by a colon.

Common headers include:

  • Content-Type: Specifies the format of the data in the request body.
  • Authorization: Provides credentials for authentication.
  • User-Agent: Identifies the client making the request.
  • Accept: Informs the server about the types of content that the client can process.

Example:

GET /example/resource HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: application/json

3. <Request Body>:

  • The request body contains data sent by the client to the server, typically in the case of POST or PUT requests. The format of the data depends on the Content-Type specified in the request header.
  • Common content types include application/json, application/x-www-form-urlencoded, and multipart/form-data.

Example:

POST /example/resource HTTP/1.1
Host: example.com
Content-Type: application/json

{
"key": "value",
"another_key": "another_value"
}

HTTP Response Body

<HTTP Version> <Response code>
<Response Header>
<Response Body>

Common URL Patterns: Navigating Resources

URL patterns in HTTP follow a consistent structure, reflecting the actions to be taken. Here are some common patterns:

  • POST /faculties: Create a new faculty.
  • GET /faculties/{id}: Retrieve details of a specific faculty.
  • GET /faculties: Retrieve a list of all faculties.
  • PUT /faculties/{id}: Update details of a specific faculty.
  • DELETE /faculties/{id}: Delete a specific faculty.

Nested Patterns:

  • POST /faculties/{id}/departments/: Create a new department within a faculty.
  • GET /faculties/{id}/departments: Retrieve a list of departments within a faculty.

Query Parameters:

  • GET /departments?faculty={id}: Retrieve a list of departments filtered by a specific faculty.

Examples in Action: Putting Theory into Practice

  1. Creating a Faculty
curl -X POST -d "name=Engineering" http://example.com/faculties

2. Retrieving a Faculty:

curl http://example.com/faculties/1

3. Updating a Faculty:

curl -X PUT -d "name=Computer Science" http://example.com/faculties/1

4. Deleting a Faculty:

curl -X DELETE http://example.com/faculties/1

If you want to learn more about API’s, PayPal offers a excellent documentation,

Hope you learned something new.❤️

Connect with me via;

--

--

Yeran Kods
Nerd For Tech

Interest is what inspires.🌍 | New articles every week !