<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="previous" href="Netcgi.rw_cgi_argument-c.html"> <link rel="next" href="Netcgi.cgi-c.html"> <link rel="Up" href="Netcgi.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class attributes" rel=Appendix href="index_attributes.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html"> <link title="Equeue" rel="Chapter" href="Equeue.html"> <link title="Unixqueue" rel="Chapter" href="Unixqueue.html"> <link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html"> <link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html"> <link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html"> <link title="Uq_engines" rel="Chapter" href="Uq_engines.html"> <link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html"> <link title="Uq_io" rel="Chapter" href="Uq_io.html"> <link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html"> <link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html"> <link title="Uq_mt" rel="Chapter" href="Uq_mt.html"> <link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html"> <link title="Equeue_howto" rel="Chapter" href="Equeue_howto.html"> <link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html"> <link title="Https_client" rel="Chapter" href="Https_client.html"> <link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html"> <link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html"> <link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html"> <link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html"> <link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html"> <link title="Netcgi" rel="Chapter" href="Netcgi.html"> <link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html"> <link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html"> <link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html"> <link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html"> <link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html"> <link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html"> <link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html"> <link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html"> <link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html"> <link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html"> <link title="Http_client" rel="Chapter" href="Http_client.html"> <link title="Telnet_client" rel="Chapter" href="Telnet_client.html"> <link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html"> <link title="Ftp_client" rel="Chapter" href="Ftp_client.html"> <link title="Http_fs" rel="Chapter" href="Http_fs.html"> <link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html"> <link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html"> <link title="Netgssapi" rel="Chapter" href="Netgssapi.html"> <link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html"> <link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html"> <link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html"> <link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html"> <link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html"> <link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html"> <link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html"> <link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html"> <link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html"> <link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html"> <link title="Netmcore" rel="Chapter" href="Netmcore.html"> <link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html"> <link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html"> <link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html"> <link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html"> <link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html"> <link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html"> <link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html"> <link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html"> <link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html"> <link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html"> <link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html"> <link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html"> <link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html"> <link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html"> <link title="Netmcore_basics" rel="Chapter" href="Netmcore_basics.html"> <link title="Netplex_types" rel="Chapter" href="Netplex_types.html"> <link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html"> <link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html"> <link title="Netplex_log" rel="Chapter" href="Netplex_log.html"> <link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html"> <link title="Netplex_container" rel="Chapter" href="Netplex_container.html"> <link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html"> <link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html"> <link title="Netplex_main" rel="Chapter" href="Netplex_main.html"> <link title="Netplex_config" rel="Chapter" href="Netplex_config.html"> <link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html"> <link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html"> <link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html"> <link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html"> <link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html"> <link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html"> <link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html"> <link title="Netplex_mbox" rel="Chapter" href="Netplex_mbox.html"> <link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html"> <link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html"> <link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html"> <link title="Netshm" rel="Chapter" href="Netshm.html"> <link title="Netshm_data" rel="Chapter" href="Netshm_data.html"> <link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html"> <link title="Netshm_array" rel="Chapter" href="Netshm_array.html"> <link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html"> <link title="Netconversion" rel="Chapter" href="Netconversion.html"> <link title="Netchannels" rel="Chapter" href="Netchannels.html"> <link title="Netstream" rel="Chapter" href="Netstream.html"> <link title="Mimestring" rel="Chapter" href="Mimestring.html"> <link title="Netmime" rel="Chapter" href="Netmime.html"> <link title="Netsendmail" rel="Chapter" href="Netsendmail.html"> <link title="Neturl" rel="Chapter" href="Neturl.html"> <link title="Netaddress" rel="Chapter" href="Netaddress.html"> <link title="Netbuffer" rel="Chapter" href="Netbuffer.html"> <link title="Netdate" rel="Chapter" href="Netdate.html"> <link title="Netencoding" rel="Chapter" href="Netencoding.html"> <link title="Netulex" rel="Chapter" href="Netulex.html"> <link title="Netaccel" rel="Chapter" href="Netaccel.html"> <link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html"> <link title="Nethtml" rel="Chapter" href="Nethtml.html"> <link title="Netstring_str" rel="Chapter" href="Netstring_str.html"> <link title="Netmappings" rel="Chapter" href="Netmappings.html"> <link title="Netaux" rel="Chapter" href="Netaux.html"> <link title="Nethttp" rel="Chapter" href="Nethttp.html"> <link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html"> <link title="Netfs" rel="Chapter" href="Netfs.html"> <link title="Netglob" rel="Chapter" href="Netglob.html"> <link title="Netauth" rel="Chapter" href="Netauth.html"> <link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html"> <link title="Netnumber" rel="Chapter" href="Netnumber.html"> <link title="Rtypes" rel="Chapter" href="Rtypes.html"> <link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html"> <link title="Xdr" rel="Chapter" href="Xdr.html"> <link title="Netcompression" rel="Chapter" href="Netcompression.html"> <link title="Netunichar" rel="Chapter" href="Netunichar.html"> <link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html"> <link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html"> <link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html"> <link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html"> <link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html"> <link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html"> <link title="Netsys" rel="Chapter" href="Netsys.html"> <link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html"> <link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html"> <link title="Netlog" rel="Chapter" href="Netlog.html"> <link title="Netexn" rel="Chapter" href="Netexn.html"> <link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html"> <link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html"> <link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html"> <link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html"> <link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html"> <link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html"> <link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html"> <link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html"> <link title="Netsys_types" rel="Chapter" href="Netsys_types.html"> <link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html"> <link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html"> <link title="Netsys_sem" rel="Chapter" href="Netsys_sem.html"> <link title="Netsys_pmanage" rel="Chapter" href="Netsys_pmanage.html"> <link title="Netgzip" rel="Chapter" href="Netgzip.html"> <link title="Netpop" rel="Chapter" href="Netpop.html"> <link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html"> <link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html"> <link title="Rpc_time" rel="Chapter" href="Rpc_time.html"> <link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html"> <link title="Rpc" rel="Chapter" href="Rpc.html"> <link title="Rpc_program" rel="Chapter" href="Rpc_program.html"> <link title="Rpc_util" rel="Chapter" href="Rpc_util.html"> <link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html"> <link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html"> <link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html"> <link title="Rpc_client" rel="Chapter" href="Rpc_client.html"> <link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html"> <link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html"> <link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html"> <link title="Rpc_server" rel="Chapter" href="Rpc_server.html"> <link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html"> <link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html"> <link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html"> <link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html"> <link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html"> <link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html"> <link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html"> <link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html"> <link title="Shell_sys" rel="Chapter" href="Shell_sys.html"> <link title="Shell" rel="Chapter" href="Shell.html"> <link title="Shell_uq" rel="Chapter" href="Shell_uq.html"> <link title="Shell_fs" rel="Chapter" href="Shell_fs.html"> <link title="Shell_intro" rel="Chapter" href="Shell_intro.html"> <link title="Netsmtp" rel="Chapter" href="Netsmtp.html"> <link title="Intro" rel="Chapter" href="Intro.html"> <link title="Platform" rel="Chapter" href="Platform.html"> <link title="Foreword" rel="Chapter" href="Foreword.html"> <link title="Ipv6" rel="Chapter" href="Ipv6.html"> <link title="Regexp" rel="Chapter" href="Regexp.html"><link title="CGI properties" rel="Section" href="#3_CGIproperties"> <link title="Header of the incoming HTTP request." rel="Section" href="#3_HeaderoftheincomingHTTPrequest"> <link title="Response header" rel="Section" href="#3_Responseheader"> <link title="The output channel transferring the response" rel="Section" href="#3_Theoutputchanneltransferringtheresponse"> <link title="Logging" rel="Section" href="#3_Logging"> <link title="Miscellaneous" rel="Section" href="#3_Miscellaneous"> <title>Ocamlnet 3 Reference Manual : Netcgi.cgi_environment</title> </head> <body> <div class="navbar"><a class="pre" href="Netcgi.rw_cgi_argument-c.html" title="Netcgi.rw_cgi_argument">Previous</a> <a class="up" href="Netcgi.html" title="Netcgi">Up</a> <a class="post" href="Netcgi.cgi-c.html" title="Netcgi.cgi">Next</a> </div> <h1>Class type <a href="type_Netcgi.cgi_environment.html">Netcgi.cgi_environment</a></h1> <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><div class="info"> The environment of a request consists of the information available besides the data sent by the user (as key-value pairs).<br> </div> <hr width="100%"> <h3 id="3_CGIproperties">CGI properties</h3> <p> The following properties are standardised by CGI. The methods return <code class="code">""</code> (or <code class="code">None</code> in the case of the port number) when the 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"> We recommend you to use the method <a href="Netcgi.cgi-c.html#METHODrequest_method"><code class="code">Netcgi.cgi.request_method</code></a> which is more type-safe and informative.<br> </div> <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"> This is the row query string. The <a href="Netcgi.cgi-c.html"><code class="code">Netcgi.cgi</code></a> class gives you an easy access to the arguments through the <code class="code">#arg...</code> methods.<br> </div> <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"> The server protocol in a decoded form. It can be either<ul> <li><code class="code">`Http((major,minor),attributes)</code> or</li> <li><code class="code">`Other</code>.</li> </ul> <br> </div> <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"> Returns a (possibly non-standard) CGI environment property. If the property is not set, <code class="code">Not_found</code> is be raised unless the <code class="code">default</code> argument is passed. The <code class="code">default</code> argument determines the result of the function in this case. <p> The method takes the case-sensitive name and returns the value of the property. Usually, these properties have uppercase names. <p> For example, <code class="code">cgi_gateway_interface</code> returns the same as <pre class="codepre"><code class="code"> cgi_property ~default:"" "GATEWAY_INTERFACE" </code></pre> <p> You cannot access the fields coming from the HTTP header. Use the method <code class="code">input_header_field</code> instead.<br> </div> <pre><span id="METHODcgi_properties"><span class="keyword">method</span> cgi_properties</span> : <code class="type">(string * string) list</code></pre><div class="info"> Return all properties as an associative list.<br> </div> <pre><span id="METHODcgi_https"><span class="keyword">method</span> cgi_https</span> : <code class="type">bool</code></pre><div class="info"> A well-known extension is the HTTPS property. It indicates whether a secure connection is used (SSL/TLS). This method interprets this property and returns true if the connection is secure. This method fails if there is a HTTPS property with an unknown value.<br> </div> <h3 id="3_HeaderoftheincomingHTTPrequest">Header of the incoming HTTP request.</h3><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"> The whole HTTP header.<br> </div> <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"> <code class="code">#input_header_field ?default f</code> returns the value of a field <code class="code">f</code> of the HTTP request header. The field name <code class="code">f</code> is case-insensitive; if the name is a compound name, the parts are separated by "-", e.g. <code class="code">"content-length"</code>. If there are several fields with the same name only the first field will be returned.<br> <b>Raises</b> <code>Not_found</code> if the field does not exist, unless the <code class="code">default</code> argument is passed. The <code class="code">default</code> argument is the result of the function in this case.<br> </div> <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"> Returns the values of all fields with the passed name of the request header.<br> </div> <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"> Returns the input header as (name,value) pairs. The names may consist of lowercase or uppercase letters.<br> </div> <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"> <code class="code">#cookie cn</code> returns the cookie with name <code class="code">cn</code>.<br> <b>Raises</b> <code>Not_found</code> if such a cookie does not exists.<br> </div> <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"> Returns the list of valid cookies found in the request header. Here "valid" means that the decode function does not raise an exception.<br> </div> <pre><span id="METHODuser_agent"><span class="keyword">method</span> user_agent</span> : <code class="type">string</code></pre><div class="info"> This is a convenience method that returns the <code class="code">"User-agent"</code> field of the HTTP request header.<br> </div> <pre><span id="METHODinput_content_length"><span class="keyword">method</span> input_content_length</span> : <code class="type">int</code></pre><div class="info"> Returns the <code class="code">"Content-length"</code> request header field.<br> <b>Raises</b> <code>Not_found</code> if it is not set.<br> </div> <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"> Returns the <code class="code">"Content-type"</code> request header field as a plain string or <code class="code">""</code> if it is not set.<br> </div> <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"> Returns the parsed <code class="code">"Content-type"</code> request header field.<br> <b>Raises</b> <code>Not_found</code> if it is not set. See also <a href="Mimestring.html#VALscan_mime_type_ep"><code class="code">Mimestring.scan_mime_type_ep</code></a>.<br> </div> <h3 id="3_Responseheader">Response header</h3><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"> The whole HTTP response header<br> </div> <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"> Returns the value of a field of the response header. If the field does not exist, <code class="code">Not_found</code> will be raised unless the <code class="code">default</code> argument is passed. The <code class="code">default</code> argument determines the result of the function in this case. <p> If there are several fields with the same name only the first field will be returned. <p> The anonymous string is the name of the field. The name is case-insensitive, and it does not matter whether it consists of lowercase or uppercase letters. If the name is a compound name, the parts are separated by "-", e.g. <code class="code">"content-length"</code>.<br> </div> <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"> Returns the values of all fields with the passed name of the repsonse header.<br> </div> <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"> Returns the output header as (name,value) pairs. The names may consist of lowercase or uppercase letters.<br> </div> <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"> Sets the value of a field of the response header. The previous value, if any, is overwritten. If there have been multiple values, all values will be removed and replaced by the single new value.<br> </div> <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"> Sets multiple values of a field of the response header. Any previous values are removed and replaced by the new values.<br> </div> <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"> Sets the complete response header at once.<br> </div> <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"> Sets the response status. This is by definition the same as setting the <code class="code">Status</code> output header field.<br> </div> <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"> This method will encode and send the output header to the output channel. Note that of the output_channel is <code class="code">`Transactionnal</code> (as opposed to <code class="code">`Direct</code>), no output will actually take place before you issue <code class="code">#commit_work()</code> -- thus a <code class="code">#rollback_work()</code> will also rollback the headers as expected.<br> </div> <h3 id="3_Theoutputchanneltransferringtheresponse">The output channel transferring the response</h3><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"> <span class="warning">Deprecated.</span>Use <code class="code">#out_channel</code> instead.<br> </div> <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"> The "raw" output channel. In general you should use instead <a href="Netcgi.cgi-c.html"><code class="code">Netcgi.cgi</code></a><code class="code">#out_channnel</code> which supports transactions (if you choose to). Access to the "raw" channel is useful however, for example for sending images or download of files (for which transactions are not interesting but merely more work).<br> </div> <h3 id="3_Logging">Logging</h3><pre><span id="METHODlog_error"><span class="keyword">method</span> log_error</span> : <code class="type">string -> unit</code></pre><div class="info"> <code class="code">#log_error msg</code> appends <code class="code">msg</code> to the webserver log.<br> </div> <h3 id="3_Miscellaneous">Miscellaneous</h3><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"> The configuration of the request.<br> </div> </body></html>