Difference between revisions of "Unit HTTP"

From Ultibo.org
Jump to: navigation, search
 
(12 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo HTTP interface unit'''
+
'''Ultibo HTTP Interface unit'''
 
+
''To be documented''
+
  
 
=== Constants ===
 
=== Constants ===
Line 68: Line 66:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP date constants''' <code> HTTP_DATE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP date''' <code> HTTP_DATE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 90: Line 88:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP client constants''' <code> HTTP_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP client''' <code> HTTP_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 113: Line 111:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP server constants ''' <code> HTTP_SERVER_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP server''' <code> HTTP_SERVER_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 124: Line 122:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP protocol constants''' <code> HTTP_PROTOCOL_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP protocol''' <code> HTTP_PROTOCOL_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 149: Line 147:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP method constants''' <code> HTTP_METHOD_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP method''' <code> HTTP_METHOD_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 210: Line 208:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP version constants''' <code> HTTP_VERSION_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP version''' <code> HTTP_VERSION_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 240: Line 238:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP encoding constants''' <code> HTTP_ENCODING_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP encoding''' <code> HTTP_ENCODING_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 283: Line 281:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP general header constants''' <code> HTTP_GENERAL_HEADER_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP general header''' <code> HTTP_GENERAL_HEADER_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 318: Line 316:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP request header constants''' <code> HTTP_REQUEST_HEADER_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP request header''' <code> HTTP_REQUEST_HEADER_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 383: Line 381:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP response header constants''' <code> HTTP_RESPONSE_HEADER_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP response header''' <code> HTTP_RESPONSE_HEADER_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 418: Line 416:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP entity header constants''' <code> HTTP_ENTITY_HEADER_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP entity header''' <code> HTTP_ENTITY_HEADER_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 441: Line 439:
 
|-
 
|-
 
| <code>HTTP_ENTITY_HEADER_CONTENT_TYPE = 'Content-Type';</code>
 
| <code>HTTP_ENTITY_HEADER_CONTENT_TYPE = 'Content-Type';</code>
 +
| &nbsp;
 +
|-
 +
| <code>HTTP_ENTITY_HEADER_CONTENT_DISPOSITION = 'Content-Disposition';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 454: Line 455:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP status constants''' <code> HTTP_STATUS_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP status''' <code> HTTP_STATUS_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 593: Line 594:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP reason constants''' <code> HTTP_REASON_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP reason''' <code> HTTP_REASON_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 721: Line 722:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP content type constants''' <code> HTTP_CONTENT_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP content type''' <code> HTTP_CONTENT_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 732: Line 733:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP cache control constants''' <code> HTTP_CACHE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP cache control''' <code> HTTP_CACHE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 743: Line 744:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP connection constants''' <code> HTTP_CONNECTION_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP connection''' <code> HTTP_CONNECTION_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 757: Line 758:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP request flag constants''' <code> HTTP_REQUEST_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP request flag''' <code> HTTP_REQUEST_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 780: Line 781:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP response flag constants''' <code> HTTP_RESPONSE_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP response flag''' <code> HTTP_RESPONSE_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 797: Line 798:
 
|-
 
|-
 
| <code>HTTP_RESPONSE_FLAG_CONNECTION_CLOSE = $00000008;</code>
 
| <code>HTTP_RESPONSE_FLAG_CONNECTION_CLOSE = $00000008;</code>
| Server / Client
+
| Server/Client
 
|-
 
|-
 
| <code>HTTP_RESPONSE_FLAG_NO_CACHE = $00000010;</code>
 
| <code>HTTP_RESPONSE_FLAG_NO_CACHE = $00000010;</code>
| Server / Client
+
| Server/Client
 
|-
 
|-
 
| <code>HTTP_RESPONSE_FLAG_CONTENT_RECEIVED = $00000020;</code>
 
| <code>HTTP_RESPONSE_FLAG_CONTENT_RECEIVED = $00000020;</code>
Line 809: Line 810:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP client state constants''' <code> HTTP_CLIENT_STATE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP client state''' <code> HTTP_CLIENT_STATE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 832: Line 833:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP host flag constants''' <code> HTTP_HOST_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP host flag''' <code> HTTP_HOST_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 849: Line 850:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP CGI flag constants''' <code> HTTP_CGI_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP CGI flag''' <code> HTTP_CGI_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 869: Line 870:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP error flag constants''' <code> HTTP_ERROR_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP error flag''' <code> HTTP_ERROR_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 883: Line 884:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP module flag constants''' <code> HTTP_MODULE_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP module flag''' <code> HTTP_MODULE_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 894: Line 895:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP document flag constants''' <code> HTTP_DOCUMENT_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP document flag''' <code> HTTP_DOCUMENT_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 917: Line 918:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP mime type constants''' <code> HTTP_MIME_TYPE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP mime type''' <code> HTTP_MIME_TYPE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 923: Line 924:
 
|colspan="2"|See: Apache mime.types file
 
|colspan="2"|See: Apache mime.types file
 
|-
 
|-
| <code>HTTP_MIME_TYPE_MAX = 28;</code>
+
| <code>HTTP_MIME_TYPE_MAX = 29;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 973: Line 974:
 
|-
 
|-
 
| <code>('jpeg','image/jpeg'),</code>
 
| <code>('jpeg','image/jpeg'),</code>
 +
| &nbsp;
 +
|-
 +
| <code>('js','application/javascript'),</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 1,025: Line 1,029:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''HTTP logging constants''' <code> HTTP_LOG_LEVEL_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''HTTP logging''' <code> HTTP_LOG_LEVEL_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 1,034: Line 1,038:
 
| <code>HTTP_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code>
 
| <code>HTTP_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code>
 
| HTTP informational messages
 
| HTTP informational messages
 +
|-
 +
| <code>HTTP_LOG_LEVEL_WARN = LOG_LEVEL_WARN;</code>
 +
| HTTP warning messages
 
|-
 
|-
 
| <code>HTTP_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code>
 
| <code>HTTP_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code>
Line 1,057: Line 1,064:
 
|-
 
|-
 
|}  
 
|}  
<br />
+
 
 +
'''HTTP redirect event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPRedirectEvent = function(AClient:THTTPClient; const AURL:String; var ALocation:String):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''HTTP password event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPPasswordEvent = function(AClient:THTTPClient; var AUsername,APassword:String):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''HTTP host event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPHostEvent = function(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''HTTP error event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPErrorEvent = function(AHost:THTTPHost; AError:THTTPError; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''HTTP module event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPModuleEvent = function(AHost:THTTPHost; AModule:THTTPModule; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''HTTP document event'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>THTTPDocumentEvent = function(AHost:THTTPHost; ADocument:THTTPDocument; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
<br />  
  
 
=== Class definitions ===
 
=== Class definitions ===
 
----
 
----
  
''To be documented''
+
 
 +
'''HTTP helper classes'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPBuffer|<code>THTTPBuffer = class(TObject)</code>]]
 +
|-
 +
|}
 +
 
 +
'''HTTP common classes'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPParam|<code>THTTPParam = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPParams|<code>THTTPParams = class(TObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPHeader|<code>THTTPHeader = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPHeaders|<code>THTTPHeaders = class(TObject)</code>]]
 +
|-
 +
|}
 +
 
 +
'''HTTP client classes'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPClientRequest|<code>THTTPClientRequest = class(TObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPClientResponse|<code>THTTPClientResponse = class(TObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPClient|<code>THTTPClient = class(TWinsock2TCPClient)</code>]]
 +
|-
 +
|}
 +
 
 +
'''HTTP server classes'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPServerRequest|<code>THTTPServerRequest = class(TObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPServerResponse|<code>THTTPServerResponse = class(TObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPHost|<code>THTTPHost = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPError|<code>THTTPError = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPAlias|<code>THTTPAlias = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPModule|<code>THTTPModule = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPDocument|<code>THTTPDocument = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPMimeType|<code>THTTPMimeType = class(TListObject)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPRedirect|<code>THTTPRedirect = class(THTTPDocument)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPFolder|<code>THTTPFolder = class(THTTPDocument)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPFile|<code>THTTPFile = class(THTTPDocument)</code>]]
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| [[THTTPListener|<code>THTTPListener = class(TWinsock2TCPListener)</code>]]
 +
|-
 +
|}
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
Line 1,073: Line 1,246:
 
|-
 
|-
 
| <code>HTTP_DEFAULT_LOG_LEVEL:LongWord = HTTP_LOG_LEVEL_DEBUG;</code>
 
| <code>HTTP_DEFAULT_LOG_LEVEL:LongWord = HTTP_LOG_LEVEL_DEBUG;</code>
| style="width: 65%;"|Minimum level for HTTP messages. Only messages with level greater than or equal to this will be printed.
+
| style="width: 40%;"|Minimum level for HTTP messages. Only messages with level greater than or equal to this will be printed.
 
|-
 
|-
 
|}
 
|}
Line 1,079: Line 1,252:
 
