Appendix A

HTML & CGI Quick Reference

-- by Lab Wab Ooi and Billy Baroon


CONTENTS


HTML

This reference guide marks the origins of all tags. Most browsers fully implement the HTML 2.0 tags correctly, which are marked in this guide as HTML 2.0. If a tag is marked as HTML 3.0, it's in the 3.0 release of HTML. However, the HTML 3.0 release isn't finalized and is subject to change. We used the latest draft available, which is dated March 28, 1995. apparently, this single draft will eventually be a series of separate documents that will as a whole make up the HTML 3.0 specification.

Note
At the time this book was going to print, HTML 3.2 was just announced by the World Wide Web Consortium. Unfortunately, it is too late to be covered in this appendix, but you can be pretty certain that it is compatible with HTML 3.0 features we describe here.

Netscape HTML Extensions means that the tag was invented by Netscape. Netscape Navigator might or might not be the only browser that supports these particular tags. Sun means that the tag was invented by Sun Microsystems for use with Java. Currently, HotJava and Netscape Navigator are the only browsers that support them. Netscape has created its own JavaScript-specific tags that currently can only be used by Netscape Navigator. More browsers probably will be available before the end of 1996. Internet Explorer means that Microsoft invented this tag and it's currently supported only by Microsoft's Internet Explorer.

Also, this is a quick reference guide, so only commonly used tags and attributes are listed. We have also added a few recently created tags that we expect will be popular in the future.

For more information on other HTML tags, see the following:

Special Characters

The following are the commonly used special characters. The full list can be found at http://www.w3.org/hypertext/WWW/MarkUp/html-spec/html-spec_13.html.

&
&amp
<
&lt
>
&gt
"
&quot

Structure

These tags define the structure of an HTML document. Although most browsers don't require the use of these tags, they're recommended for ensuring that HTML documents are always parsed correctly.

<html>..</html>

Purpose: Contains the entire HTML document.
Version: HTML 2.0.
Details: These tags are used at the beginning and the end of the HTML codes in a particular page.

<head>..</head>

Purpose: Contains other tags that describe the document in general.
Version: HTML 2.0.
Details: These tags should always come before <BODY> and <FRAMESET> tags.

<title>..</title>

Purpose: The title of the document goes within the tags.
Version: HTML 2.0.
Details: This is usually displayed in the title bar of the Web browser. However, a few browsers don't display this tag at all. This tag is highly recommended for all HTML documents and required according to the HTML 2.0 specification, though most browsers don't enforce this requirement.

<base>

Purpose: References the absolute URL of the document itself and goes between the <head>..</head> tags.
Version: HTML 2.0, TARGET is a Netscape Frame Extension.

Attributes:

HREF="URL" Specifies the absolute URL of the document itself.
TARGET="window_name" Specifies the frame to which links in this document will be targeted.

Details: It's useful when you view the document with a file:// URL because the <base> tag will reference the document to the correct absolute URL of the document.

<body>..</body>

Purpose: Contains the actual displayable part of the HTML document.
Version: HTML 3.0, BACKGROUND attribute is HTML 3.0; ALINK, BGCOLOR, LINK, TEXT, and VLINK are Netscape HTML 3.0 Extensions; BGPROPERTIES is an Internet Explorer Extension.

Attributes:

ALINK="#rrggbb" Specifies the color of an active link.
BACKGROUND="URL" Specifies a background image.
BGCOLOR="#rrggbb" Specifies the background color if there is no background image.
BGPROPERTIES=FIXED Specifies the properties related to the background. FIXED is the only one currently available, which means that the background shouldn't be scrolled.
LINK="#rrggbb" Specifies the color of a link.
TEXT="#rrggbb" Specifies the color of the text.
VLINK="#rrggbb" Specifies the color of a link that has been visited by the user previously.

Details: This tag should come after the </HEAD> tag. It should never be used in the same document as a <FRAMESET> tag. "#rrggbb" is an RGB (Red-Green-Blue) value in Hex.

Style

These are logical style tags. It is recommended that these are used instead of the hard formatting tags in the next section.

<A>..</A>

Purpose: Specifies an anchor.
Version: HTML 2.0, TARGET attribute is a Netscape Frame Extension.

Attributes:

HREF="URL" Specifies a link to another document. The other document is at the URL location.
NAME="ANchOR-NAME" Creates an anchor within this document so that a URL exists that can go to this exact location in the document.
TARGET="window_name" Specifies which frame in a frameset that will load the new URL.

