METHOD attribute

The METHOD part of the <FORM> tag tells the browser how to send the information gathered in the form to the Web server. METHOD has only two possible values: GET and POST. The difference between these two methods is how the browser encodes the data to be sent to the server.

The GET method encodes the NAME/VALUE pairs into the URL itself. Then the Web server moves the NAME/VALUE list into an environment variable, QUERY_STRING, before calling the CGI program.

The drawback of GET is that the NAME/VALUE list is limited to 255 characters including the special URL encoding symbols. The advantage is that all of the input data is visible in the URL (although this could be considered a disadvantage as well). After submitting the form, the user can bookmark the URL or save a copy of the URL text for future quick access to the results of the submittal.

On the other hand, the POST method sends the data to the Web server as a data stream. Using this method, the NAME/VALUE list is limited to 2,147,483,647 characters. With the POST method, the browser does not modify the URL. Instead, it connects to the Web server and sends the NAME/VALUE list as a stream of data. The Web server pipes this data stream through the standard input stream (STDIN) of the CGI program.

All Web servers support the GET method, and most modern Web servers support the POST method. ACUCOBOL-GT supports both methods. This means that when you write your CGI program using the ACUCOBOL-GT CGI enhancements, the method you choose makes absolutely no difference in the way you code your CGI program. You may change the method in the HTML FORM tag without recoding or even recompiling your CGI program.