|-
 
|-
 
| <code>HTTP_LOG_ENABLED:Boolean;</code>
 
| <code>HTTP_LOG_ENABLED:Boolean;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 1,096: Line 1,269:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,111: Line 1,284:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,118: Line 1,291:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function HTTPDecode(const AValue:String):String;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function HTTPDecode(const AValue:String; AQuery:Boolean = False):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,135: Line 1,308:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,147: Line 1,320:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,159: Line 1,332:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,171: Line 1,344:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,183: Line 1,356:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,195: Line 1,368:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,207: Line 1,380:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,219: Line 1,392:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,231: Line 1,404:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,243: Line 1,416:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,255: Line 1,428:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,267: Line 1,440:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,279: Line 1,452:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,291: Line 1,464:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,303: Line 1,476:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,315: Line 1,488:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,327: Line 1,500:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,339: Line 1,512:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,351: Line 1,524:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,363: Line 1,536:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,375: Line 1,548:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,387: Line 1,560:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,399: Line 1,572:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,411: Line 1,584:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,423: Line 1,596:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,435: Line 1,608:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,447: Line 1,620:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,459: Line 1,632:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,471: Line 1,644:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,483: Line 1,656:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,495: Line 1,668:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,507: Line 1,680:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,519: Line 1,692:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogInfo(const AText:String); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,526: Line 1,711:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogInfo(const AText:String);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogWarn(const AText:String); inline;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,538: Line 1,723:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogError(const AText:String);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogError(const AText:String); inline;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,550: Line 1,735:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogDebug(const AText:String);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure HTTPLogDebug(const AText:String); inline;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 04:22, 14 October 2022

