Archive for the 'HTML' Category

POST vs. GET

The Fundamental Differences

The HTML specifications technically define the difference between “GET” and “POST” so that former means that form data is to be encoded (by a browser) into a URL while the latter means that the form data is to appear within a message body. The “GET” method should be used when the form processing is “idempotent”, and in those cases only. As a simplification, we might say that “GET” is basically for just getting (retrieving) data whereas “POST” may involve anything, like storing or updating data, or ordering a product, or sending E-mail.

Differences in Form Submission

  • If the method is "get" - -, the user agent takes the value of action, appends a ? to it, then appends the form data set, encoded using the application/x-www-form-urlencoded content type. The user agent then traverses the link to this URI. In this scenario, form data are restricted to ASCII codes.
  • If the method is "post" –, the user agent conducts an HTTP post transaction using the value of the action attribute and a message created according to the content type specified by the enctype attribute.

Thus, for METHOD=”GET” the form data is encoded into a URL (or, speaking more generally, into a URI). This means that an equivalent to a form submission can be achieved by following a normal link referring to a suitable URL; On a typical browser, the user sees the URL of a document somewhere (e.g. on Location line), and if he is viewing the results of a query sent using METHOD=”GET”, he will see what the actual query was (i.e. the part of the URL that follows the ? sign). The user could then bookmark it or cut&paste it for later use (e.g. to be E-mailed or put into one’s own HTML document after some editing).