Details: Other attributes exist but are very infrequently used. Between the opening and closing tags, text that appears on the screen and describes the anchor goes there. In the case of the HREF attribute, this text is then highlighted as a link. If two or more shapes overlap, the one with a center closest to the point clicked will be selected. Valid shape specifications are listed in the following table.

default Specifies the default link used when a spot on an image doesn't have a defined shape.
circle x, y, r A circle with center at x, y, with radius r.
polygon x1, y1, x2, y2, ... A polygon with sets of x,y coordinates that are the vertices of the polygon.
rect x, y, w, h A rectangle with an upper-left corner at x,y with width w and height h.

<address>..</address>

Purpose: Contains any kind of address.
Version: HTML 2.0.
Details: It is typically displayed in italics and may be indented also.

<blockquote>..</blockquote> and <bq>..</bq>

Purpose: Contains a block of text quoted from another source.
Version: HTML 2.0, <bq> is HTML 3.0.
Details: Typically displayed in an italic font and/or with larger right and left margins. Both <blockquote> and <bq> are valid under HTML 3.0. However, use of the first is recommended because more browsers should know about it since it is in HTML 2.0.

<br>

Purpose: Specifies a line break.
Version: HTML 2.0.
Details: There is no closing tag.

<cite>..</cite>

Purpose: Contains a citation.
Version: HTML 2.0.
Details: Typically displayed by an italic font. Use <cite> for short citations. Use <blockquote> for long citations.

<code>..</code>

Purpose: Contains a segment of a computer program (code).
Version: HTML 2.0.
Details: Typically displayed in a monospaced font such as Courier.

<em>..</em>

Purpose: Contains words that need to be emphasized.
Version: HTML 2.0.
Details: Typically displayed in italics.

<fn>..</fn>

Purpose: Contains a footnote.
Version: HTML 3.0.

Attribute:

ID="identifier" Places an anchor associated with the footnote so that you can link to it.

Details: The HTML 3.0 specification recommends that these be displayed as pop-up notes whenever possible.

<hr>

Purpose: Specifies that a horizontal line (rule) goes at this location.
Version: HTML 2.0, ALIGN, NOSHADE, SIZE, and WIDTH are Netscape HTML 2.0 extensions attributes; SRC is an HTML 3.0 attribute.

Attributes:

ALIGN=LEFT | RIGHT | CENTER Specifies the alignment of the line if the WIDTH attribute is used.
NOSHADE Make a solid colored line and don't do fancy shading.
SIZE=n Specifies the thickness of the line.
SRC="URL" Specifies the URL of an image to be used as the rule.
WIDTH=n | n% Specifies the length of the line in pixels or a percentage of the screen width.

Details: There is no closing tag.

<kdb>..</kdb>

Purpose: Contains text typed by a user from a keyboard.
Version: HTML 2.0.
Details: Usually displayed in a monospaced font such as Courier. Used primarily in computer user manuals.

<marquee>..</marquee>

Purpose: Contains a marquee.
Version: Internet Explorer Extensions.

Attributes:

ALIGN= BOTTOM | MIDDLE | TOP Specifies the alignment of the text around the marquee.
BEHAVIOR=ALTERNATIVE | SCROLL | SLIDE Specifies how the marquee will move. SCROLL will scroll the text repeatedly around the screen like a stock ticker. SLIDE will slide the text in one side until it reaches the other side and then it stops. ALTERNATIVE causes the text to bounce back and forth.
DIRECTION=LEFT | RIGHT Specifies which side of the screen the marquee enters from.
HEIGHT=n | n% Specifies the marquee height in either pixels or percent of the screen height.
HSPACE=n Specifies a horizontal margin in pixels.
LOOP=n | INFINITE Specifies the number of loops the marquee goes through.
SCROLLAMOUNT=n Specifies how many pixels the marquee moves per redraw.
SCROLLDELAY=n Specifies how many milliseconds between redraws.
WIDTH=n | n% Specifies the marquee width in either pixels or percent of the screen width.
VSPACE=n Specifies the virtual margin in pixels.

Details: If you want to do this feature, but instead of Java-aware browsers, use tickertape.java or ticker.java.

<note>..</note>

Purpose: Contains an important note for the reader.
Version: HTML 3.0.

Attributes :

:

CLASS=CAUTION | NOTE | WARNING Specifies the classification of the note.
SRC="URL" Specifies an image to use along with the note.

Details: Without a CLASS attribute, the HTML 3.0 document recommends indenting the warning.

<p>..</p>

