A form in HTML is an area of a Web page which is used to gather input from a human user. The information which is gathered can then be returned to the page's owner using a SUBMIT action.
The form is, as expected, delimited by a <FORM> and </FORM> markup pair.
The <FORM> markup has two important attributes:
<FORM ACTION="http://ironbark.bendigo.latrobe.edu.au/cgi-bin/myprog METHOD="GET">
For example:
<INPUT TYPE="TEXT"This INPUT type can take several further attributes, eg:
<INPUT TYPE="TEXT" NAME="Name" MAXLENGTH="64" SIZE="20">In a browser, this would be presented as a (scrollable) textbox, 20 characters wide (but able to accept 64 characters of input), labelled with the string "Name".
There are several other INPUT types:
application/x-www-form-urlencodedIn this format, space characters are replaced by "+", and non-printing characters are given in hexadecimal format, thus: %HH, where the H characters are the hexadecimal digits of the byte. The fields of a form are encoded as name=value, with each pair separated by the "&" character. Fields with null values are (normally) not sent, nor are unselected CHECKBOXes and RADIO buttons.
By convention, CGI programs reside in a directory called cgi-bin. When a user clicks the SUBMIT button on a form, the HTTP server starts up the specified CGI program, and makes the form data available to it.
The subtle difference between GET and POST is the way in which a CGI program receives the form data. If the method was GET, the information is usually obtained by examining the contents of environment variables containing the form values as well as some extra useful stuff.
If the method was POST, the CGI program usually receives the form data on its standard input stream, with the extra stuff obtained, as before, from environment variables.
CGI programs can, as a rule, be written in any language (compiled or interpreted) supported on the system running the HTTP server.
On Unix servers, they are commonly written in Perl, C or as Bourne shell (/bin/sh) scripts.
At its core, the Intranet simply means that an organisation implements a TCP/IP based networking infrastructure behind the firewall (ie, inside the company), instead of using a proprietory system such as Novell Netware, the Microsoft "workgroups" architecture, etc. (although, these companies are moving to TCP/IP as their base technology with rather indecent haste...)
Using TCP/IP on the "corporate backbone" permits a company to move to SMTP & MIME-based email, and to move to a HTTP server and browser oriented mode of information sharing.
One of the big wins is that a browser such as Netscape can become the primary information resource for employees. For example, if I need to discover the status of a project in another department, I can check their Web server, where progress reports are published.
If I need to schedule a meeting with someone, I can check their personal page to view their timetable for the week.
These are examples of "groupware", or "collaboration" applications. At present this market is dominated by proprietory systems such as Lotus Notes.
In essence, it is a way of integrating the so-called "legacy" systems - the "big iron" mainframe applications that still form the core of most large businesses - with desktop computers. Some of the reasons for this are:
Middleware is a generic term for software which bridges the gap between the corporate database and the desktop. It provides tools for networked communications, for structuring database queries and updates and for building the desktop user interface.
This has lead some pundits to propose the humble (?) Web browser (eg, Netscape, Internet Explorer, Cyberdog, etc) as a universal client in a new client/server paradigm. The browser provides all of the user interface functions for all of an organisation's computing requirements. The corporate database is accessed by programs written to the Common Gateway Interface (CGI) specification.
What we may be about to see is a new world where the Web paradigm becomes the basis of everything (;-)
As they say, watch this space.