/usr/share/doc/libcgicc-doc/html/cgi-overview_8tmpl_source.html is in libcgicc-doc 3.2.16-0.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" dir="LTR">
<head>
<!-- $Id: header.html,v 1.5 2004/06/12 01:58:25 sbooth Exp $ -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>cgi-overview.tmpl Source File</title>
<link rev="made" href="mailto:bug-cgicc@gnu.org" />
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="cgicc-doc.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">cgi-overview.tmpl</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> /* -*-html-*- */</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /*</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  * $Id: cgi-overview.tmpl,v 1.6 2004/06/29 15:13:15 sbooth Exp $</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  *</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  * Copyright (C) 1996 - 2004 Stephen F. Booth <sbooth@gnu.org></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  * Part of the GNU cgicc library, http://www.cgicc.org</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  *</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  * Permission is granted to copy, distribute and/or modify this document</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  * under the terms of the GNU Free Documentation License, Version 1.1</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  * or any later version published by the Free Software Foundation;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  * with no Invariant Sections, with no Front-Cover Texts, and with </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  * no Back-Cover Texts.</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  * A copy of the license is included in the section entitled "GNU</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  * Free Documentation License".</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  */</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /*! \page cgi_overview Overview of the Common Gateway Interface</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> \htmlonly</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <div class="header">What is the Common Gateway Interface?</div></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <div class="subsection"></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> \endhtmlonly</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> The Common Gateway Interface (CGI) is a standard for external gateway</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> programs to interface with information servers, such as HTTP</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> servers. The official specification for the Common Gateway</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> Interface may be found at http://hoohoo.ncsa.uiuc.edu/cgi/interface.html</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> \htmlonly</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> \endhtmlonly</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> \htmlonly</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <div class="header">CGI scripts or CGI applications?</div></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <div class="subsection"></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> \endhtmlonly</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> Historically, many CGI applications were written in scripting languages</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> such as Perl. Not surprisingly, CGI code called by the HTTP server was</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> referred to as a CGI \e script. As the popularity of the web grew</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> and the need for dynamic content increased, CGI applications written in</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> languages other than Perl became more and more popular. These</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> applications were referred to simply as scripts. Although the term</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> script does not make intuitive sense for a compiled program, the</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> term has stuck. In this manual, the terms \e script and</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> \e application are used interchangeably.</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> \htmlonly</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> \endhtmlonly</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> \htmlonly</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <div class="header">CGI Processing</div></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <div class="subsection"></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> \endhtmlonly</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> When an HTTP server receives a request for a CGI script, the</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> server communicates to the script the details of the request. The</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> HTTP server and a CGI script communicate in four major ways: </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <ol></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <li><strong>Environment variables</strong></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> The HTTP server uses environment variables to pass information</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> about the request to the CGI script. Depending on the type of</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> request, the environment variables may or may not contain all the</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> information required by the script to function properly.</li></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <li><strong>The command line</strong></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> The command line is only used for \c isindex queries. Generally,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> \c isindex queries should not be used; since the command line is used</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> directly, they present many potential security risks.</li></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <li><strong>Standard input</strong></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> For HTTP \c POST or \c PUT queries, the HTTP server communicates</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> information to the CGI script via standard input. The amount of</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> information written to standard input is stored in the</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> \c CONTENT_LENGTH environment variable.</li></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <li><strong>Standard output</strong></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> A script returns its output on standard output. The output can be a</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> document generated by the script, or instructions to the server for</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> retrieving the desired output.</li></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </ol></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> \htmlonly</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> \endhtmlonly</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> \htmlonly</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <div class="nav"></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> \endhtmlonly</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> Previous: \ref index | </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> Current: \ref cgi_overview | </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> Next: \ref lib_overview</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> \htmlonly</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> \endhtmlonly</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> */</div></div><!-- fragment --></div><!-- contents -->
<!-- $Id: footer.html,v 1.7 2004/06/12 01:58:25 sbooth Exp $ -->
<hr>
<address><small>
<a href="http://www.cgicc.org">GNU cgicc</a> - A C++ class library for
writing CGI applications<br />
Copyright © 1996 - 2004
<a href="mailto:sboothATgnuDOTorg">Stephen F. Booth</a><br />
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front Cover Texts, and with no Back-Cover
Texts.<br />
Documentation generated Sun Oct 16 2016 16:14:42 for cgicc by
<a HREF="http://www.doxygen.org/index.html">doxygen</a> 1.8.12
</small></address>
</body>
</html>
|