Purpose: Contains a paragraph.
Version: HTML 2.0, Attributes are HTML 3.0.

Attributes:

ALIGN= CENTER | JUSTIFY | LEFT | RIGHT Specifies the alignment of the paragraph.
NOWRAP Specifies that the paragraph should not be automatically word wrapped. Line breaks should only occur at <br> tags.

Details: Under HTML 1.0, the </p> wasn't required. We strongly recommend that you use the closing tag.

<pre>..</pre>

Purpose: Contains preformatted text.
Version: HTML 2.0.
Details: Contains text that shouldn't be reformatted automatically by the browser. The text is displayed in a monospaced font, usually Courier, by browsers.

<q>..</q>

Purpose: Contains a short quote.
Version: HTML 3.0.
Details: Long quotes should use <blockquote>.

<samp>..</samp>

Purpose: Contains sample characters.
Version: HTML 2.0.
Details: Usually displayed in a monospaced font such as Courier.

<strong>..</strong>

Purpose: Contains text that should be strongly emphasized.
Version: HTML 2.0.
Details: Usually displayed in bold.

<sub>..</sub>

Purpose: Contains a subscript.
Version: HTML 3.0.

<sup>..</sup>

Purpose: Contains a superscript.
Version: HTML 3.0.

<var>..</var>

Purpose: Contains a variable.
Version: HTML 2.0.
Details: Usually displayed in italics.

Formatting

HTML purists recommend trying to use the style tags described previously and to avoid these tags whenever possible because they specify a fixed layout. The problem with this is that some browsers may not be able to display these. For example, the italics tag mentioned doesn't work with Lynx.

<b>..</b>

Purpose: Contains bold text.
Version: HTML 2.0.
Details: If bold is unavailable, the browser may select another representation.

<big>..</big>

Purpose: Contains text that should be displayed with a big font.
Version: HTML 3.0.
Details: Netscape's <font> tag can accomplish this, but this appears to be the standard.

<blink>..</blink>

Purpose: Makes text blink.
Version: Netscape HTML 2.0 Extensions (undocumented).
Details: This is possibly the world's most hated tag as it is irritating to many users. Its use isn't recommended.

<center>..</center>

Purposes: Contains items that need centering.
Version: Netscape HTML 2.0 Extensions.
Details: This is a much hated tag by much of the HTML community that recommends using the ALIGN=center attribute on other tags instead.

<font>

Purpose: Change the font size.
Version: Netscape HTML 2.0 Extensions.

Attributes:

SIZE=n Specifies the font size. This can also accept a relative font size change with -n or +n.

Details: Font sizes range from 1 to 7. The default is 3.

<i>..</i>

Purpose: Contains italicized text.
Version: HTML 2.0.
Details: If italics are unavailable, the browser may select another representation.

<nobr>..</nobr>

Purpose: Contains text that must be on the same line.
Version: Netscape HTML 2.0 Extensions.
Details: To be used sparingly but can be helpful at times.

<small>..</small>

Purpose: Contains text that should be displayed with a small font.
Version: HTML 3.0.
Details: Netscape's <font> tag can accomplish the same task, but this appears to be the standard.

<tt>..</tt>

Purpose: Contains teletype (monospaced) text.
Version: HTML 2.0.
Details: If a monospaced font is unavailable, the browser may select another representation.

<wbr>

Purpose: Specifies where a word break can go.
Version: Netscape HTML 2.0 Extensions.
Details: Only for use within a <NOBR> element. It tells the browser where it can break if it needs to.

Headings

HTML has six different sizes of headings available. Some people recommend using them progressively in your document. However, most HTML documents use them randomly without following a pattern.

<h1>..</h1>,<h2>..</h2>,<h3>..</h3>,<h4>..</h4>,<h5>..</h5>,<h6>..</h6>

Purpose: Contains headings within the text.
Version: HTML 2.0.
Details: <h1> is the largest heading size. They get progressively smaller with <h6> being the smallest.

Lists

HTML supports quite a bit of flexibility in list types. They can handle anything from a simple numbered list to building an entire dictionary.

<dl>..</dl>

Purpose: Contains a definition list.
Version: HTML 2.0.
Details: A definition list contains terms as specified by the <DT> tag and definitions by the <DD> tag.

<dd>

Purpose: Gives a definition.
Version: HTML 2.0.
Details: Usually follows a <DT> tag and a term. <DD> has no closing tag.

<dt>

Purpose: Identifies a definition term.
Version: HTML 2.0.
Details: Usually followed by a term and then a <DD> tag with a definition of that term. There is no closing tag.

