luci-app-acme: convert to client side rendering
[project/luci.git] / docs / api / modules / luci.http.conditionals.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html>
4 <head>
5 <title>Reference</title>
6 <link rel="stylesheet" href="../luadoc.css" type="text/css" />
7 <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
8 </head>
9
10 <body>
11 <div id="container">
12
13 <div id="product">
14 <div id="product_logo"></div>
15 <div id="product_name"><big><b></b></big></div>
16 <div id="product_description"></div>
17 </div> <!-- id="product" -->
18
19 <div id="main">
20
21 <div id="navigation">
22
23
24 <h1>LuaDoc</h1>
25 <ul>
26
27 <li><a href="../index.html">Index</a></li>
28
29 </ul>
30
31
32 <!-- Module list -->
33
34 <h1>Modules</h1>
35 <ul>
36
37 <li>
38 <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
39 </li>
40
41 <li>
42 <a href="../modules/luci.http.html">luci.http</a>
43 </li>
44
45 <li><strong>luci.http.conditionals</strong></li>
46
47 <li>
48 <a href="../modules/luci.http.date.html">luci.http.date</a>
49 </li>
50
51 <li>
52 <a href="../modules/luci.http.mime.html">luci.http.mime</a>
53 </li>
54
55 <li>
56 <a href="../modules/luci.i18n.html">luci.i18n</a>
57 </li>
58
59 <li>
60 <a href="../modules/luci.ip.html">luci.ip</a>
61 </li>
62
63 <li>
64 <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
65 </li>
66
67 <li>
68 <a href="../modules/luci.json.html">luci.json</a>
69 </li>
70
71 <li>
72 <a href="../modules/luci.jsonc.html">luci.jsonc</a>
73 </li>
74
75 <li>
76 <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
77 </li>
78
79 <li>
80 <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
81 </li>
82
83 <li>
84 <a href="../modules/luci.model.uci.html">luci.model.uci</a>
85 </li>
86
87 <li>
88 <a href="../modules/luci.rpcc.html">luci.rpcc</a>
89 </li>
90
91 <li>
92 <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
93 </li>
94
95 <li>
96 <a href="../modules/luci.sys.html">luci.sys</a>
97 </li>
98
99 <li>
100 <a href="../modules/luci.sys.init.html">luci.sys.init</a>
101 </li>
102
103 <li>
104 <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
105 </li>
106
107 <li>
108 <a href="../modules/luci.sys.net.html">luci.sys.net</a>
109 </li>
110
111 <li>
112 <a href="../modules/luci.sys.process.html">luci.sys.process</a>
113 </li>
114
115 <li>
116 <a href="../modules/luci.sys.user.html">luci.sys.user</a>
117 </li>
118
119 <li>
120 <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
121 </li>
122
123 <li>
124 <a href="../modules/luci.util.html">luci.util</a>
125 </li>
126
127 <li>
128 <a href="../modules/nixio.html">nixio</a>
129 </li>
130
131 <li>
132 <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
133 </li>
134
135 <li>
136 <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
137 </li>
138
139 <li>
140 <a href="../modules/nixio.File.html">nixio.File</a>
141 </li>
142
143 <li>
144 <a href="../modules/nixio.README.html">nixio.README</a>
145 </li>
146
147 <li>
148 <a href="../modules/nixio.Socket.html">nixio.Socket</a>
149 </li>
150
151 <li>
152 <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
153 </li>
154
155 <li>
156 <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
157 </li>
158
159 <li>
160 <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
161 </li>
162
163 <li>
164 <a href="../modules/nixio.bin.html">nixio.bin</a>
165 </li>
166
167 <li>
168 <a href="../modules/nixio.bit.html">nixio.bit</a>
169 </li>
170
171 <li>
172 <a href="../modules/nixio.crypto.html">nixio.crypto</a>
173 </li>
174
175 <li>
176 <a href="../modules/nixio.fs.html">nixio.fs</a>
177 </li>
178
179 </ul>
180
181
182
183 <!-- File list -->
184
185
186
187
188
189
190
191 </div><!-- id="navigation" -->
192
193 <div id="content">
194
195 <h1>Class <code>luci.http.conditionals</code></h1>
196
197 <p></p>
198
199
200
201
202
203
204
205 <h2>Functions</h2>
206 <table class="function_list">
207
208 <tr>
209 <td class="name" nowrap><a href="#if_match">if_match</a>&nbsp;(req, stat)</td>
210 <td class="summary">
211
212 14.24 / If-Match
213
214 Test whether the given message object contains an "If-Match" header and
215 compare it against the given stat object.</td>
216 </tr>
217
218 <tr>
219 <td class="name" nowrap><a href="#if_modified_since">if_modified_since</a>&nbsp;(req, stat)</td>
220 <td class="summary">
221
222 14.25 / If-Modified-Since
223
224 Test whether the given message object contains an "If-Modified-Since" header
225 and compare it against the given stat object.</td>
226 </tr>
227
228 <tr>
229 <td class="name" nowrap><a href="#if_none_match">if_none_match</a>&nbsp;(req, stat)</td>
230 <td class="summary">
231
232 14.26 / If-None-Match
233
234 Test whether the given message object contains an "If-None-Match" header and
235 compare it against the given stat object.</td>
236 </tr>
237
238 <tr>
239 <td class="name" nowrap><a href="#if_range">if_range</a>&nbsp;(req, stat)</td>
240 <td class="summary">
241
242 14.27 / If-Range
243
244 The If-Range header is currently not implemented due to the lack of general
245 byte range stuff in luci.http.protocol .</td>
246 </tr>
247
248 <tr>
249 <td class="name" nowrap><a href="#if_unmodified_since">if_unmodified_since</a>&nbsp;(req, stat)</td>
250 <td class="summary">
251
252 14.28 / If-Unmodified-Since
253
254 Test whether the given message object contains an "If-Unmodified-Since"
255 header and compare it against the given stat object.</td>
256 </tr>
257
258 <tr>
259 <td class="name" nowrap><a href="#mk_etag">mk_etag</a>&nbsp;(stat)</td>
260 <td class="summary">
261
262 Implement 14.19 / ETag.</td>
263 </tr>
264
265 </table>
266
267
268
269
270
271
272 <br/>
273 <br/>
274
275
276 <h2><a name="functions"></a>Functions</h2>
277 <dl class="function">
278
279
280
281 <dt><a name="if_match"></a><strong>if_match</strong>&nbsp;(req, stat)</dt>
282 <dd>
283
284
285 14.24 / If-Match
286
287 Test whether the given message object contains an "If-Match" header and
288 compare it against the given stat object.
289
290
291 <h3>Parameters</h3>
292 <ul>
293
294 <li>
295 req: HTTP request message object
296 </li>
297
298 <li>
299 stat: A file.stat object
300 </li>
301
302 </ul>
303
304
305
306
307
308
309 <h3>Return values:</h3>
310 <ol>
311
312 <li>Boolean indicating whether the precondition is ok
313
314 <li>Alternative status code if the precondition failed
315
316 </ol>
317
318
319
320 </dd>
321
322
323
324
325 <dt><a name="if_modified_since"></a><strong>if_modified_since</strong>&nbsp;(req, stat)</dt>
326 <dd>
327
328
329 14.25 / If-Modified-Since
330
331 Test whether the given message object contains an "If-Modified-Since" header
332 and compare it against the given stat object.
333
334
335 <h3>Parameters</h3>
336 <ul>
337
338 <li>
339 req: HTTP request message object
340 </li>
341
342 <li>
343 stat: A file.stat object
344 </li>
345
346 </ul>
347
348
349
350
351
352
353 <h3>Return values:</h3>
354 <ol>
355
356 <li>Boolean indicating whether the precondition is ok
357
358 <li>Alternative status code if the precondition failed
359
360 <li>Table containing extra HTTP headers if the precondition failed
361
362 </ol>
363
364
365
366 </dd>
367
368
369
370
371 <dt><a name="if_none_match"></a><strong>if_none_match</strong>&nbsp;(req, stat)</dt>
372 <dd>
373
374
375 14.26 / If-None-Match
376
377 Test whether the given message object contains an "If-None-Match" header and
378 compare it against the given stat object.
379
380
381 <h3>Parameters</h3>
382 <ul>
383
384 <li>
385 req: HTTP request message object
386 </li>
387
388 <li>
389 stat: A file.stat object
390 </li>
391
392 </ul>
393
394
395
396
397
398
399 <h3>Return values:</h3>
400 <ol>
401
402 <li>Boolean indicating whether the precondition is ok
403
404 <li>Alternative status code if the precondition failed
405
406 <li>Table containing extra HTTP headers if the precondition failed
407
408 </ol>
409
410
411
412 </dd>
413
414
415
416
417 <dt><a name="if_range"></a><strong>if_range</strong>&nbsp;(req, stat)</dt>
418 <dd>
419
420
421 14.27 / If-Range
422
423 The If-Range header is currently not implemented due to the lack of general
424 byte range stuff in luci.http.protocol . This function will always return
425 false, 412 to indicate a failed precondition.
426
427
428 <h3>Parameters</h3>
429 <ul>
430
431 <li>
432 req: HTTP request message object
433 </li>
434
435 <li>
436 stat: A file.stat object
437 </li>
438
439 </ul>
440
441
442
443
444
445
446 <h3>Return values:</h3>
447 <ol>
448
449 <li>Boolean indicating whether the precondition is ok
450
451 <li>Alternative status code if the precondition failed
452
453 </ol>
454
455
456
457 </dd>
458
459
460
461
462 <dt><a name="if_unmodified_since"></a><strong>if_unmodified_since</strong>&nbsp;(req, stat)</dt>
463 <dd>
464
465
466 14.28 / If-Unmodified-Since
467
468 Test whether the given message object contains an "If-Unmodified-Since"
469 header and compare it against the given stat object.
470
471
472 <h3>Parameters</h3>
473 <ul>
474
475 <li>
476 req: HTTP request message object
477 </li>
478
479 <li>
480 stat: A file.stat object
481 </li>
482
483 </ul>
484
485
486
487
488
489
490 <h3>Return values:</h3>
491 <ol>
492
493 <li>Boolean indicating whether the precondition is ok
494
495 <li>Alternative status code if the precondition failed
496
497 </ol>
498
499
500
501 </dd>
502
503
504
505
506 <dt><a name="mk_etag"></a><strong>mk_etag</strong>&nbsp;(stat)</dt>
507 <dd>
508
509
510 Implement 14.19 / ETag.
511
512
513
514 <h3>Parameters</h3>
515 <ul>
516
517 <li>
518 stat: A file.stat structure
519 </li>
520
521 </ul>
522
523
524
525
526
527
528 <h3>Return value:</h3>
529 String containing the generated tag suitable for ETag headers
530
531
532
533 </dd>
534
535
536 </dl>
537
538
539
540
541
542 </div> <!-- id="content" -->
543
544 </div> <!-- id="main" -->
545
546 <div id="about">
547 <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
548 </div> <!-- id="about" -->
549
550 </div> <!-- id="container" -->
551 </body>
552 </html>