Return to Unit Reference


Description


Ultibo HTTP Interface unit

Constants



[Expand]
HTTP specific constants HTTP_*


[Expand]
HTTP date HTTP_DATE_*


[Expand]
HTTP client HTTP_*


[Expand]
HTTP server HTTP_SERVER_*


[Expand]
HTTP protocol HTTP_PROTOCOL_*


[Expand]
HTTP method HTTP_METHOD_*


[Expand]
HTTP version HTTP_VERSION_*


[Expand]
HTTP encoding HTTP_ENCODING_*


[Expand]
HTTP general header HTTP_GENERAL_HEADER_*


[Expand]
HTTP request header HTTP_REQUEST_HEADER_*


[Expand]
HTTP response header HTTP_RESPONSE_HEADER_*


[Expand]
HTTP entity header HTTP_ENTITY_HEADER_*


[Expand]
HTTP status HTTP_STATUS_*


[Expand]
HTTP reason HTTP_REASON_*


[Expand]
HTTP content type HTTP_CONTENT_*


[Expand]
HTTP cache control HTTP_CACHE_*


[Expand]
HTTP connection HTTP_CONNECTION_*


[Expand]
HTTP request flag HTTP_REQUEST_FLAG_*


[Expand]
HTTP response flag HTTP_RESPONSE_FLAG_*


[Expand]
HTTP client state HTTP_CLIENT_STATE_*


[Expand]
HTTP host flag HTTP_HOST_FLAG_*


[Expand]
HTTP CGI flag HTTP_CGI_FLAG_*


[Expand]
HTTP error flag HTTP_ERROR_FLAG_*


[Expand]
HTTP module flag HTTP_MODULE_FLAG_*


[Expand]
HTTP document flag HTTP_DOCUMENT_FLAG_*


[Expand]
HTTP mime type HTTP_MIME_TYPE_*


[Expand]
HTTP logging HTTP_LOG_LEVEL_*


Type definitions



HTTP reserved chars

THTTPReservedChars = set of AnsiChar;

HTTP redirect event

THTTPRedirectEvent = function(AClient:THTTPClient; const AURL:String; var ALocation:String):Boolean of Object;

HTTP password event

THTTPPasswordEvent = function(AClient:THTTPClient; var AUsername,APassword:String):Boolean of Object;

HTTP host event