<lh>..</lh>

Purpose: Specifies a list header.
Version: HTML 3.0.
Details: This is placed after a <ul> or <dl> tag and before the <li> tag.

<li>

Purpose: Specifies the start of a list item.
Version: HTML 2.0, TYPE and VALUE are Netscape HTML 2.0 Extensions attributes, SKIP and SRC are HTML 3.0 attributes.

Attributes:

SKIP=n In an ordered list, specifies that n sequence numbers be skipped in the list.
uSRC="URL" Specifies an image to use as a bullet for this item.
TYPE=xxx Specifies a change of type in the list type. xxx can be any of the choices from the TYPE attributes of <ol> and <ul>.
VALUE=n Specifies the start element number of the list. For example, to start with 4 instead of 1. For ordered lists only.

Details: <LI> has no closing tag.

<ol>..</ol>

Purpose: Contains an ordered list.
Version: HTML 2.0, START and TYPE are Netscape HTML 2.0 Extension Attributes, CONTINUE and SEQNUM in HTML 3.0.
Attributes:

CONTINUE Specifies that sequence numbers should continue where the last ordered list ended.
SEQNUM=n Specifies the starting sequence number of the list. For example, to start with 4 instead of 1.
START=n Specifies the starting sequence number of the list.
TYPE=A | a | I | i | 1 Specifies the type of enumerators used. 1 is the default, which is numbers. A is capital letters. a is lowercase letters. I is large roman numerals. i is small roman numerals.

Details: An ordered list is displayed as a numbered list by default. <LI> tags are used to specify where list items start.

<ul>..</ul>

Purpose: Contains an unordered list.
Version: HTML 2.0, the TYPE attribute is a Netscape HTML 2.0 Extensions. PLAIN, SRC, and WRAP are HTML 3.0 attributes.

Attributes:

PLAIN Specifies that no bullets be used.
SRC="URL" Specifies an image to use for bullets.
TYPE=circle | disc | square Specifies the type of bullet to use.
WRAP = horiz | vert Specifies a multicolumn list. horiz and vert tell the browser whether to add items horizontally or vertically first. The browser determines how many columns are appropriate.

Details: An unordered list is usually displayed as a bulleted list of items by default. <LI> tags are used to specify where list items start.

Images and Sounds

HTML has quite a bit of support for images but relatively little for sound (and none for smell and taste!). There is quite a bit of debate over the future of image-related tags. In some ways, HTML 3.0 is heading one direction, but Netscape and some other companies are heading another. Much debate is sure to ensue. In this section, we have tended toward the Netscape tags because they are more widely used at the current time.

<area>

Purpose: Defines an area of a client-side image map.
Version: Netscape HTML 3.0 Extension, also in Client-Side Image Map Draft.

Attributes:

COORDS="x,y,.." Specifies the vertices of the shape.
HREF="URL" Specifies the URL that should be linked to.
NOHREF Specifies that no action should be taken.
SHAPE=CIRCLE | DEFAULT | POLY | RECT Specifies whether the Shape is a circle, polygon, or rectangle.
TARGET="window name" Specifies the frame in which the URL being linked to should be displayed.

Details: Must be used with a <map> block.

<bgsound>

Purpose: Specifies a background sound should be played.
Version: Internet Explorer Extensions.

Attributes:

SRC="URL" Specifies the URL of the sound file.

Details: Currently supports au, midi, and wav file formats.

<caption>..</caption>

Purpose: Contains a caption for a figure.
Version: HTML 3.0.

Attributes:

ALIGN= BOTTOM | LEFT | RIGHT | TOP Specifies the alignment of the caption in relation to the figure.

Details: Only used within a <FIG> block.

<img>

Purpose: Specifies an inline image in the document.
Version: HTML 2.0, the BORDER, HEIGHT, WIDTH, HSPACE, VSPACE and the second version of the ALIGN attribute shown are Netscape HTML 2.0 extensions; the HEIGHT and WIDTH attributes are in HTML 3.0; USEMAP is a Netscape HTML 3.0 Extension and also in the Client-Side Image Map Draft.

Attributes:

