- library
- http
- http_unix_daemon.pl -- Run SWI-Prolog HTTP server as a Unix system daemon
- thread_httpd.pl -- Threaded HTTP server
- http_wrapper.pl -- Server processing of an HTTP request
- http_header.pl -- Handling HTTP headers
- html_write.pl -- Write HTML text
- html_quasiquotations.pl -- HTML quasi quotations
- http_dispatch.pl -- Dispatch requests in the HTTP server
- mimetype.pl -- Determine mime-type for a file
- http_path.pl -- Abstract specification of HTTP server locations
- http_host.pl -- Obtain public server location
- http_exception.pl -- Map Prolog exceptions to HTTP errors
- mimepack.pl -- Create a MIME message
- http_stream.pl -- HTTP Streams
- http_ssl_plugin.pl -- SSL plugin for HTTP libraries
- http_parameters.pl -- Extract parameters (GET and POST) from HTTP requests
- http_client.pl -- HTTP client library
- http_open.pl -- HTTP client library
- http_multipart_plugin.pl -- Multipart form-data plugin
- http_hook.pl -- HTTP library hooks
- html_head.pl -- Automatic inclusion of CSS and scripts links
- term_html.pl -- Represent Prolog terms as HTML
- jquery.pl -- Provide JQuery
- http_server_files.pl -- Serve files needed by modules from the server
- json.pl -- Reading and writing JSON serialization
- http_session.pl -- HTTP Session management
- http_openid.pl -- OpenID consumer and server library
- yadis.pl -- Yadis discovery
- ax.pl -- Attribute Exchange library
- http_authenticate.pl -- Authenticate HTTP connections using 401 headers
- http_json.pl -- HTTP JSON Plugin module
- http_dirindex.pl -- HTTP directory listings
- js_write.pl -- Utilities for including JavaScript
- js_grammar.pl -- JavaScript grammar
- http_cors.pl -- Enable CORS: Cross-Origin Resource Sharing
- json_convert.pl -- Convert between JSON terms and Prolog application terms
- http_error.pl -- Decorate uncaught HTTP exceptions with stack-trace
- hub.pl -- Manage a hub for websockets
- websocket.pl -- WebSocket support
- http_log.pl -- HTTP Logging module
- http
- http_public_host(?Request, -Hostname, -Port, +Options) is det
- Current global host and port of the HTTP server. This is the
basis to form absolute address, which we need for redirection
based interaction such as the OpenID protocol. Options are:
- global(+Bool)
- If
true
(defaultfalse
), try to replace a local hostname by a world-wide accessible name.
This predicate performs the following steps to find the host and port:
- Use the settings
http:public_host
andhttp:public_port
- Use
X-Forwarded-Host
header, which applies if this server runs behind a proxy. - Use the
Host
header, which applies for HTTP 1.1 if we are contacted directly. - Use gethostname/1 to find the host and http_current_server/2 to find the port.
- Arguments:
-
Request - is the current request. If it is left unbound, and the request is needed, it is obtained with http_current_request/1.