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-c.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="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
20
<link title="Https_client" rel="Chapter" href="Https_client.html">
21
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
22
<link title="Equeue" rel="Chapter" href="Equeue.html">
23
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
24
<link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html">
25
<link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html">
26
<link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html">
27
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
28
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
29
<link title="Uq_io" rel="Chapter" href="Uq_io.html">
30
<link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html">
31
<link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html">
32
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
33
<link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html">
34
<link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html">
35
<link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html">
36
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
37
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
38
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
39
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
40
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
41
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
42
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
43
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
44
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
45
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
46
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
47
<link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html">
48
<link title="Http_client" rel="Chapter" href="Http_client.html">
49
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
50
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
51
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
52
<link title="Http_fs" rel="Chapter" href="Http_fs.html">
53
<link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html">
54
<link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html">
55
<link title="Netgssapi" rel="Chapter" href="Netgssapi.html">
56
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
57
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
58
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
59
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
60
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
61
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
62
<link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html">
63
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
64
<link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html">
65
<link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html">
66
<link title="Netmcore" rel="Chapter" href="Netmcore.html">
67
<link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html">
68
<link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html">
69
<link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html">
70
<link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html">
71
<link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html">
72
<link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html">
73
<link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html">
74
<link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html">
75
<link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html">
76
<link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html">
77
<link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html">
78
<link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html">
79
<link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html">
80
<link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html">
81
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
82
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
83
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
84
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
85
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
86
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
87
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
88
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
89
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
90
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
91
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
92
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
93
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
94
<link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html">
95
<link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html">
96
<link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html">
97
<link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html">
98
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
99
<link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html">
100
<link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html">
101
<link title="Netshm" rel="Chapter" href="Netshm.html">
102
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
103
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
104
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
105
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
106
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
107
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
108
<link title="Netstream" rel="Chapter" href="Netstream.html">
109
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
110
<link title="Netmime" rel="Chapter" href="Netmime.html">
111
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
112
<link title="Neturl" rel="Chapter" href="Neturl.html">
113
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
114
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
115
<link title="Netdate" rel="Chapter" href="Netdate.html">
116
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
117
<link title="Netulex" rel="Chapter" href="Netulex.html">
118
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
119
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
120
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
121
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
122
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
123
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
124
<link title="Netaux" rel="Chapter" href="Netaux.html">
125
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
126
<link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html">
127
<link title="Netfs" rel="Chapter" href="Netfs.html">
128
<link title="Netglob" rel="Chapter" href="Netglob.html">
129
<link title="Netauth" rel="Chapter" href="Netauth.html">
130
<link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html">
131
<link title="Netnumber" rel="Chapter" href="Netnumber.html">
132
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
133
<link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html">
134
<link title="Xdr" rel="Chapter" href="Xdr.html">
135
<link title="Netcompression" rel="Chapter" href="Netcompression.html">
136
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
137
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
138
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
139
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
140
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
141
<link title="Netsys" rel="Chapter" href="Netsys.html">
142
<link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html">
143
<link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html">
144
<link title="Netlog" rel="Chapter" href="Netlog.html">
145
<link title="Netexn" rel="Chapter" href="Netexn.html">
146
<link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html">
147
<link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html">
148
<link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html">
149
<link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html">
150
<link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html">
151
<link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html">
152
<link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html">
153
<link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html">
154
<link title="Netsys_types" rel="Chapter" href="Netsys_types.html">
155
<link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html">
156
<link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html">
157
<link title="Netgzip" rel="Chapter" href="Netgzip.html">
158
<link title="Netpop" rel="Chapter" href="Netpop.html">
159
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
160
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
161
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
162
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
163
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
164
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
165
<link title="Rpc" rel="Chapter" href="Rpc.html">
166
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
167
<link title="Rpc_util" rel="Chapter" href="Rpc_util.html">
168
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
169
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
170
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
171
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
172
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
173
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
174
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
175
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
176
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
177
<link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html">
178
<link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html">
179
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
180
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
181
<link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html">
182
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
183
<link title="Shell" rel="Chapter" href="Shell.html">
184
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
185
<link title="Shell_fs" rel="Chapter" href="Shell_fs.html">
186
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
187
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html">
188
<link title="Intro" rel="Chapter" href="Intro.html">
189
<link title="Platform" rel="Chapter" href="Platform.html">
190
<link title="Foreword" rel="Chapter" href="Foreword.html">
191
<link title="Ipv6" rel="Chapter" href="Ipv6.html"><title>Ocamlnet 3 Reference Manual : Nethttpd_types.http_service</title>
194
<div class="navbar"><a href="Nethttpd_types.http_service_receiver-c.html">Previous</a>
195
<a href="Nethttpd_types.html">Up</a>
197
<center><h1>Class type <a href="type_Nethttpd_types.http_service.html">Nethttpd_types.http_service</a></h1></center>
199
<pre><span id="TYPEhttp_service"><span class="keyword">class type</span> <code class="type">['a]</code> http_service</span> = <code class="code">object</code> <a href="Nethttpd_types.http_service-c.html">..</a> <code class="code">end</code></pre><hr width="100%">
200
<pre><span id="METHODname"><span class="keyword">method</span> name</span> : <code class="type">string</code></pre><div class="info">
201
The name of the type of the service provider<br>
203
<pre><span id="METHODdef_term"><span class="keyword">method</span> def_term</span> : <code class="type">'a</code></pre><div class="info">
204
The definition term<br>
206
<pre><span id="METHODprint"><span class="keyword">method</span> print</span> : <code class="type">Format.formatter -> unit</code></pre><div class="info">
207
Outputs the definition term to a formatter<br>
209
<pre><span id="METHODprocess_header"><span class="keyword">method</span> process_header</span> : <code class="type"><a href="Nethttpd_types.extended_environment-c.html">extended_environment</a> -> <a href="Nethttpd_types.html#TYPEhttp_service_reaction">http_service_reaction</a></code></pre><div class="info">
210
First stage of HTTP processing:
211
This method is called when the HTTP header has been received. This method
212
must return quickly without blocking the thread how to go on. For example,
213
this could look as follows:<ul>
214
<li>Check whether the client is allowed to access this resource. If this
215
can be done immediately, it should be done now. (If an external service
216
must be queried, the check must not be done now, but deferred to the
217
second or third stage.) If the access is denied, an error response can
218
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>
219
<li>Check whether the request is delegated to another service provider
220
(e.g. lookup by hostname, by port number, or by URI). In this case,
221
the result of this <code class="code">process_header</code> call is simply the result of the
222
<code class="code">process_header</code> call of the other service provider.</li>
223
<li>If this service provider generates the contents, there are mainly two
224
types of reaction. If the contents are stored in a file, one can simply
225
return <code class="code">`File</code>. Otherwise, return <code class="code">`Accept_body</code> to continue with the
226
second stage. Note that even if no body is expected to arrive, one must
227
go through the second stage, and drop any unexpected body.</li>
230
The argument of this function is the Netcgi environment. The header is
231
complete, including the request method. One cannot access the input and
232
output channels at this stage of processing.<br>
b'\\ No newline at end of file'