POST: Send Data to the Server

The POST method allows the client to specify data to be sent to some data-handling program that the server can access. It can be used for many applications. For example, POST could be used to provide input for:

  • CGI programs

  • Gateways to network services, like an NNTP server

  • Command-line interface programs

  • Annotation of documents on the server

  • Database operations

In practice, POST is used with CGI programs that happen to interface with other resources like network services and command-line programs. In the future, POST may be directly interfaced with a wider variety of server resources.

In a POST request, the data sent to the server is in the entity-body of the client’s request. After the server processes the POST request and headers, it may pass the entity-body to another program (specified by the URL) for processing. In some cases, a server’s custom API may handle the data, instead of a program external to the server.

POST requests should be accompanied by a Content-type header, describing the format of the client’s entity-body. The most commonly used format with POST is the URL-encoding scheme used for CGI applications. It allows form data to be translated into a list of variables and values. Browsers that support forms send the data in URL-encoded format. For example, given the HTML form of:

<title>Create New Account</title> <center><hr><h1>Account Creation Form</h1><hr></center> <form method="post" action="/cgi-bin/create.pl"> <pre> <b> Enter user name: <INPUT ...

Get HTTP Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.