ALIGN=TOP|MIDDLE|BOTTOM Specifies how the image will be aligned compared with the text. TOP aligns the top of the image with the tallest item in the line. MIDDLE aligns the bottom of the text with the middle of the image. BOTTOM aligns the middle of the text with the bottom of the image.
ALIGN=LEFT | RIGHT |TOP | Specifies how the image will be TEXTTOP | MIDDLE | aligned compared with the text. ABSMIDDLE | BASELINE | LEFT puts the image on the left BOTTOM | ABSBOTTOM margin and flows text around to the right. RIGHT does the opposite of LEFT. TEXTTOP is like TOP but uses the tallest text, not the tallest item. ABSMIDDLE is like MIDDLE but it uses the middle of the text. BASELINE is the same as BOTTOM. ABSBOTTOM aligns the bottom of the image with the bottom of the text.
ALT="text" Specifies text that can be used as an alternative to the image if the image cannot be displayed.
BORDER=n Specifies the thickness of the image border.
HEIGHT=n Specifies the height of the image. Allows the browser to leave space for the image and go ahead and display the text.
HSPACE=n Specifies how much of a horizontal margin to leave around the image.
ISMAP Indicates that the image is a server-side image map.
SRC="URL" Specifies the URL of the image.
USEMAP="URL" Specifies the URL of the client-side image map.
VSPACE=n Specifies how much of a vertical margin to leave around the image.
WIDTH=n Specifies the width of the image. Allows the browser to leave space for the image and display the text.

Details: GIF is the most commonly implemented image format in browsers. JPEG is commonly supported (though not as much as GIF) and is a good alternative choice because it saves disk space and bandwidth. For an image map to work, the <IMG> tag must be surrounded by an <a>..</a> pair.

<map>..</map>

Purpose: Defines a client-side image map.
Version: Netscape HTML 3.0 Extension, also appears in Client-Side Image Map Draft.

Attributes:

NAME="anchor" Specifies the anchor that can be linked to for this image map.

Details: The anchor needs to be linked to by a <img usemap="#anchor"> tag.

Forms

All HTML forms require a CGI program to be written to process the form. This means the use of these tags alone isn't sufficient to have a working form. HTML forms are primitive because it's not possible, without using JavaScript or Java, to check the validity of input while it's being typed.

<form>..</form>

Purpose: Contains a form.
Version: HTML 2.0.

Attributes:

ACTION="URL" Specifies a URL that will process the form when completed.
METHOD=GET|POST Specifies the data exchange method with the action URL.

Details: With the opening and closing tags, there should be some other tags such as <input> or <textarea> to specific the fields of the form.

<input>

Purpose: Specifies a field for user input.
Version: HTML 2.0 (first TYPE attribute shown), HTML 3.0 (second TYPE attribute shown), all attributes except for TYPE are Netscape JavaScript extensions.

Attributes:

onBlur="function" Specifies a JavaScript function to call when the field loses focus.
onChange="function" Specifies a JavaScript function to call when the field loses focus and the data in the field has changed.
onClick="function" Specifies a JavaScript function to call when this field has a mouse click.
onFocus="function" Specifies a JavaScript function to call when this field gets focus.
onLoad="function" Specifies a JavaScript function to call when all frames are loaded.
onMouseOver="function" Specifies a JavaScript function to call when the mouse pointer is over this field.
onSelect="function" Specifies a JavaScript function to call when the user selects some text in a text or textarea field.
TYPE=TEXT | PASSWORD | Specifies the type of field to be used. chECKBOX | RADIO | IMAGE | HIDDEN | SUBMIT | RESET
TYPE=chECKBOX | FILE | Specifies the type of field to be used. HIDDEN | IMAGE | PASSWORD | RADIO | RANGE | RESET | SCRIBBLE | SUBMIT | TEXT.

Details: Because the explanation of these attributes is complex, we have broken them out separately below. A few of the uncommon ones aren't covered below. There is no closing tag.

<input type=checkbox>

Purpose: Specifies a checkbox that represents a true-false choice.
Version: HTML 2.0.

Attributes:

chECKED Specifies that the checkbox is checked by default.
NAME="name" Specifies the name of the field. Required.
VALUE="value" Specifies the value of the field. Required.

Details: You can have several type=checkbox items that have the same field name as specified by the NAME attribute. When you do this, you can create an n-of-many selection field.

<input type=hidden>

Purpose: Allows the HTML document to specify fields and values that the user cannot change.
Version: HTML 2.0.

Attributes:

NAME="name" Specifies the name of the field. Required.
VALUE="value" Specifies the value of the field. Required.

Details: A hidden field is not displayed to the user.

<input type=radio>

Purpose: Specifies a radio button representing a true-false choice.
Version: HTML 2.0.

Attributes:

chECKED Specifies that the radio button is checked by default.
NAME="name" Specifies the name of the field. Required.
VALUE="value" Specifies the value of the field. Required.