THTTPHostEvent = function(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;

HTTP error event

THTTPErrorEvent = function(AHost:THTTPHost; AError:THTTPError; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;

HTTP module event

THTTPModuleEvent = function(AHost:THTTPHost; AModule:THTTPModule; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;

HTTP document event

THTTPDocumentEvent = function(AHost:THTTPHost; ADocument:THTTPDocument; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;


Class definitions



HTTP helper classes

THTTPBuffer = class(TObject)

HTTP common classes

THTTPParam = class(TListObject)
THTTPParams = class(TObject)
THTTPHeader = class(TListObject)
THTTPHeaders = class(TObject)

HTTP client classes

THTTPClientRequest = class(TObject)
THTTPClientResponse = class(TObject)
THTTPClient = class(TWinsock2TCPClient)

HTTP server classes

THTTPServerRequest = class(TObject)
THTTPServerResponse = class(TObject)
THTTPHost = class(TListObject)
THTTPError = class(TListObject)
THTTPAlias = class(TListObject)
THTTPModule = class(TListObject)
THTTPDocument = class(TListObject)
THTTPMimeType = class(TListObject)
THTTPRedirect = class(THTTPDocument)
THTTPFolder = class(THTTPDocument)
THTTPFile = class(THTTPDocument)
THTTPListener = class(TWinsock2TCPListener)


Public variables



HTTP logging

HTTP_DEFAULT_LOG_LEVEL:LongWord = HTTP_LOG_LEVEL_DEBUG; Minimum level for HTTP messages. Only messages with level greater than or equal to this will be printed.
HTTP_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

[Expand]
procedure HTTPInit;
Description: To be documented


HTTP helper functions

[Expand]
function HTTPEncode(const AValue:String; AReserved:THTTPReservedChars):String;
Description: To be documented


[Expand]
function HTTPDecode(const AValue:String; AQuery:Boolean = False):String;
Description: To be documented


[Expand]
function HTTPParseURI(const AURI:String; var AProtocol,AHost,APort,APath,AQuery:String):Boolean;
Description: To be documented


[Expand]
function HTTPBuildURI(const AProtocol,AHost,APort,APath,AQuery:String; var AURI:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseHost(const AHost:String; var AName,APort:String):Boolean;
Description: To be documented


[Expand]
function HTTPBuildHost(const AName,APort:String; var AHost:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseParam(const AParam:String; var AName,AValue:String):Boolean;
Description: To be documented


[Expand]
function HTTPBuildParam(const AName,AValue:String; var AParam:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseQuery(const AQuery:String; AParams:THTTPParams):Boolean;
Description: To be documented


[Expand]
function HTTPBuildQuery(AParams:THTTPParams; var AQuery:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseHeader(const AHeader:String; var AName,AValue:String):Boolean;
Description: To be documented


[Expand]
function HTTPBuildHeader(const AName,AValue:String; var AHeader:String):Boolean;
Description: To be documented


[Expand]
function HTTPPathExtractName(const ASource:String; var AName:String):Boolean;
Description: To be documented


[Expand]
function HTTPPathExtractDir(const ASource:String; var APath:String):Boolean;
Description: To be documented


[Expand]
function HTTPPathExtractPath(const ASource:String; var APath:String):Boolean;
Description: To be documented


[Expand]
function HTTPPathExtractExtension(const ASource:String; var AExtension:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseRequestLine(const ARequest:String; var AMethod:LongWord; var AURL:String; var AVersion:LongWord):Boolean;
Description: To be documented


[Expand]
function HTTPBuildRequestLine(AMethod:LongWord; const AURL:String; AVersion:LongWord; var ARequest:String):Boolean;
Description: To be documented


[Expand]
function HTTPParseResponseLine(const AResponse:String; var AVersion,AStatus:LongWord; var AReason:String):Boolean;
Description: To be documented


[Expand]
function HTTPBuildResponseLine(AVersion,AStatus:LongWord; const AReason:String; var AResponse:String):Boolean;
Description: To be documented


[Expand]
function FileTimeToHTTPDate(const AFileTime:TFileTime):String;
Description: To be documented


[Expand]
function HTTPDateToFileTime(const AHTTPDate:String):TFileTime;
Description: To be documented


[Expand]
function DateTimeToHTTPDate(const ADateTime:TDateTime):String;
Description: To be documented


[Expand]
function HTTPDateToDateTime(const AHTTPDate:String):TDateTime;
Description: To be documented


[Expand]
function StringToHTTPProtocol(const AProtocol:String):LongWord;
Description: To be documented


[Expand]
function HTTPProtocolToString(AProtocol:LongWord):String;
Description: To be documented


[Expand]
function StringToHTTPMethod(const AMethod:String):LongWord;
Description: To be documented


[Expand]
function HTTPMethodToString(AMethod:LongWord):String;
Description: To be documented


[Expand]
function StringToHTTPVersion(const AVersion:String):LongWord;
Description: To be documented


[Expand]
function HTTPVersionToString(AVersion:LongWord):String;
Description: To be documented


[Expand]
function StringToHTTPEncoding(const AEncoding:String):LongWord;
Description: To be documented


[Expand]
function HTTPEncodingToString(AEncoding:LongWord):String;
Description: To be documented


[Expand]
function StringToHTTPStatus(const AStatus:String):LongWord;
Description: To be documented


[Expand]
function HTTPStatusToString(AStatus:LongWord):String;
Description: To be documented


[Expand]
procedure HTTPLog(Level:LongWord;const AText:String);
Description: To be documented


[Expand]
procedure HTTPLogInfo(const AText:String); inline;
Description: To be documented


[Expand]
procedure HTTPLogWarn(const AText:String); inline;
Description: To be documented


[Expand]
procedure HTTPLogError(const AText:String); inline;
Description: To be documented


[Expand]
procedure HTTPLogDebug(const AText:String); inline;
Description: To be documented


Return to Unit Reference