HttpServer Namespace Reference

the main namespace for the HttpServer and HttpServerUtil modules More...

## Classes

class | AbstractAuthenticator
| abstract base class for external authentication More...
class | AbstractHttpRequestHandler
| abstract class that all HTTP request handler objects must inherit from More...
class | AbstractHttpSocketHandler
| abstract class that all HTTP dedicated socket handler objects must inherit from More...
class | AbstractLogger
| this abstract class defines the interface for classes that provide logging methods More...
class | AbstractStreamRequest
| abstract class for streaming HTTP chunked requests/responses More...
class | AbstractUrlHandler
| abstract class for HTTP request handlers anchored at a specific URL More...
struct | HttpHandlerResponseInfo
| the return value of HTTP handler methods with potentially unserialized message bodies More...
class | HttpListenerInterface
| this abstract class defines the public interface of the private HttpListener class defined in the HttpServer module More...
struct | HttpResponseInfo
| the return value of HTTP handler methods where any message body has been serialized for sending over the HTTP socket More...
class | PermissiveAuthenticator
| class providing automatic authentication for all requests More...

## Functions

string | http_get_url_from_bind (softstring bind, *string host)
| returns a complete URL from a bind address More...
string | http_mask_data (string msg)
| this function can be used to mask data in log messages More...
nothing | http_set_reply_headers (Socket s, hash cx, reference rv, *string server_string)
| helper function for setting HTTP response headers
hash< Util::UriQueryInfo > | parse_uri_query (string path)
| parses a URI path for a arguments and a method; where the method is the part of the path before the first `"?"` character, and arguments are after More...

## Variables

const | DefaultTimeout = 30s
| default timeout in ms
const | HttpCodes
| map of HTTP result codes and text messages
const | HttpServerString = sprintf("Qore-HTTP-Server/%s", HttpServerVersion)
| default HTTP server string
const | HttpServerVersion = "0.3.11.1"
| version of the HttpServer's implementation
const | LP_LEVELMASK = LP_LOGPARAMS - 1
| mask for the log level
const | LP_LOGPARAMS = 1 << 16
| bit for logging argument
const | ReadTimeout = DefaultTimeout
| read timeout in ms

## Detailed Description

the main namespace for the HttpServer and HttpServerUtil modules

To use this module, use `"%requires HttpServerUtil"` in your code.

All the public symbols in the module are defined in this namespace

## Function Documentation

## http_get_url_from_bind()

string HttpServer::http_get_url_from_bind | ( | softstring | bind,
|  | *string | host
| ) |  |

returns a complete URL from a bind address

Parameters

  bind | the bind address; if for any reason there is a path in the bind address, it will be ignored
  host | the hostname to use in case the bind string is only a port number; if none is passed or the value passed is equal to the return value of Qore::gethostname(), then `"localhost"` is used

## http_mask_data()

string HttpServer::http_mask_data | ( | string | msg | ) |

this function can be used to mask data in log messages

Example:
  string msg = http_mask_data(msg);

Parameters

  msg | a log message with potentially sensitive data; expected to be a string of serialized data

Returns
  a string with sensitive data removed; currently the function masks data after `'pass'`, `'password'`, `'sensitive'`, and `'sensitive_data''` followed by a colon, an equals sign, and optionally whitespace

Note
  this algorithm can have false positives and also can miss sensitive data

## parse_uri_query()

hash<Util::UriQueryInfo> HttpServer::parse_uri_query | ( | string | path | ) |

parses a URI path for a arguments and a method; where the method is the part of the path before the first `"?"` character, and arguments are after

Parameters

  path | the URI path to parse

Returns
  a Util::UriQueryInfo hash

Since
  - 0.3.11 the params key value is always returned as a hash
  - 0.3.12 the actual implementation is in Util::parse_uri_query()

Note
  provided by Util::parse_uri_query()