Details: You can have several type=radio items that have the same field name as specified by the NAME attribute. Only one of these may be checked at any time. This is how you can create a 1-of-many selection field.

<input type=range>

Purpose: Specifies that the user must pick a numeric value within a range.
Version: HTML 3.0.

Attributes:

MAX=n Specifies the upper limit of the range.
MIN=n Specifies the lower limit of the range.
NAME="name" Specifies the name of the field. Required.

Details: If either MAX or MIN are real numbers, real numbers are accepted as input. Otherwise, only integers are accepted.

<input type=reset>

Purpose: Specifies a button that resets the form to its initial state.
Version: HTML 2.0, SRC is an HTML 3.0 attribute.

Attributes:

SRC="URL" Specifies an image to be used as the reset button.
VALUE="value" Specifies the label for the reset button.

<input type=submit>

Purpose: Specifies a submit button.
Version: HTML 2.0, SRC attribute is HTML 3.0.

Attributes:

NAME="name" Specifies the name of the field.
SRC="URL" Specifies an image to be used as the Submit button.
VALUE="value" Specifies the value of the field. If present, this also is the label for the button.

Details: The value of the NAME and VALUE attributes is that if you have multiple submit buttons, the ACTION URL can figure out which one was pressed.

<input type=text> and <input text=password>

Purpose: Specifies a field for the input of textual data.
Version: HTML 2.0.

Attributes:

MAXLENGTH=n Specifies the maximum length of the field. The default is infinite.
NAME="name" Specifies the name of the field.
SIZE=n Specifies the size of the field on the screen. If the number of characters entered is greater than SIZE but less than the MAXLENGTH, the field will scroll. The browser chooses its own default size if one is not specified.
VALUE="value" Specifies the default value of the field.

Details: The NAME attribute is required but all other attributes are optional. The only difference between type=text and type=password is that the users' keystrokes are displayed on the screen with type=text and aren't displayed with type=password.

<option>

Purpose: Specifies a list item in a selection list.
Version: HTML 2.0.

Attributes:

SELECTED Specifies that the item is selected by default.
VALUE="value" Specifies the value of the item.

Details: <OPTION> tags may only appear with a <select> block. Each <option> tag is followed by text that is displayed as in the list and also used as the value if a VALUE attribute isn't specified.

<select>..</select>

Purpose: Specifies a selection list.
Version: HTML 2.0, DISABLED is an HTML 3.0 attribute.

Attributes:

DISABLED Specifies that the select list should be displayed, but not to allow the user to change it.
MULTIPLE Specifies that multiple options may be selected at the same time. If it isn't specified, only one option may be selected at any given time.
NAME="name" Specifies the name of the field.
SIZE=n Specifies the name of options that are visible at any one time. If this is not specified, the browser chooses its own size.

Details: This is typically displayed as a scrolling list. List items are defined with the <OPTION> tag.

<textarea>..</textarea>

Purpose: Specifies a multiline text field.
Version: HTML 2.0, DISABLED is a HTML 3.0 attribute, WRAP is a Netscape HTML 3.0 extension, and the first set of attributes are Netscape JavaScript extensions.

Attributes:

onBlur, onChange, onClick See <input> for the meaning of these onFocus, onLoad, onMouseOver, onSelect
COLS=n Number of columns to be displayed on-screen.
DISABLED Specifies that the text area should be displayed but no changes to it are allowed.
NAME="name" The name of the field.
ROWS=n Number of rows to be displayed on-screen.
WRAP=OFF | PHYSICAL | VIRTUAL Specifies how word wrapping should be handled. PHYSICAL means word wrap on display and transmission. VIRTUAL means word wrap on display, but transmit line breaks only where the user typed them.

Details: If text appears between the opening and closing tags, it's the default value of the field. The COLS and ROWS attributes are used to determine the display size only. If the text is larger than the display size, scrollbars should be used.

Java and JavaScript

Java and JavaScript are languages that enhance the Web by making it more interactive. Sun and Netscape have invented their own tags for these languages. There has been some talk in the HTML community about replacing some of these tags with a new tag called <insert>, but no formal proposal has been made public yet.

<app>..</app>

Purpose: Includes an Alpha Java applet in a document.
Version: Sun HTML extensions.
Details: This only works for the Alpha release of Java and is obsolete. Use <applet> instead.

<applet>..</applet>

Purpose: Includes a Java applet in the document.
Version: Sun HTML extensions.

Attributes:

