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="Nethttpd_types.http_service_receiver.html">
8
<link rel="Up" href="Nethttpd_types.html">
9
<link title="Index of types" rel=Appendix href="index_types.html">
10
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
11
<link title="Index of values" rel=Appendix href="index_values.html">
12
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
13
<link title="Index of class methods" rel=Appendix href="index_methods.html">
14
<link title="Index of classes" rel=Appendix href="index_classes.html">
15
<link title="Index of class types" rel=Appendix href="index_class_types.html">
16
<link title="Index of modules" rel=Appendix href="index_modules.html">
17
<link title="Index of module types" rel=Appendix href="index_module_types.html">
18
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
19
<link title="Equeue" rel="Chapter" href="Equeue.html">
20
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
21
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
22
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
23
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
24
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
25
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
26
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
27
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
28
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
29
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
30
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
31
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
32
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
33
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
34
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
35
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
36
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
37
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
38
<link title="Http_client" rel="Chapter" href="Http_client.html">
39
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
40
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
41
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
42
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
43
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
44
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
45
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
46
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
47
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
48
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
49
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
50
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
51
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
52
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
53
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
54
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
55
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
56
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
57
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
58
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
59
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
60
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
61
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
62
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
63
<link title="Netshm" rel="Chapter" href="Netshm.html">
64
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
65
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
66
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
67
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
68
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
69
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
70
<link title="Netstream" rel="Chapter" href="Netstream.html">
71
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
72
<link title="Netmime" rel="Chapter" href="Netmime.html">
73
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
74
<link title="Neturl" rel="Chapter" href="Neturl.html">
75
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
76
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
77
<link title="Netdate" rel="Chapter" href="Netdate.html">
78
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
79
<link title="Netulex" rel="Chapter" href="Netulex.html">
80
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
81
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
82
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
83
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
84
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
85
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html">
86
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
87
<link title="Netaux" rel="Chapter" href="Netaux.html">
88
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
89
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
90
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
91
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
92
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
93
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
94
<link title="Netsys" rel="Chapter" href="Netsys.html">
95
<link title="Netpop" rel="Chapter" href="Netpop.html">
96
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
97
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
98
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
99
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
100
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
101
<link title="Xdr" rel="Chapter" href="Xdr.html">
102
<link title="Rpc" rel="Chapter" href="Rpc.html">
103
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
104
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
105
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
106
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
107
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
108
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
109
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
110
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
111
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
112
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
113
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
114
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
115
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
116
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
117
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
118
<link title="Shell" rel="Chapter" href="Shell.html">
119
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
120
<link title="Shell_mt" rel="Chapter" href="Shell_mt.html">
121
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
122
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><title>Ocamlnet 2 Reference Manual : Nethttpd_types.http_service</title>
125
<div class="navbar"><a href="Nethttpd_types.http_service_receiver.html">Previous</a>
126
<a href="Nethttpd_types.html">Up</a>
128
<center><h1>Class type <a href="type_Nethttpd_types.http_service.html">Nethttpd_types.http_service</a></h1></center>
130
<pre><span class="keyword">class type</span> <a name="TYPEhttp_service"></a><code class="type">['a]</code> http_service = <code class="code">object</code> <a href="Nethttpd_types.http_service.html">..</a> <code class="code">end</code></pre><hr width="100%">
131
<pre><span class="keyword">method</span> <a name="METHODname"></a>name : <code class="type">string</code></pre><div class="info">
132
The name of the type of the service provider<br>
134
<pre><span class="keyword">method</span> <a name="METHODdef_term"></a>def_term : <code class="type">'a</code></pre><div class="info">
135
The definition term<br>
137
<pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">Format.formatter -> unit</code></pre><div class="info">
138
Outputs the definition term to a formatter<br>
140
<pre><span class="keyword">method</span> <a name="METHODprocess_header"></a>process_header : <code class="type"><a href="Nethttpd_types.extended_environment.html">extended_environment</a> -> <a href="Nethttpd_types.html#TYPEhttp_service_reaction">http_service_reaction</a></code></pre><div class="info">
141
First stage of HTTP processing:
142
This method is called when the HTTP header has been received. This method
143
must return quickly without blocking the thread how to go on. For example,
144
this could look as follows:<ul>
145
<li>Check whether the client is allowed to access this resource. If this
146
can be done immediately, it should be done now. (If an external service
147
must be queried, the check must not be done now, but deferred to the
148
second or third stage.) If the access is denied, an error response can
149
be sent back using <code class="code">`Static</code>, <code class="code">`File</code>, or, if computed, using <code class="code">`Reject_body</code>.</li>
150
<li>Check whether the request is delegated to another service provider
151
(e.g. lookup by hostname, by port number, or by URI). In this case,
152
the result of this <code class="code">process_header</code> call is simply the result of the
153
<code class="code">process_header</code> call of the other service provider.</li>
154
<li>If this service provider generates the contents, there are mainly two
155
types of reaction. If the contents are stored in a file, one can simply
156
return <code class="code">`File</code>. Otherwise, return <code class="code">`Accept_body</code> to continue with the
157
second stage. Note that even if no body is expected to arrive, one must
158
go through the second stage, and drop any unexpected body.</li>
161
The argument of this function is the Netcgi environment. The header is
162
complete, including the request method. One cannot access the input and
163
output channels at this stage of processing.<br>
b'\\ No newline at end of file'