Server Side Includes


This is a test document for the .SHTML extension files. This documents URL is /ht_root/exercise/shtml.shtml (actual file: HT_ROOT:[EXERCISE]SHTML.SHTML), last modified 22-Mar-2008 01:24:46.

This is the 626,535th time since Mon Dec 11 10:55:16 1995 that this document has been accessed (yes that's correct ... the document is used when batch testing the server!)

It is possible to include another SSI file. The following blue section has been <!--#include virtual="shtml_include1.shtml">ed ...

Current date/time:

The local time is: Wed Jan 7 00:26:49 2009
(or more VMSish: 07-Jan-2009 00:26:49)

GMT time is: Tue Jan 6 13:56:49 2009 GMT

"#echos":

"Accept: application/xhtml+xml,text/html;q=0.9,text/plain;" browser accepted content types
"ia64.vsm.com.au" request host and port destination
"[VARIABLE-DOES-NOT-EXIST!]" refering document
"CCBot/1.0 (+http://www.commoncrawl.org/bot.html)" browser identification string
"/ht_root/exercise/shtml.shtml" request path
"HT_ROOT:[EXERCISE]SHTML.SHTML" current document VMS file name
"" request query string
"38.103.63.57" browser host address
"38.103.63.57" browser host name
"" authenticated user
"ia64.vsm.com.au" server host name
"80" server host port
"HTTP/1.1" HTTP protocol version
"HTTPd-WASD/9.3.1 OpenVMS/IA64 SSL" server identification string

Let's include a file using:

<!--#include file="ht_root:[exercise]shtml_include1.html" -->
The included text is italicised for clarity.

I have begun a new paragraph.

That same file between <LISTING></LISTING> tags:

The included text is italicised for clarity.

I have begun a new paragraph.

The same file, this time using a VIRTUAL specification:

<!--#include virtual="../exercise/shtml_include1.html" -->
The included text is italicised for clarity.

I have begun a new paragraph.

Size of the file:

<!--#fsize file="ht_root:[exercise]shtml_include1.html" -->
We can determined the size of the file ... 88 bytes

Creation date:

<!--#fcreated file="ht_root:[exercise]shtml_include1.html" -->
We can determined the creation date/time of the file ... 26-Jan-2000 23:40:05

Last modification date:

<!--#flastmod file="ht_root:[exercise]shtml_include1.html" -->
We can determined the last modification date/time of the file ... 22-Mar-2008 01:24:46

``Index of'' this directory:

(The blue background is just to delineate the extent of the listing)

<!--#dir virtual="*.*" -->

Documents and files to exercise and test the HTTPd server.
Also performance testing raw results.

[TXT]  0k.txt                     22-Mar-2008 01:24            0  plain text
[TXT]  16k.txt                    22-Mar-2008 01:24       16,000  plain text
[TXT]  32k.txt                    22-Mar-2008 01:24       32,000  plain text
[TXT]  48k.txt                    22-Mar-2008 01:24       48,000  plain text
[TXT]  64k.txt                    22-Mar-2008 01:24       64,000  plain text
[HTM]  escherknot.html            22-Mar-2008 01:24           25  HyperText Markup Language
[IMG]  escherknot.xbm             22-Mar-2008 01:24       34,261  X-bitmap
[TXT]  face2face.com              22-Mar-2008 01:24          381  DCL procedure
[TXT]  face2face.php              22-Mar-2008 01:24           31  PHP source
[TXT]  face2face.pl                6-Apr-2008 06:24           53  Perl source
[TXT]  index.php                  22-Mar-2008 01:24          490  PHP source
[IMG]  ismap.gif                  22-Mar-2008 01:24        5,386  GIF image
[HTM]  ismap.html                 22-Mar-2008 01:24        1,558  "ISMAP Demo"
[txt]  ismap_cern.ismap           22-Mar-2008 01:24          241  Clickable-image mapping
[HTM]  ismap_circle.html          22-Mar-2008 01:24           27  HyperText Markup Language
[txt]  ismap_ncsa.ismap           22-Aug-2008 05:00          255  Clickable-image mapping
[HTM]  ismap_outside.html         22-Mar-2008 01:24           58  HyperText Markup Language
[txt]  ismap_point.ismap          22-Mar-2008 01:24          139  Clickable-image mapping
[HTM]  ismap_point_circle.html    22-Mar-2008 01:24           49  HyperText Markup Language
[HTM]  ismap_point_poly.html      22-Mar-2008 01:24           61  HyperText Markup Language
[HTM]  ismap_point_rect.html      22-Mar-2008 01:24           52  HyperText Markup Language
[HTM]  ismap_poly.html            22-Mar-2008 01:24           39  HyperText Markup Language
[HTM]  ismap_rect.html            22-Mar-2008 01:24           30  HyperText Markup Language
[IMG]  openvms.gif                22-Mar-2008 01:24        1,536  GIF image
[HTM]  openvms.html               22-Mar-2008 01:24           24  HyperText Markup Language
[TXT]  perf_files_ab.com          22-Mar-2008 01:24        2,598  DCL procedure
[TXT]  perf_files_ab_v90.txt       6-Apr-2008 06:24       14,329  plain text
[TXT]  perf_files_nocache_ab_v9+   6-Apr-2008 06:24       14,329  plain text
[TXT]  perf_persist_ab.com        22-Mar-2008 01:24        2,314  DCL procedure
[TXT]  perf_persist_ab_v90.txt     6-Apr-2008 06:24       14,057  plain text
[TXT]  perf_scripts_ab.com        22-Mar-2008 01:24        7,986  DCL procedure
[TXT]  perf_scripts_ab_v90.txt     6-Apr-2008 06:24       41,536  plain text
[TXT]  perf_xfer_ab.com           22-Mar-2008 01:24        1,415  DCL procedure
[TXT]  perf_xfer_ab_v90.txt        6-Apr-2008 06:24        7,356  plain text
[HTM]  readme.html                22-Mar-2008 01:24          106  HyperText Markup Language
[htm]  shtml.shtml                22-Mar-2008 01:24        5,786  HyperText Markup Language (pre-processed)
[???]  shtml.shtml$                7-Jan-2009 00:26            4  
[HTM]  shtml_include1.html        22-Mar-2008 01:24           88  HyperText Markup Language
[htm]  shtml_include1.shtml       22-Mar-2008 01:24          246  HyperText Markup Language (pre-processed)
[TXT]  singlebyteoutput.com        6-Apr-2008 06:24        2,207  DCL procedure
[TXT]  this$20is$20a$20pathwork+   6-Apr-2008 06:24          259  plain text
[TXT]  this$7ais$7aan$7a$sri$7a+   6-Apr-2008 06:24          251  plain text
[TXT]  this_is_$2balso$2b$2epat+   6-Apr-2008 06:24          239  plain text
[???]  this_is_$5kalso$5k.$sri$+  22-Mar-2008 01:24          244  
[???]  url_doc.url                22-Mar-2008 01:24           94  
[???]  url_doc_relative.url       22-Mar-2008 01:24           84  
[???]  url_none.url               22-Mar-2008 01:24           30  
[???]  url_openvms.url            22-Mar-2008 01:24           52  
[???]  url_wasd.url               22-Mar-2008 01:24          134  

More controlled ``Index of'' HTML files in this directory:

<!--#dir virtual="*.html" par="layout=UL_S:b&delimit=none&nops=yes&readme=no" -->

Documents and files to exercise and test the HTTPd server.
Also performance testing raw results.

[HTM]  escherknot.html            22-Mar-2008 01:24           25  HyperText Markup Language
[HTM]  ismap.html                 22-Mar-2008 01:24        1,558  "ISMAP Demo"
[HTM]  ismap_circle.html          22-Mar-2008 01:24           27  HyperText Markup Language
[HTM]  ismap_outside.html         22-Mar-2008 01:24           58  HyperText Markup Language
[HTM]  ismap_point_circle.html    22-Mar-2008 01:24           49  HyperText Markup Language
[HTM]  ismap_point_poly.html      22-Mar-2008 01:24           61  HyperText Markup Language
[HTM]  ismap_point_rect.html      22-Mar-2008 01:24           52  HyperText Markup Language
[HTM]  ismap_poly.html            22-Mar-2008 01:24           39  HyperText Markup Language
[HTM]  ismap_rect.html            22-Mar-2008 01:24           30  HyperText Markup Language
[HTM]  openvms.html               22-Mar-2008 01:24           24  HyperText Markup Language
[HTM]  readme.html                22-Mar-2008 01:24          106  HyperText Markup Language
[HTM]  shtml_include1.html        22-Mar-2008 01:24           88  HyperText Markup Language

Now some allowed DCL commands:

<!--#dcl say="f$time()" -->
7-JAN-2009 00:26:50.48
<!--#dcl say="4+5" -->
9
<!--#dcl say="\"<I>hello</I>\"" -->
hello
<!--#dcl dir="ht_root:[exercise]" -->
Directory HT_ROOT:[EXERCISE] 0K.TXT;1 16K.TXT;1 32K.TXT;1 48K.TXT;1 64K.TXT;1 ESCHERKNOT.HTML;1 ESCHERKNOT.XBM;1 FACE2FACE.COM;1 FACE2FACE.PHP;1 FACE2FACE.PL;2 INDEX.PHP;1 ISMAP.GIF;1 ISMAP.HTML;1 ISMAP_CERN.ISMAP;1 ISMAP_CIRCLE.HTML;1 ISMAP_NCSA.ISMAP;2 ISMAP_OUTSIDE.HTML;1 ISMAP_POINT.ISMAP;1 ISMAP_POINT_CIRCLE.HTML;1 ISMAP_POINT_POLY.HTML;1 ISMAP_POINT_RECT.HTML;1 ISMAP_POLY.HTML;1 ISMAP_RECT.HTML;1 OPENVMS.GIF;1 OPENVMS.HTML;1 PERF_FILES_AB.COM;1 PERF_FILES_AB_V90.TXT;2 PERF_FILES_NOCACHE_AB_V90.TXT;2 PERF_PERSIST_AB.COM;1 PERF_PERSIST_AB_V90.TXT;2 PERF_SCRIPTS_AB.COM;1 PERF_SCRIPTS_AB_V90.TXT;2 PERF_XFER_AB.COM;1 PERF_XFER_AB_V90.TXT;2 README.HTML;1 SHTML.SHTML;1 SHTML.SHTML$;1 SHTML_INCLUDE1.HTML;1 SHTML_INCLUDE1.SHTML;1 SINGLEBYTEOUTPUT.COM;2 THIS$20IS$20A$20PATHWORKS$20FILE-NAME.TXT;2 THIS$7AIS$7AAN$7A$SRI$7A$FILE-NAME.TXT;2 THIS_IS_$2BALSO$2B$2EPATHWORKS.TXT;2 THIS_IS_$5KALSO$5K.$SRI$5N$TXT;1 URL_DOC.URL;1 URL_DOC_RELATIVE.URL;1 URL_NONE.URL;1 URL_OPENVMS.URL;1 URL_WASD.URL;1 Total of 49 files.
<!--#dcl show="process" -->
7-JAN-2009 00:26:50.56 User: HTTP$NOBODY Process ID: 250003AE Node: CLIVE Process name: "HTTPd:80-46" Terminal: MBA98: User Identifier: [HTTP$NOBODY] Base priority: 4 Default file spec: HT_ROOT:[HTTP$NOBODY] Number of Kthreads: 1
<!--#dcl show="users/node" -->
OpenVMS User Processes at 7-JAN-2009 00:26 Total number of users = 1, number of processes = 1 Username Node Interactive Subprocess Batch JEREMY CLIVE 1

Now some privileged DCL commands:

<!--#dcl exec="show sym www_*" -->
WWW_AUTH_TYPE == "" WWW_CONTENT_LENGTH == "0" WWW_CONTENT_TYPE == "text/x-shtml" WWW_DOCUMENT_ROOT == "" WWW_GATEWAY_INTERFACE == "CGI/1.1" WWW_GATEWAY_MRS == "4096" WWW_HTTP_ACCEPT == "Accept: application/xhtml+xml,text/html;q=0.9,text/plain;" WWW_HTTP_ACCEPT_CHARSET == "ISO-8859-1,utf-8;q=0.7,*;q=0.7" WWW_HTTP_ACCEPT_ENCODING == "gzip" WWW_HTTP_ACCEPT_LANGUAGE == "en-us,en;q=0.5" WWW_HTTP_CACHE_CONTROL == "no-cache" WWW_HTTP_CONNECTION == "close" WWW_HTTP_HOST == "ia64.vsm.com.au" WWW_HTTP_PRAGMA == "no-cache" WWW_HTTP_USER_AGENT == "CCBot/1.0 (+http://www.commoncrawl.org/bot.html)" WWW_KEY_COUNT == "0" WWW_PATH_INFO == "/ht_root/exercise/shtml.shtml" WWW_PATH_ODS == "2" WWW_PATH_TRANSLATED == "HT_ROOT:[EXERCISE]SHTML.SHTML" WWW_QUERY_STRING == "" WWW_REMOTE_ADDR == "38.103.63.57" WWW_REMOTE_HOST == "38.103.63.57" WWW_REMOTE_PORT == "53290" WWW_REMOTE_USER == "" WWW_REQUEST_METHOD == "GET" WWW_REQUEST_SCHEME == "http:" WWW_REQUEST_TIME_GMT == "Tue, 06 Jan 2009 13:56:49 GMT" WWW_REQUEST_TIME_LOCAL == "Wed, 07 Jan 2009 00:26:49" WWW_REQUEST_URI == "/ht_root/exercise/shtml.shtml" WWW_SCRIPT_NAME == "" WWW_SERVER_ADDR == "150.101.13.12" WWW_SERVER_CHARSET == "ISO-8859-1" WWW_SERVER_GMT == "+10:30" WWW_SERVER_NAME == "ia64.vsm.com.au" WWW_SERVER_PORT == "80" WWW_SERVER_PROTOCOL == "HTTP/1.1" WWW_SERVER_SIGNATURE == "<ADDRESS>WASD/9.3.1 Server at ia64.vsm.com.au Port 80</ADDRESS>" WWW_SERVER_SOFTWARE == "HTTPd-WASD/9.3.1 OpenVMS/IA64 SSL" WWW_UNIQUE_ID == "SWP2yQAAAAQlAACzAsc"
<!--#exec cmd="show sym *" -->
$FACILITY == "%X00000000" $IDENT == "%X00000000" $RESTART == "FALSE" $SEVERITY == "1" $STATUS == "%X10000001" WWW_AUTH_TYPE == "" WWW_CONTENT_LENGTH == "0" WWW_CONTENT_TYPE == "text/x-shtml" WWW_DOCUMENT_ROOT == "" WWW_GATEWAY_INTERFACE == "CGI/1.1" WWW_GATEWAY_MRS == "4096" WWW_HTTP_ACCEPT == "Accept: application/xhtml+xml,text/html;q=0.9,text/plain;" WWW_HTTP_ACCEPT_CHARSET == "ISO-8859-1,utf-8;q=0.7,*;q=0.7" WWW_HTTP_ACCEPT_ENCODING == "gzip" WWW_HTTP_ACCEPT_LANGUAGE == "en-us,en;q=0.5" WWW_HTTP_CACHE_CONTROL == "no-cache" WWW_HTTP_CONNECTION == "close" WWW_HTTP_HOST == "ia64.vsm.com.au" WWW_HTTP_PRAGMA == "no-cache" WWW_HTTP_USER_AGENT == "CCBot/1.0 (+http://www.commoncrawl.org/bot.html)" WWW_KEY_COUNT == "0" WWW_PATH_INFO == "/ht_root/exercise/shtml.shtml" WWW_PATH_ODS == "2" WWW_PATH_TRANSLATED == "HT_ROOT:[EXERCISE]SHTML.SHTML" WWW_QUERY_STRING == "" WWW_REMOTE_ADDR == "38.103.63.57" WWW_REMOTE_HOST == "38.103.63.57" WWW_REMOTE_PORT == "53290" WWW_REMOTE_USER == "" WWW_REQUEST_METHOD == "GET" WWW_REQUEST_SCHEME == "http:" WWW_REQUEST_TIME_GMT == "Tue, 06 Jan 2009 13:56:49 GMT" WWW_REQUEST_TIME_LOCAL == "Wed, 07 Jan 2009 00:26:49" WWW_REQUEST_URI == "/ht_root/exercise/shtml.shtml" WWW_SCRIPT_NAME == "" WWW_SERVER_ADDR == "150.101.13.12" WWW_SERVER_CHARSET == "ISO-8859-1" WWW_SERVER_GMT == "+10:30" WWW_SERVER_NAME == "ia64.vsm.com.au" WWW_SERVER_PORT == "80" WWW_SERVER_PROTOCOL == "HTTP/1.1" WWW_SERVER_SIGNATURE == "<ADDRESS>WASD/9.3.1 Server at ia64.vsm.com.au Port 80</ADDRESS>" WWW_SERVER_SOFTWARE == "HTTPd-WASD/9.3.1 OpenVMS/IA64 SSL" WWW_UNIQUE_ID == "SWP2yQAAAAQlAACzAsc"


Look at the source file:

<!--#include virtual="shtml.shtml" type="text/plain" --> the source of this document follows:

<!--##config trace=1 -->
<HTML>
<TITLE>SSI / Pre-Processed HTML</TITLE>
<H1>Server Side Includes<BR></H1>
<P><HR SIZE=3 WIDTH=100% NOSHADE>

<!--#config sizefmt="bytes" -->

<P> This is a test document for the <TT>.SHTML</TT> extension files.  This
documents URL is <TT><!--#echo PATH_INFO --></TT> (actual file:
<TT><!--#echo
file_name --></TT>), last modified <!--#echo LAST_MODIFIED -->.

