~ubuntu-branches/ubuntu/trusty/ocamlnet/trusty

« back to all changes in this revision

Viewing changes to doc/html-main/Netcgi.cgi_environment-c.html

  • Committer: Bazaar Package Importer
  • Author(s): Stéphane Glondu
  • Date: 2011-09-02 14:12:33 UTC
  • mfrom: (18.2.3 sid)
  • Revision ID: james.westby@ubuntu.com-20110902141233-zbj0ygxb92u6gy4z
Tags: 3.4-1
* New upstream release
  - add a new NetcgiRequire directive to ease dependency management
    (Closes: #637147)
  - remove patches that were applied upstream:
    + Added-missing-shebang-lines-in-example-shell-scripts
    + Try-also-ocamlc-for-POSIX-threads

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html>
 
3
<head>
 
4
<link rel="stylesheet" href="style.css" type="text/css">
 
5
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
 
6
<link rel="Start" href="index.html">
 
7
<link rel="previous" href="Netcgi.rw_cgi_argument-c.html">
 
8
<link rel="next" href="Netcgi.cgi-c.html">
 
9
<link rel="Up" href="Netcgi.html">
 
10
<link title="Index of types" rel=Appendix href="index_types.html">
 
11
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
 
12
<link title="Index of values" rel=Appendix href="index_values.html">
 
13
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
 
14
<link title="Index of class methods" rel=Appendix href="index_methods.html">
 
15
<link title="Index of classes" rel=Appendix href="index_classes.html">
 
16
<link title="Index of class types" rel=Appendix href="index_class_types.html">
 
17
<link title="Index of modules" rel=Appendix href="index_modules.html">
 
18
<link title="Index of module types" rel=Appendix href="index_module_types.html">
 
19
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
 
20
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
 
21
<link title="Https_client" rel="Chapter" href="Https_client.html">
 
22
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
 
23
<link title="Equeue" rel="Chapter" href="Equeue.html">
 
24
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
 
25
<link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html">
 
26
<link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html">
 
27
<link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html">
 
28
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
 
29
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
 
30
<link title="Uq_io" rel="Chapter" href="Uq_io.html">
 
31
<link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html">
 
32
<link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html">
 
33
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
 
34
<link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html">
 
35
<link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html">
 
36
<link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html">
 
37
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
 
38
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
 
39
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
 
40
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
 
41
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
 
42
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
 
43
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
 
44
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
 
45
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
 
46
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
 
47
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
 
48
<link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html">
 
49
<link title="Http_client" rel="Chapter" href="Http_client.html">
 
50
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
 
51
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
 
52
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
 
53
<link title="Http_fs" rel="Chapter" href="Http_fs.html">
 
54
<link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html">
 
55
<link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html">
 
56
<link title="Netgssapi" rel="Chapter" href="Netgssapi.html">
 
57
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
 
58
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
 
59
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
 
60
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
 
61
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
 
62
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
 
63
<link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html">
 
64
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
 
65
<link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html">
 
66
<link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html">
 
67
<link title="Netmcore" rel="Chapter" href="Netmcore.html">
 
68
<link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html">
 
69
<link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html">
 
70
<link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html">
 
71
<link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html">
 
72
<link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html">
 
73
<link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html">
 
74
<link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html">
 
75
<link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html">
 
76
<link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html">
 
77
<link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html">
 
78
<link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html">
 
79
<link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html">
 
80
<link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html">
 
81
<link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html">
 
82
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
 
83
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
 
84
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
 
85
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
 
86
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
 
87
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
 
88
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
 
89
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
 
90
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
 
91
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
 
92
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
 
93
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
 
94
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
 
95
<link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html">
 
96
<link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html">
 
97
<link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html">
 
98
<link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html">
 
99
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
 
100
<link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html">
 
101
<link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html">
 
102
<link title="Netshm" rel="Chapter" href="Netshm.html">
 
103
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
 
104
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
 
105
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
 
106
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
 
107
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
 
108
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
 
109
<link title="Netstream" rel="Chapter" href="Netstream.html">
 
110
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
 
111
<link title="Netmime" rel="Chapter" href="Netmime.html">
 
112
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
 
113
<link title="Neturl" rel="Chapter" href="Neturl.html">
 
114
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
 
115
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
 
116
<link title="Netdate" rel="Chapter" href="Netdate.html">
 
117
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
 
118
<link title="Netulex" rel="Chapter" href="Netulex.html">
 
119
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
 
120
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
 
121
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
 
122
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
 
123
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
 
124
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
 
125
<link title="Netaux" rel="Chapter" href="Netaux.html">
 
126
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
 
127
<link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html">
 
128
<link title="Netfs" rel="Chapter" href="Netfs.html">
 
129
<link title="Netglob" rel="Chapter" href="Netglob.html">
 
130
<link title="Netauth" rel="Chapter" href="Netauth.html">
 
131
<link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html">
 
132
<link title="Netnumber" rel="Chapter" href="Netnumber.html">
 
133
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
 
134
<link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html">
 
135
<link title="Xdr" rel="Chapter" href="Xdr.html">
 
136
<link title="Netcompression" rel="Chapter" href="Netcompression.html">
 
137
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
 
138
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
 
139
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
 
140
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
 
141
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
 
142
<link title="Netsys" rel="Chapter" href="Netsys.html">
 
143
<link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html">
 
144
<link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html">
 
145
<link title="Netlog" rel="Chapter" href="Netlog.html">
 
146
<link title="Netexn" rel="Chapter" href="Netexn.html">
 
147
<link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html">
 
148
<link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html">
 
149
<link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html">
 
150
<link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html">
 
151
<link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html">
 
152
<link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html">
 
153
<link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html">
 
154
<link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html">
 
155
<link title="Netsys_types" rel="Chapter" href="Netsys_types.html">
 
156
<link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html">
 
157
<link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html">
 
158
<link title="Netgzip" rel="Chapter" href="Netgzip.html">
 
159
<link title="Netpop" rel="Chapter" href="Netpop.html">
 
160
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
 
161
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
 
162
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
 
163
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
 
164
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
 
165
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
 
166
<link title="Rpc" rel="Chapter" href="Rpc.html">
 
167
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
 
168
<link title="Rpc_util" rel="Chapter" href="Rpc_util.html">
 
169
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
 
170
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
 
171
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
 
172
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
 
173
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
 
174
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
 
175
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
 
176
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
 
177
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
 
178
<link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html">
 
179
<link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html">
 
180
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
 
181
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
 
182
<link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html">
 
183
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
 
184
<link title="Shell" rel="Chapter" href="Shell.html">
 
185
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
 
186
<link title="Shell_fs" rel="Chapter" href="Shell_fs.html">
 
187
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
 
188
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html">
 
189
<link title="Intro" rel="Chapter" href="Intro.html">
 
190
<link title="Platform" rel="Chapter" href="Platform.html">
 
191
<link title="Foreword" rel="Chapter" href="Foreword.html">
 
192
<link title="Ipv6" rel="Chapter" href="Ipv6.html"><link title="CGI properties" rel="Section" href="#3_CGIproperties">
 
193
<link title="Header of the incoming HTTP request." rel="Section" href="#3_HeaderoftheincomingHTTPrequest">
 
194
<link title="Response header" rel="Section" href="#3_Responseheader">
 
195
<link title="The output channel transferring the response" rel="Section" href="#3_Theoutputchanneltransferringtheresponse">
 
196
<link title="Logging" rel="Section" href="#3_Logging">
 
197
<link title="Miscellaneous" rel="Section" href="#3_Miscellaneous">
 
198
<title>Ocamlnet 3 Reference Manual : Netcgi.cgi_environment</title>
 
199
</head>
 
200
<body>
 
201
<div class="navbar"><a href="Netcgi.rw_cgi_argument-c.html">Previous</a>
 
202
&nbsp;<a href="Netcgi.html">Up</a>
 
203
&nbsp;<a href="Netcgi.cgi-c.html">Next</a>
 
204
</div>
 
205
<center><h1>Class type <a href="type_Netcgi.cgi_environment.html">Netcgi.cgi_environment</a></h1></center>
 
206
<br>
 
207
<pre><span id="TYPEcgi_environment"><span class="keyword">class type</span> cgi_environment</span> = <code class="code">object</code> <a href="Netcgi.cgi_environment-c.html">..</a> <code class="code">end</code></pre>The environment of a request consists of the information available
 
208
    besides the data sent by the user (as key-value pairs).<br>
 
209
<hr width="100%">
 
210
<span id="3_CGIproperties"><h3>CGI properties</h3></span>
 
211
<p>
 
212
 
 
213
      The following properties are standardised by CGI.  The methods
 
214
      return <code class="code">""</code> (or <code class="code">None</code> in the case of the port number) when the
 
215
      property is not available.<pre><span id="METHODcgi_gateway_interface"><span class="keyword">method</span> cgi_gateway_interface</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_server_name"><span class="keyword">method</span> cgi_server_name</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_server_port"><span class="keyword">method</span> cgi_server_port</span> : <code class="type">int option</code></pre><pre><span id="METHODcgi_server_protocol"><span class="keyword">method</span> cgi_server_protocol</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_server_software"><span class="keyword">method</span> cgi_server_software</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_request_method"><span class="keyword">method</span> cgi_request_method</span> : <code class="type">string</code></pre><div class="info">
 
216
We recommend you to use the method <a href="Netcgi.cgi-c.html#METHODrequest_method"><code class="code">Netcgi.cgi.request_method</code></a>
 
217
        which is more type-safe and informative.<br>
 
218
</div>
 
219
<pre><span id="METHODcgi_script_name"><span class="keyword">method</span> cgi_script_name</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_path_info"><span class="keyword">method</span> cgi_path_info</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_path_translated"><span class="keyword">method</span> cgi_path_translated</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_auth_type"><span class="keyword">method</span> cgi_auth_type</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_remote_addr"><span class="keyword">method</span> cgi_remote_addr</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_remote_host"><span class="keyword">method</span> cgi_remote_host</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_remote_user"><span class="keyword">method</span> cgi_remote_user</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_remote_ident"><span class="keyword">method</span> cgi_remote_ident</span> : <code class="type">string</code></pre><pre><span id="METHODcgi_query_string"><span class="keyword">method</span> cgi_query_string</span> : <code class="type">string</code></pre><div class="info">
 
220
This is the row query string.  The <a href="Netcgi.cgi-c.html"><code class="code">Netcgi.cgi</code></a> class gives
 
221
        you an easy access to the arguments through the <code class="code">#arg...</code>
 
222
        methods.<br>
 
223
</div>
 
224
<pre><span id="METHODprotocol"><span class="keyword">method</span> protocol</span> : <code class="type"><a href="Nethttp.html#TYPEprotocol">Nethttp.protocol</a></code></pre><div class="info">
 
225
The server protocol in a decoded form.  It can be either<ul>
 
226
<li><code class="code">`Http((major,minor),attributes)</code> or</li>
 
227
<li><code class="code">`Other</code>.</li>
 
228
</ul>
 
229
<br>
 
230
</div>
 
231
<pre><span id="METHODcgi_property"><span class="keyword">method</span> cgi_property</span> : <code class="type">?default:string -> string -> string</code></pre><div class="info">
 
232
Returns a (possibly non-standard) CGI environment property.
 
233
        If the property is not set, <code class="code">Not_found</code> is be raised unless
 
234
        the <code class="code">default</code> argument is passed.  The <code class="code">default</code> argument
 
235
        determines the result of the function in this case.
 
236
<p>
 
237
 
 
238
        The method takes the case-sensitive name and returns the value
 
239
        of the property. Usually, these properties have uppercase
 
240
        names.
 
241
<p>
 
242
 
 
243
        For example, <code class="code">cgi_gateway_interface</code> returns the same as <pre><code class="code">        cgi_property ~default:"" "GATEWAY_INTERFACE" </code></pre>
 
244
<p>
 
245
 
 
246
        You cannot access the fields coming from the HTTP header.  Use
 
247
        the method <code class="code">input_header_field</code> instead.<br>
 
248
</div>
 
249
<pre><span id="METHODcgi_properties"><span class="keyword">method</span> cgi_properties</span> : <code class="type">(string * string) list</code></pre><div class="info">
 
250
Return all properties as an associative list.<br>
 
251
</div>
 
252
<pre><span id="METHODcgi_https"><span class="keyword">method</span> cgi_https</span> : <code class="type">bool</code></pre><div class="info">
 
253
A well-known extension is the HTTPS property.  It indicates
 
254
        whether a secure connection is used (SSL/TLS).  This method
 
255
        interprets this property and returns true if the connection is
 
256
        secure.  This method fails if there is a HTTPS property with
 
257
        an unknown value.<br>
 
258
</div>
 
259
<span id="3_HeaderoftheincomingHTTPrequest"><h3>Header of the incoming HTTP request.</h3></span><pre><span id="METHODinput_header"><span class="keyword">method</span> input_header</span> : <code class="type"><a href="Netmime.mime_header-c.html">Netmime.mime_header</a></code></pre><div class="info">
 
260
The whole HTTP header.<br>
 
261
</div>
 
262
<pre><span id="METHODinput_header_field"><span class="keyword">method</span> input_header_field</span> : <code class="type">?default:string -> string -> string</code></pre><div class="info">
 
263
<code class="code">#input_header_field ?default f</code> returns the value of a field
 
264
        <code class="code">f</code> of the HTTP request header.  The field name <code class="code">f</code> is
 
265
        case-insensitive; if the name is a compound name, the parts
 
266
        are separated by "-", e.g. <code class="code">"content-length"</code>.  If there are
 
267
        several fields with the same name only the first field will be
 
268
        returned.<br>
 
269
<b>Raises</b> <code>Not_found</code> if the field does not exist, unless the
 
270
        <code class="code">default</code> argument is passed.  The <code class="code">default</code> argument is the
 
271
        result of the function in this case.<br>
 
272
</div>
 
273
<pre><span id="METHODmultiple_input_header_field"><span class="keyword">method</span> multiple_input_header_field</span> : <code class="type">string -> string list</code></pre><div class="info">
 
274
Returns the values of all fields with the passed name of the
 
275
        request header.<br>
 
276
</div>
 
277
<pre><span id="METHODinput_header_fields"><span class="keyword">method</span> input_header_fields</span> : <code class="type">(string * string) list</code></pre><div class="info">
 
278
Returns the input header as (name,value) pairs.  The names may
 
279
        consist of lowercase or uppercase letters.<br>
 
280
</div>
 
281
<pre><span id="METHODcookie"><span class="keyword">method</span> cookie</span> : <code class="type">string -> <a href="Netcgi.Cookie.html#TYPEt">Cookie.t</a></code></pre><div class="info">
 
282
<code class="code">#cookie cn</code> returns the cookie with name <code class="code">cn</code>.<br>
 
283
<b>Raises</b> <code>Not_found</code> if such a cookie does not exists.<br>
 
284
</div>
 
285
<pre><span id="METHODcookies"><span class="keyword">method</span> cookies</span> : <code class="type"><a href="Netcgi.Cookie.html#TYPEt">Cookie.t</a> list</code></pre><div class="info">
 
286
Returns the list of valid cookies found in the request header.
 
287
        Here "valid" means that the decode function does not raise an
 
288
        exception.<br>
 
289
</div>
 
290
<pre><span id="METHODuser_agent"><span class="keyword">method</span> user_agent</span> : <code class="type">string</code></pre><div class="info">
 
291
This is a convenience method that returns the <code class="code">"User-agent"</code>
 
292
        field of the HTTP request header.<br>
 
293
</div>
 
294
<pre><span id="METHODinput_content_length"><span class="keyword">method</span> input_content_length</span> : <code class="type">int</code></pre><div class="info">
 
295
Returns the <code class="code">"Content-length"</code> request header field.<br>
 
296
<b>Raises</b> <code>Not_found</code> if it is not set.<br>
 
297
</div>
 
298
<pre><span id="METHODinput_content_type_string"><span class="keyword">method</span> input_content_type_string</span> : <code class="type">string</code></pre><div class="info">
 
299
Returns the <code class="code">"Content-type"</code> request header field as a plain
 
300
        string or <code class="code">""</code> if it is not set.<br>
 
301
</div>
 
302
<pre><span id="METHODinput_content_type"><span class="keyword">method</span> input_content_type</span> : <code class="type">unit -> string * (string * <a href="Mimestring.html#TYPEs_param">Mimestring.s_param</a>) list</code></pre><div class="info">
 
303
Returns the parsed <code class="code">"Content-type"</code> request header field.<br>
 
304
<b>Raises</b> <code>Not_found</code> if it is not set.
 
305
        See also <a href="Mimestring.html#VALscan_mime_type_ep"><code class="code">Mimestring.scan_mime_type_ep</code></a>.<br>
 
306
</div>
 
307
<span id="3_Responseheader"><h3>Response header</h3></span><pre><span id="METHODoutput_header"><span class="keyword">method</span> output_header</span> : <code class="type"><a href="Netmime.mime_header-c.html">Netmime.mime_header</a></code></pre><div class="info">
 
308
The whole HTTP response header<br>
 
309
</div>
 
310
<pre><span id="METHODoutput_header_field"><span class="keyword">method</span> output_header_field</span> : <code class="type">?default:string -> string -> string</code></pre><div class="info">
 
311
Returns the value of a field of the response header. If the
 
312
        field does not exist, <code class="code">Not_found</code> will be raised unless the
 
313
        <code class="code">default</code> argument is passed. The <code class="code">default</code> argument determines
 
314
        the result of the function in this case.
 
315
<p>
 
316
 
 
317
        If there are several fields with the same name only the first
 
318
        field will be returned.
 
319
<p>
 
320
 
 
321
        The anonymous string is the name of the field.  The name is
 
322
        case-insensitive, and it does not matter whether it consists
 
323
        of lowercase or uppercase letters. If the name is a compound
 
324
        name, the parts are separated by "-", e.g. <code class="code">"content-length"</code>.<br>
 
325
</div>
 
326
<pre><span id="METHODmultiple_output_header_field"><span class="keyword">method</span> multiple_output_header_field</span> : <code class="type">string -> string list</code></pre><div class="info">
 
327
Returns the values of all fields with the passed name of the
 
328
        repsonse header.<br>
 
329
</div>
 
330
<pre><span id="METHODoutput_header_fields"><span class="keyword">method</span> output_header_fields</span> : <code class="type">(string * string) list</code></pre><div class="info">
 
331
Returns the output header as (name,value) pairs.  The names may
 
332
        consist of lowercase or uppercase letters.<br>
 
333
</div>
 
334
<pre><span id="METHODset_output_header_field"><span class="keyword">method</span> set_output_header_field</span> : <code class="type">string -> string -> unit</code></pre><div class="info">
 
335
Sets the value of a field of the response header.  The
 
336
        previous value, if any, is overwritten.  If there have been
 
337
        multiple values, all values will be removed and replaced by
 
338
        the single new value.<br>
 
339
</div>
 
340
<pre><span id="METHODset_multiple_output_header_field"><span class="keyword">method</span> set_multiple_output_header_field</span> : <code class="type">string -> string list -> unit</code></pre><div class="info">
 
341
Sets multiple values of a field of the response header.  Any
 
342
        previous values are removed and replaced by the new values.<br>
 
343
</div>
 
344
<pre><span id="METHODset_output_header_fields"><span class="keyword">method</span> set_output_header_fields</span> : <code class="type">(string * string) list -> unit</code></pre><div class="info">
 
345
Sets the complete response header at once.<br>
 
346
</div>
 
347
<pre><span id="METHODset_status"><span class="keyword">method</span> set_status</span> : <code class="type"><a href="Nethttp.html#TYPEhttp_status">Nethttp.http_status</a> -> unit</code></pre><div class="info">
 
348
Sets the response status.  This is by definition the same as
 
349
        setting the <code class="code">Status</code> output header field.<br>
 
350
</div>
 
351
<pre><span id="METHODsend_output_header"><span class="keyword">method</span> send_output_header</span> : <code class="type">unit -> unit</code></pre><div class="info">
 
352
This method will encode and send the output header to the
 
353
        output channel.  Note that of the output_channel is
 
354
        <code class="code">`Transactionnal</code> (as opposed to <code class="code">`Direct</code>), no output will
 
