HTML ReferencesLesson #86

HTTP Methods

The Hypertext Transfer Protocol (HTTP) is designed to enable

HTTP Request Methods

The Hypertext Transfer Protocol (HTTP) is designed to enable communications between clients and servers.

HTTP works as a request-response protocol between a client and server.

Example: A client (browser) sends an HTTP request to the server; then the server returns a response to the client. The response contains a status code for the request, and it also may contain the requested content.

Here are the different HTTP request methods:

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS
  • CONNECT
  • TRACE

The two most commonly used methods are: GET and POST.


The GET Method

GET is used to retrieve data from a server.

Note that the query string (name/value pairs) is sent in the URL of a GET request:

Example Code

html
Try it Yourself
/test/demo_form.php?name1=value1&name2=value2

Some notes on GET requests:

  • GET requests can be cached
  • GET requests remain in the browser history
  • GET requests can be bookmarked
  • GET requests should never be used when dealing with sensitive data
  • GET requests have length restrictions
  • GET requests are only used to request data (not modify)

The POST Method

POST is used to send data to a server to create a resource.

The data sent to the server with POST is stored in the request body of the HTTP request:

Example Code

html
Try it Yourself
POST /test/demo_form.php HTTP/1.1

Host: EA Academy.com

   name1=value1&name2=value2

Some notes on POST requests:

  • POST requests are never cached
  • POST requests do not remain in the browser history
  • POST requests cannot be bookmarked
  • POST requests have no restrictions on data length

Compare GET vs. POST

The following table compares the two HTTP methods: GET and POST.

GETPOST
BACK button/ReloadHarmlessData will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
BookmarkedCan be bookmarkedCannot be bookmarked
CachedCan be cachedNot cached
Encoding typeapplication/x-www-form-urlencodedapplication/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
HistoryParameters remain in browser historyParameters are not saved in browser history
Restrictions on data lengthYes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters)No restrictions
Restrictions on data typeOnly ASCII characters allowedNo restrictions. Binary data is also allowed
SecurityGET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information!POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
VisibilityData is visible to everyone in the URLData is not displayed in the URL

The PUT Method

PUT completely replaces an existing resource.

PUT requests are idempotent - meaning that sending the same PUT request multiple times will produce the same result. In contrast, sending a POST request repeatedly have side effects of creating the same resource multiple times.


The PATCH Method

The PATCH method is used to apply partial modifications to a resource. Unlike PUT, you only send the fields you want to change.


The HEAD Method

HEAD is almost identical to GET, but returns only headers, no body.

In other words, if GET /users returns a list of users, then HEAD /users will make the same request, but will not return the list of users.

A HEAD request is useful for checking what a GET request will return before actually making a GET request - a HEAD request can read the Content-Length header to check the size of the file, without actually downloading the file.


The DELETE Method

The DELETE method deletes the specified resource from the server.


The OPTIONS Method

The OPTIONS method returns the supported HTTP methods for a resource.


The CONNECT Method

The CONNECT method is used to start a two-way communications (a tunnel) with the requested resource.


The TRACE Method

The TRACE method is used to perform a message loop-back test that tests the path for the target resource (useful for debugging purposes).

Interactive Code Examples

Example 1

html
Try it Yourself
Runnable HTML example from EA Academy.
/test/demo_form.php?name1=value1&name2=value2

Example 2

html
Try it Yourself
Runnable HTML example from EA Academy.
POST /test/demo_form.php HTTP/1.1

Host: ea-academy.com


   name1=value1&name2=value2