<P>
<TABLE BGCOLOR="ffff00" CELLPADDING=10 CELLSPACING=0 BORDER=1>
<TR><TD>
This is the
<!--#accesses ordinal since=" time since " timefmt="%c" -->
that this document has been accessed
(yes that's correct ... the document is used when batch testing the server!)
</TD></TR>
</TABLE>

<P> It is possible to include another SSI file. The following blue section has
been
<NOBR><TT>&lt;!--#include virtual="shtml_include1.shtml"&gt;</TT>ed ...</NOBR>

<P>
<TABLE BGCOLOR="99ccff" CELLPADDING=10 CELLSPACING=0 BORDER=1>
<TR><TD>
<!--#include virtual="shtml_include1.shtml" -->
</TD></TR>
</TABLE>

<H2> &quot;#echos&quot;: </H2>

<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=1>
<TR><TD>&quot;<!--#echo http_accept -->&quot;</TD>
<TD>browser accepted content types</TD></TR>
<TR><TD>&quot;<!--#echo http_host -->&quot;</TD>
<TD>request host and port destination</TD></TR>
<TR><TD>&quot;<!--#echo http_referer -->&quot;</TD>
<TD>refering document</TD></TR>
<TR><TD>&quot;<!--#echo http_user_agent -->&quot;</TD>
<TD>browser identification string</TD></TR>
<TR><TD>&quot;<!--#echo path_info -->&quot;</TD>
<TD>request path</TD></TR>
<TR><TD>&quot;<!--#echo path_translated -->&quot;</TD>
<TD>current document VMS file name</TD></TR>
<TR><TD>&quot;<!--#echo query_string -->&quot;</TD>
<TD>request query string</TD></TR>
<TR><TD>&quot;<!--#echo remote_addr -->&quot;</TD>
<TD>browser host address</TD></TR>
<TR><TD>&quot;<!--#echo remote_host -->&quot;</TD>
<TD>browser host name</TD></TR>
<TR><TD>&quot;<!--#echo remote_user -->&quot;</TD>
<TD>authenticated user</TD></TR>
<TR><TD>&quot;<!--#echo server_name -->&quot;</TD>
<TD>server host name</TD></TR>
<TR><TD>&quot;<!--#echo server_port -->&quot;</TD>
<TD>server host port</TD></TR>
<TR><TD>&quot;<!--#echo server_protocol -->&quot;</TD>
<TD>HTTP protocol version</TD></TR>
<TR><TD>&quot;<!--#echo server_software -->&quot;</TD>
<TD>server identification string</TD></TR>
</TABLE>

<H2> Let's include a file using: </H2>
<PRE>&lt;!--#include file="ht_root:[exercise]shtml_include1.html" --&gt;</PRE>
<!--#include file="ht_root:[exercise]shtml_include1.html" -->

<H2> That same file between &lt;LISTING&gt;&lt;/LISTING&gt;</TT> tags:
</H2>
<LISTING><!--#include virtual="shtml_include1.html" --></LISTING>

<H2> The same file, this time using a VIRTUAL specification:</H2>
<PRE>&lt;!--#include virtual="../exercise/shtml_include1.html" --&gt;</PRE>
<!--#include virtual="../exercise/shtml_include1.html" -->

<H2> Size of the file: </H2>
<PRE>&lt;!--#fsize file="ht_root:[exercise]shtml_include1.html" --&gt;</PRE>
We can determined the size of the file ...
<!--#fsize file="ht_root:[exercise]shtml_include1.html" -->

<H2> Creation date: </H2>
<PRE>&lt;!--#fcreated file="ht_root:[exercise]shtml_include1.html" --&gt;</PRE>
We can determined the creation date/time of the file ...
<!--#fcreated file="ht_root:[exercise]shtml_include1.html"
fmt="" 
-->

<H2> Last modification date: </H2>
<PRE>&lt;!--#flastmod file="ht_root:[exercise]shtml_include1.html" --&gt;</PRE>
We can determined the last modification date/time of the file ...
<!--#flastmod
file="ht_root:[exercise]shtml_include1.html"    
-->

<H2> ``Index of'' this directory:</H2>

<P> (The blue background is just to delineate the extent of the listing)

<PRE>&lt;!--#dir virtual="*.*" --&gt;</PRE>

<P>
<TABLE BGCOLOR="99ccff" CELLPADDING=5 CELLSPACING=0 BORDER=0>
<TR><TD>

<!--#dir virtual="*.*" -->

</TD></TR>
</TABLE>

<H2> More controlled ``Index of'' HTML files in this directory:</H2>

<PRE>&lt;!--#dir virtual="*.html" par="layout=UL_S:b&delimit=none&nops=yes&readme=no" --&gt;</PRE>

<P>
<TABLE BGCOLOR="99ccff" CELLPADDING=5 CELLSPACING=0 BORDER=0>
<TR><TD>

<!--#dir virtual="*.html" par="layout=UL_S:b&delimit=none&nops=yes&readme=no" -->

</TD></TR>
</TABLE>

<H2> Now some <B>allowed</B> DCL commands:</H2>

<PRE>&lt;!--#dcl say="f$time()" --&gt;</PRE>
<!--#dcl say="f$time()" -->

<PRE>&lt;!--#dcl say="4+5" --&gt;</PRE>
<!--#dcl say="4+5" -->

<PRE>&lt;!--#dcl say="\"&lt;I&gt;hello&lt;/I&gt;\"" --&gt;</PRE>
<!--#dcl say="\"<I>hello</I>\"" type="text/html" -->

<PRE>&lt;!--#dcl dir="ht_root:[exercise]" --&gt;</PRE>
<LISTING><!--#dcl dir="ht_root:[exercise]" --></LISTING>

<PRE>&lt;!--#dcl show="process" --&gt;</PRE>
<LISTING><!--#dcl show="process" --></LISTING>

<PRE>&lt;!--#dcl show="users/node" --&gt;</PRE>
<LISTING><!--#dcl show="users/node" --></LISTING>

<H2> Now some <B>privileged</B> DCL commands:</H2>

<PRE>&lt;!--#dcl exec="show sym www_*" --&gt;</PRE>
<LISTING><!--#dcl exec="show sym www_*" --></LISTING>

<PRE>&lt;!--#exec cmd="show sym *" --&gt;</PRE>
<LISTING><!--#exec cmd="show sym *" --></LISTING>

</UL>

<P><HR SIZE=3 WIDTH=100% NOSHADE>

<H2> Look at the source file: </H2>
<LISTING>&lt;!--#include virtual="shtml.shtml" type="text/plain" --&gt;</LISTING>
the source of this document follows:

<P>
<TABLE BGCOLOR="99ccff" CELLPADDING=5 CELLSPACING=0 BORDER=0>
<TR><TD>
<!--#include virtual="shtml.shtml" type="text/plain" -->
</TD></TR>
</TABLE>

<P><HR SIZE=3 WIDTH=100% NOSHADE>

<H2>Finally a broken one: </H2>
<LISTING>&lt;!--#includ e virtual="shtml.shtml" type="text/plain" --&gt;</LISTING>

<!--#includ e virtual="shtml.shtml" type="text/plain" -->

</HTML>


Finally a broken one:

<!--#includ e virtual="shtml.shtml" type="text/plain" -->

SSI Error!

directive unknown (line 175)  ...  \#includ e virtual="shtml.shtml" type="text/plain"\