HTTP Methods (GET/POST) & Retrieving From Data
Tags: http, getmethod, postmethod, flask
Published: 2024-02-12 22:29:47

In the web development world, understanding the fundamental HTTP methods - GET and POST - is essential. These methods serve as conduits for transmitting information between servers and clients. Let's delve into the disparities between these two methods and explore a basic example of retrieving form data to elucidate their functionalities further.


**GET Request**
GET is a ubiquitous HTTP method primarily utilized for fetching or retrieving data from a server. When employing GET, data can be appended to the URL directly, as seen in examples like http://localhost5000/login. However, it's imperative to note that data sent via GET isn't encrypted, rendering it susceptible to interception, thus compromising security.

**POST Request**
In contrast, the POST method offers a more secure means of data transmission. Typically employed for sending form data, POST ensures that sensitive information remains encrypted during transit. Unlike GET, data submitted via POST isn't appended to the URL and isn't stored on the server unless explicitly directed, such as saving it to a database.

Basic Example: 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5lexi9t67ki9k3tk7ati.jpg)

Imagine a scenario where a user inputs data into a dialog box on a webpage. Upon submission, this data is sent to the server via a POST request. Subsequently, the entered information is displayed on another webpage, illustrating the flow of data transmission.

Let's consider the implementation of a login page named "login." Within the decorator, both GET and POST methods are specified, allowing for different types of requests. By default, accessing these pages initiates a GET request, prioritizing simplicity over security. However, incorporating methods=["POST", "GET"] facilitates flexibility in handling various types of requests.

Next, we construct the form where users input their credentials. Once the form is built and rendered, users can interact with it on the webpage.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1oytfp88nebjal4yy6mk.jpg)


Upon submission of the form, the webpage undergoes a transition, signaling the utilization of the POST method. Refreshing the page alters the response to a GET request, reflecting the change in request type.


To discern between GET and POST requests within the login function, importing the request module becomes imperative. Conditional statements, such as if request.method, enable developers to ascertain the type of request received.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjrhpr2dmyxkxi840y15.jpg)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94ytu5tjyewh7y3xv3k2.jpg)

In the case of a POST request, retrieving data from the form input box is paramount. Utilizing request.form['nm'], developers can extract the entered data, subsequently redirecting users to a personalized webpage where their name is prominently displayed.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xx231c93ge8t825sf9v.jpg)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dpco3jp1m8hnuad6d0jb.jpg)

This example underscores the seamless retrieval of information from a form, highlighting the efficacy of HTTP methods in facilitating secure data transmission.