CODEBASE Specifies the base URL or the directory that contains the applet.
CODE A required attribute that contains the name of the applet class file.
ALT Alternate text that will be displayed if the browser does not know how to interpret the <applet> tag.
NAME Name or an anchor for the applet so that other applets on the same page will be able to communicate with the named applet.
WIDTH, HEIGHT Required width and height in pixels of the area where the applet is going to be displayed.
ALIGN Alignment of the applet with the same attributes as the <IMG> tag.
VSPACE, HSPACE Blank vertical (above and below the applet) and horizontal (right and left sides of the applet) space in pixels around the applet. It's the same as VSPACE and HSPACE in the <IMG> tag.

<param>

Purpose: User-defined parameters that go within the <applet>..</applet> tags.
Version: Sun HTML Extension.

Attributes:

NAME="attribute of the applet" Applet programmer-defined attribute.
VALUE="value" Value of the attribute NAME.

<script>..</script>

Purpose: Contains a script.
Version: Netscape JavaScript Extension.

Attributes:

LANGUAGE=JAVASCRIPT Specifies the language the script is in. JavaScript is the only current option.

Tables

Tables are currently the most widely implemented part of HTML 3.0. They are powerful and extremely useful. The only negative is that table documents look very bad on browsers that do not support tables.

<table>..</table>

Purpose: Main table tag that wraps around all other table tags.
Version: HTML 3.0, BORDER=n, CELLSPACING, CELLPADDING, and WIDTH=percent are Netscape HTML 3.0 Extensions.

Attributes:

ALIGN= BLEEDLEFT | BLEEDRIGHT | Specifies the alignment of the CENTER | JUSTIFY | LEFT | RIGHT table. The difference between BLEEDLEFT and LEFT, and BLEEDRIGHT and RIGHT is that the regular versions are flush with the margins. The BLEED versions are flush with the window border. JUSTIFY scales the figure to cover from left to right margin.
BORDER Specifies that the table should have a border displayed.
BORDER=n Specifies that the table should have a border of the given width.
CELLPADDING=n Specifies the amount of space between the edge of the cell and its contents.
CELLSPACING=n Specifies how much space should be placed between cells.
COLSPEC="column spec" Specifies column widths and alignments.
NOFLOW Specifies that text should not flow around the table.
NOWRAP Specifies that the browser should not automatically break lines.
UNITS= EN | PIXELS | RELATIVE Specifies what kind of units are used for COLSPEC and WIDTH. EN is a half of a point size. PIXELS is the number of pixels. RELATIVE is that each column is relative to the others.
WIDTH=n Specifies the width of the table. Netscape allows this to be a percentage of the document width.

Details: A column specification is a set of column widths and alignment from left to right. Each column is made up of a letter specifying the alignment (C for center, D for decimal alignment for floating point numbers, J for justified, L for left, and R for right) and then a number specifying the width in the UNITS specified.

<td>..</td> and <th>..</th>

Purpose: Specifies table data and table header cells respectively.
Version: HTML 3.0.

Attributes:

ALIGN=CENTER | DECIMAL | Specifies the horizontal alignment within the cell JUSTIFY | LEFT | RIGHT DECIMAL and makes sure that decimal points are aligned.
COLSPAN=n Specifies that this cell should span n columns.
NOWRAP Specifies that the cell should not wrap the text within it.
ROWSPAN=n Specifies that this cell should span n rows.
VALIGN= BASELINE | Specifies the vertical alignment within the cell. BOTTOM | MIDDLE | TOP BASELINE guarantees that all cells in the same row share the same baseline. The meaning of the others are obvious.

Details: <td> and <th> must occur within a <tr> block. The major difference between <td> and <th> cells are that <th> cells are given a darker or larger font.

<tr>..</tr>

Purpose: Specifies a table row.
Version: HTML 3.0.

Attributes:

ALIGN=CENTER | DECIMAL | Specifies the horizontal alignment within the row. DECIMAL makes sure JUSTIFY | LEFT| RIGHT decimal points are aligned between rows.
VALIGN=BASELINE | BOTTOM Specifies the vertical alignment within the cell. BASELINE | MIDDLE | TOP ensures that all cells in the same row share the same baseline. The meaning of the others are obvious.

Details: Must occur with a <table> block.

Frames

Frames are a Netscape invention. They break the browser screen in multiple windows, each of which contain a different HTML document. Unfortunately, navigation in Frames can be confusing and are disliked by many people.

<frame>

Purpose: Defines the size of a single frame in a frameset.
Version: Netscape Frame Extensions.

Attributes:

