At the end of November, we’ll be migrating the Sematext Logs backend from Elasticsearch to OpenSearch

HTTP Requests

November 24, 2021

Table of contents

What Is HTTP?

The internet is made up of many resources hosted on different servers. To access content on the internet, the browser must ask these servers for the resources it wants. This protocol of requests and responses enables you to view this page in your browser. The transfer of resources happens using the Transmission Control Protocol, or TCP. TCP is used to manage many types of internet connections in which one computer or device wants to send something to another. HTTP (Hypertext Transfer Protocol) is the command language that the devices on both sides of the connection must follow in order to communicate.

What Is an HTTP Request?

An HTTP request is made from a client to a host located on the server in order to receive a resource needed to build the content.

When they make a request, clients use a URL (Uniform Resource Locator) that contains the information needed to access the server resources.

HTTP Request Structure

An HTTP request is made out of three components: request line, headers and message body.

Request Line

The request line or start line is sent by the client in order to start the action on the server. It includes the following elements:

  • an HTTP method.
  • the request-target which can be a URI or an URL to either a path or a protocol. URI is an identifier for a specific page, while the URL is a special type of identifier that can also contain information about how to access the resource.
  • the HTTP version that defines the structure of the remaining message.

Headers 

The HTTP header allows for additional information to be passed between server and client such as cookies, information about the authorization token, or user agent using a special string that helps server identify client browser and OS version..

Similar to the same basic structure of an HTTP request, the HTTP headers are case-sensitive and are followed by a colon (‘:’) and a value.

Message Body

The server uses the message body to deliver the information back to the client. The message body contains the information, the request line, headers, an empty line, and the message body that is optional.

While not all requests have a body, the ones that do, often use POST to deliver the payload.

How Do HTTP Requests Work?

HTTP requests are the primary way of communicating between a client and a server. Once the client makes a request, the server validates the request and acts according to the request method delivering an HTTP response which, similarly to the request, contains a status line, a header, and a message body.

Here’s how a simple response would look like: HTTP/1.1 200 OK

HTTP Request Methods

An HTTP request method is a way to indicate the desired action to be performed by a resource. While some of them are nouns, HTTP methods are referred to as verbs. At the same time, they are case-sensitive and always written in upper case. There are various HTTP request methods, each having its own purpose:

GET

Perhaps the most popular HTTP request method, GET is used to retrieve data from a specific server.

HEAD

Similar to the GET method, this technique won’t have a message in the body. Usually, the HEAD request is used when trying to assess the availability of an API endpoint.

POST

POST is another popular HTTP request method. You use POST when you want to send information to the server to either create or update a resource using the information stored in the body of the HTTP request.

PUT

Similar to how the POST method works, PUT will update or create a resource. However, the difference is that the PUT requests are idempotent, which means that the result will stay the same regardless of how many times you call the PUT request.

DELETE

The DELETE method allows you to delete a particular resource on the server.

PATCH

Similar to the PUT and POST requests, PATCH will update the information of the server, but unlike the two,  PATCH will apply a partial modification. You want to use PATCH when changing just the title of the product entry.

TRACE

The TRACE request calls a loop-back test along the path of a target resource. Usually, it’s used to run debugging and diagnostic tests on APIs.

CONNECT

While lesser known than the other request methods, CONNECT is used to create a connection to a server over HTTP. It creates a tunnel connection to a server specified by the URL parameter.

What Is an HTTPS Request?

HTTP requests had the disadvantage that they did not provide a secure connection between clients and servers.

HTTPS is an extension of the classic HTTP request that secures request protocols by using bidirectional encryption using server-side digital certificates called SSL.

These SSL certificates are issued by a Certificate Authority(CA) which is a trustworthy independent third party that will authenticate both ends of the transaction in a certificate chain.

How to Monitor HTTP Requests?

Monitoring HTTP requests is crucial in ensuring your service is up and running at 100%. Usually, this is done with third-party software like Sematext Synthetics

Synthetics is a synthetic monitoring tool that lets you set up single HTTP request monitors that will record response data like headers, body, errors, and various timings.

[ebook_banner]

You’ll be able to select the method you want to use, the URL you want to track, the interval you want to run the test, and the different locations you want to have it run the test. The monitoring solution also allows you to configure the request settings like headers, query params, cookies, and body.

To ensure the quality of your service quality, you’ll probably want to create some alerts to be triggered when one of the conditions you’ve set should fail. 

Each HTTP monitor runs in an isolated environment built on the Go HTTP Client library and has a 128 MB memory allocation.

Java Logging Basics: Concepts, Tools, and Best Practices

Imagine you're a detective trying to solve a crime, but...

Best Web Transaction Monitoring Tools in 2024

Websites are no longer static pages.  They’re dynamic, transaction-heavy ecosystems...

17 Linux Log Files You Must Be Monitoring

Imagine waking up to a critical system failure that has...