355
        actually take place before you issue <code class="code">#commit_work()</code> -- thus
 
356
        a <code class="code">#rollback_work()</code> will also rollback the headers as
 
357
        expected.<br>
 
358
</div>
 
359
<span id="3_Theoutputchanneltransferringtheresponse"><h3>The output channel transferring the response</h3></span><pre><span id="METHODoutput_ch"><span class="keyword">method</span> output_ch</span> : <code class="type"><a href="Netchannels.out_obj_channel-c.html">Netchannels.out_obj_channel</a></code></pre><div class="info">
 
360
<span class="warning">Deprecated.</span>Use <code class="code">#out_channel</code> instead.<br>
 
361
</div>
 
362
<pre><span id="METHODout_channel"><span class="keyword">method</span> out_channel</span> : <code class="type"><a href="Netchannels.out_obj_channel-c.html">Netchannels.out_obj_channel</a></code></pre><div class="info">
 
363
The "raw" output channel.  In general you should use instead
 
364
        <a href="Netcgi.cgi-c.html"><code class="code">Netcgi.cgi</code></a><code class="code">#out_channnel</code> which supports transactions (if you
 
365
        choose to).  Access to the "raw" channel is useful however,
 
366
        for example for sending images or download of files (for which
 
367
        transactions are not interesting but merely more work).<br>
 
368
</div>
 
369
<span id="3_Logging"><h3>Logging</h3></span><pre><span id="METHODlog_error"><span class="keyword">method</span> log_error</span> : <code class="type">string -> unit</code></pre><div class="info">
 
370
<code class="code">#log_error msg</code> appends <code class="code">msg</code> to the webserver log.<br>
 
371
</div>
 
372
<span id="3_Miscellaneous"><h3>Miscellaneous</h3></span><pre><span id="METHODconfig"><span class="keyword">method</span> config</span> : <code class="type"><a href="Netcgi.html#TYPEconfig">config</a></code></pre><div class="info">
 
373
The configuration of the request.<br>
 
374
</div>
 
375
</body></html>
 
 
b'\\ No newline at end of file'