1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
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>
201
<div class="navbar"><a href="Netcgi.rw_cgi_argument-c.html">Previous</a>
202
<a href="Netcgi.html">Up</a>
203
<a href="Netcgi.cgi-c.html">Next</a>
205
<center><h1>Class type <a href="type_Netcgi.cgi_environment.html">Netcgi.cgi_environment</a></h1></center>
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>
210
<span id="3_CGIproperties"><h3>CGI properties</h3></span>
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>
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>
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>
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.
238
The method takes the case-sensitive name and returns the value
239
of the property. Usually, these properties have uppercase
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>
246
You cannot access the fields coming from the HTTP header. Use
247
the method <code class="code">input_header_field</code> instead.<br>
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>
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>
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>
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
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>
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
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>
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>
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
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>
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>
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>
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>
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>
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.
317
If there are several fields with the same name only the first
318
field will be returned.
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>
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
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
b'\\ No newline at end of file'