23
NovDifference between Http Get and Http Post Methods
Difference between Http Get and Http Post Methods: An Overview
HttpGET and HttpPost methods are two commonly used methods within HTTP where the Hypertext Transfer Protocol (HTTP) is a communication protocol that is designed to enable request-response between clients and servers. Here, a web browser is the client and an application on a computer that hosts a web site is the server. In this Tutorial, we'll learn about HttpGET and HttpPOST method and Difference between httpGET and httpPOST methods, Comparison between httpGET vs httpPOST. Enhance your knowledge of ASP.NET with us through ASP.NET Certification Training.
Read More: Top 50 ASP.NET Core Interview Questions and Answers for 2024
Http GET method
Take an html form named "get_form.htm" and write the following code.
<html>
<head>
<title>Using Http Get Method</title>
</head>
<body>
<form id="frm_get" action=" Receiving_Get_Form.aspx" target="_blank" method="GET" >
<table>
<tr>
<td>First Name : </td> <td><input type="text" id="txtF_Name" name="F_name" /></td>
</tr> <tr>
<td>Last Name : </td> <td><input type=" text" id="txtL_name" name="L_name" /></td>
</tr> <tr>
<td>Email-Id : </td> <td><input type="text" id="txtE_mail" name="E_mail" /></td>
</tr> <tr>
<td>Password: </td> <td><input type="password" id="txtP_word" name="P_word"/> </td>
</tr> <tr>
<td><input type="submit" value="Submit" /></td>
</tr>
</table>
</form> </body>
</html>
When we click submit button of this form, it will be redirected to "Receiving_Get_Form.aspx" in a new window.
Page.Request.QueryString["param_name"]
<%@ page language="C#" AutoEventWireup="true" codeFile="Receiving_ Get_Form.aspx.cs" Inherits="Receiving_ Get_Form"% >
<html>
<head>
<title>Data Received Here </title>
</head>
<body>
<table border="1" cellpadding="6" cellspacing="3" >
<tr>
<td>First Name : </td> <td> <% Response.Write(Page.Request.QueryString["F_name"]); %> </td>
</tr>
<tr>
<td>Last Name : </td> <td> <% Response.Write(Page.Request.QueryString["L_name"]); %> </td>
</tr>
<tr>
<td>Email-Id : </td> <td> <% Response.Write(Page.Request.QueryString["E_mail"]); %> </td>
</tr>
<tr>
<td>Password : </td> <td> <% Response.Write(Page.Request.QueryString["P_word"]); %> </td>
</tr>
</table>
</body>
</html>
The First Name, Last Name, Email-Id and Password text boxes of get_form.htm form will be sent as parameter of query string with the field name are F_name, F_name, E_mail and P_word respectively. The name of query string fields automatically taken from name attribute of each HTML element, so don’t forget to specify the name attribute So that values should be retrieving using Page.Request.QueryString ["param_name"] here in "Receiving_Get_Form.aspx" automatically.
Key points about data submitted by using HttpGet
GET - Requests data from a specified resource
An hyperlink or anchor tag that points to an action will ALWAYS be an HttpGet.
Data is submitted as a part of url.
Data is visible to the user as it posts as query string.
It is not secure but fast and quick.
It use Stack method for passing form variable.
Data is limited to max length of query string.
It is good when you want user to bookmark page.
Read More: How to start your career as ASP.NET developer
HttpPost method
The POST request method is designed to request that a web server accepts the data enclosed in the request message's body for storage
Take an html form named “post_form.htm" and write the following code.
</head>
<body>
<form id="frm_post" action=" Receiving_Post_Form.aspx" target="_blank" method=" POST" >
<table>
<tr>
<td>First Name : </td> <td><input type="text" id="txtF_Name" name="F_name" /></td>
</tr> <tr>
<td>Last Name : </td> <td><input type=" text" id="txtL_name" name="L_name" /></td>
</tr> <tr>
<td>Email-Id : </td> <td><input type="text" id="txtE_mail" name="E_mail" /></td>
</tr> <tr>
<td>Password: </td> <td><input type="password" id="txtP_word" name="P_word"/> </td>
</tr> <tr>
<td><input type="submit" value="Submit" /></td>
</tr>
</table>
</form> </body>
</html>
When we click submit button of this form, it will be redirected to "Receiving_Post_Form.aspx" (opened in new window too). In ASP.NET, if data passed through HTTP Post method we need the following code to retrieve the data (as written in "Receiving_Post_Form.aspx").
Page.Request.Form["param_name"]
<%@ page language="C#" AutoEventWireup="true" codeFile="Receiving_Post_Form.aspx.cs" Inherits=" Receiving_Post_Form"% >
<html>
<head>
<title>Data Received Here </title>
</head>
<body>
<table border="1" cellpadding="6" cellspacing="3" >
<tr>
<td>First Name : </td> <td> <% Response.Write(Page.Request.Form["F_name"]); %> </td>
</tr>
<tr>
<td>Last Name : </td> <td> <% Response.Write(Page.Request.Form["L_name"]); %> </td>
</tr>
<tr>
<td>Email-Id : </td> <td> <% Response.Write(Page.Request. Form["E_mail"]); %> </td>
</tr>
<tr>
<td>Password : </td> <td> <% Response.Write(Page.Request. Form["P_word"]); %> </td>
</tr>
</table>
</body>
</html>
Values of "post_form.htm"(that used method="POST") form sent using POST method therefore, the URL still intact, we retrieve The First Name, Last Name, Email-Id and Password text using Page.Request.Form["param_name"] value taken from the name each of HTML element of second form (Once again don’t forget to specify name attribute for all textboxes so that we are able to get value automatically here in this page). When you click Submit button, values of "post_form.htm" passed to "Receiving_Post_Form.aspx".
Key points about data submitted using HttpPost
POST - Submits data to be processed to a specified resource
A Submit button will always initiate an HttpPost request.
Data is submitted in http request body.
Data is not visible in the url.
It is more secured but slower as compared to GET.
It use heap method for passing form variable
It can post unlimited form variables.
It is advisable for sending critical data which should not visible to users.
Comparison between HttpGet and HttpPost:
Aspect | HTTP GET | HTTP POST |
Data Transfer | It sends data in the query string of the URL. | It sends data in the body of the HTTP request. |
Data Length | The URL length restrictions also limits the data length. | It can take up larger data payloads. |
Caching | It can be cached easily by browsers, proxies and servers. | It can not be cached easily. |
Security | The visibility of the data in the URL makes it less secure. | The data can not be seen anywhere in the URL which makes it more secure. |
When should you use GET vs POST
Use GET when:
- retrieving data from the server without modifying anything like fetching a webpage or such static resources.
- repeating the same request that gives the same result every time like when you search products on e-commerce websites.
- you want to bookmark or share URLs so the request gives the same result.
Use POST when:
- submitting data to the server so as to create , update or delete the resources like submitting a form, uploading a file, etc.
- dealing with data that is sensitive like passwords or payment information.
- repeating the request may also change the results like submitting a form to update profile of the user.
Summary
I hope you will enjoy the tips. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome. To increase your command in ASP.NET, consider enrolling in our ASP.NET Certification Course and get your hands on a comprehensive step by step guide to understand the core concepts of ASP.NET with ease.