CGI and Perl

Warning and Dangers of Multiple Persistent Servers

It is very important that you understand the impact that your CGI scripts can have on your server's resources. Remember that, on most servers, for each CGI request, a new process is spawned to handle that request. There are a few servers that will allow you to embed CGI invocations as function calls from within the server.

You must also consider the possibility of colliding clients when trying to define how a session is maintained. There are certain basic parameters that can be used to distinguish sessions. Our example used the REMOTE_ADDR environment variable, which is good to separate clients from one another. You may also wish to create multiple sessions along a given client in which case you could throw in another variable such as time.

Embedded ObjectsAn Internet Proposal

HTML is an evolving standard. As more and more people access information on the World Wide Web, we find more limitations on the original HTML specification. There are plenty of new proposals for adding functionality to the HTML language. One of these proposals addresses the ability to embed generic objects into an HTML document. These generic objects include such things as Java applets, Microsoft ActiveX controls, and documents and other multimedia objects. This new tag is the <OBJECT> tag, and it allows HTML authors to provide richer content for those browsers that support the newer document types.

The <OBJECT> tag has been designed in such a way that it will include support for many different types of embeddable objects. The first parameter is ID, which can be used to give the object a unique identifier for hypertext links. The CLASSID parameter specifies an implementation for the object. CODEBASE allows for an additional URL to be specified for the object's implementation. DATA and TYPE are used to specify the object's data and media type. CODETYPE is similar to TYPE, except that it refers to the type of data pointed to by CODEBASE. STANDBY allows you to specify a text string that is displayed by the browser while the data is being loaded. This tag also contains parameters for appearance and alignment such as ALIGN, WIDTH, HEIGHT, BORDER, HSPACE, and VSPACE. The NAME parameter allows the object's data to be included in the contents of a form if the <OBJECT> element is found within the <FORM> block.

One example of something that might use the <OBJECT> tag is a Java applet. Here is how the object would be placed within the HTML code.

<OBJECT CLASSID="java:myproduct.myclass" HEIGHT=100 WIDTH=100>
 Sorry, this browser cannot execute Java applets.
 </OBJECT>

The text within the <OBJECT> block is displayed if the Java applet cannot be executed in the browser. This might be a good place to put a hypertext link to the Web site where one can download a plug-in to handle the type of object you are trying to display. For example, here is an object reference to a PDF document:

<OBJECT data=mydoc.pdf TYPE="application/pdf" HEIGHT=200 WIDTH=100>
 <A HREF=http://www.adobe.com>Works best with the Acrobat plug-in</A>
 </OBJECT>