MARGINHEIGHT=n Specifies a fixed top/bottom margin for the frame.
MARGINWIDTH=n Specifies a fixed right/left margin for the frame.
NAME="window_name" Specifies a name for a frame. This can be used to link to this frame from other documents.
NORESIZE Specifies that the user isn't allowed to resize this frame.
SCROLLING= YES | NO | AUTO Specifies whether or not the frame should have a scrollbar. AUTO means that the browser gets to decide whether there is a scrollbar.
SRC="URL" Specifies the URL of the document to be displayed in this frame.

Details: There is no closing tag. Must be used within a <frameset> block.

<frameset>..</frameset>

Purpose: Defines a document as being a set of frames instead of an HTML document.
Version: Netscape Frame Extensions.

Attributes:

COLS="columns_spec" Specifies the width of columns in a frameset. The specification is a comma-delimited list. Each element of the list can be a percentage, a pixel value, or a relative value. Relative values are specified as * (meaning 1), 2* (meaning 2), and so on.
ROWS="rows_spec" Specifies the height of rows in a frameset. See COLS for syntax.

Details: May not be used in the same file as the <body> tag.

<noframes>..</noframes>

Purpose: Contains an alternative view for browsers that don't support frames.
Version: Netscape Frame Extensions.
Details: Must be used within a <frameset> block.

Comments

A comment starts with <!-- and ends with -->. Unfortunately, some browsers (for example, certain versions of Lynx) don't recognize comments. Therefore, though useful, the use of comments isn't recommended.

CGI

Common Gateway Interface (CGI) is an interface for external programs or applications to interact with information servers like the Webservers. CGI programs are commonly used to process forms, and they can be written in any language that can be executed on the Webserver such as C, C++, shell scripts, Visual Basic, Perl, and Tk/Tcl. CGI programs normally only reside in a special directory designated by the Webmaster due to security reasons. But some Webmasters use wrapper programs such as cgiwrap (UNIX) to safely allow Web authors to write and run CGI programs in a special directory under their home directories.

This section serves as a reference guide for commonly used CGI environment variables and headers. Version 1.1 of the CGI standard was used as the basis for this section.

Environment Variables

These are environment variables that are passed into CGI scripts. The last three involving REDIRECTs are specific to the ncSA HTTPD server and may not work with other services.

SERVER_SOFTWARE The name and the version number of the server.
SERVER_NAME The server's full host name, IP address, or an alias.
GATEWAY_INTERFACE Revision of the CGI specification.
SERVER_PROTOCOL The name and revision of the service protocol.
SERVER_PORT The port where the server is running.
REQUEST_METHOD The method of the request.
PATH_INFO Extra information at the end of the path of the executing CGI script.
PATH_TRANSLATED A translated version of PATH_INFO that has removed any virtual mappings.
SCRIPT_NAME The full virtual path of the executing CGI script.
QUERY_STRING Anything that goes after the ? in the URL that referenced this CGI program.
REMOTE_HOST The hostname of the machine making the request to the Webserver.
REMOTE_ADDR The IP address of REMOTE_HOST or the machine making the request.
AUTH_TYPE The authentication method used if the script was protected.
REMOTE_USER Login name of the user from REMOTE_ADDR if the user logged in via user-authentication.
REMOTE_IDENT Login name of the user from REMOTE_ADDR if the remote host supports user identification.
CONTENT_TYPE Content type of the data.
CONTENT_LENGTH Length of the content given by the client.
HTTP_AccEPT The MIME type that the client accepts.
HTTP_USER_AGENT The browser from the client.
HTTP_REFERER The page that refers the client to this CGI program.
REDIRECT_REQUEST The request for a redirect as sent to the server.
REDIRECT_STATUS The status the server would have sent if it hadn't been redirected.
REDIRECT_URL The URL that caused the redirect.

Headers for the Output of a CGI Program

These headers are HTTP headers. Your CGI program can return them to the browser as meta- information about the document being returned.

Allowed Lists the requests that the user is allowed to use on this URL.
Content-Encoding Encoding method.
Content-Language ISO3316 language code with an optional ISO639 country code.
Content-Length The length of the returning document.
Content-Transfer-Encoding The MIME encoding method used on the returning document.
Content-Type MIME type of the returning document.
Date Creation date in GMT format.
Expires Expiration date.
Last-Modified Last modification date.
Location Virtual path or the URL of the returning document.
Message-Id Message identifier.
Public Lists all requests that anyone can use.
Status Returned status of the request.
URI URI of the document.
Version Version of the document.
Title Title of the document.