/usr/lib/swipl/library/http/http_header.pl
AllApplicationManualNameSummaryHelp

  • library
    • http
      • 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
      • thread_httpd.pl -- Threaded HTTP server
      • http_wrapper.pl -- Server processing of an HTTP request
      • http_header.pl -- Handling HTTP headers
        • serialize_reply/2
        • mime_type_encoding/2
        • http_address//0
        • status_page/3
        • http_read_request/2
        • http_read_reply_header/2
        • http_reply/2
        • http_reply/3
        • http_reply/4
        • http_reply/5
        • http_reply/6
        • http_status_reply/4
        • http_status_reply/5
        • http_status_reply/6
        • http_join_headers/3
        • http_update_encoding/3
        • http_update_connection/4
        • http_update_transfer/4
        • http_post_data/3
        • http_reply_header/3
        • http_parse_header_value/3
        • http_timestamp/2
        • http_read_header/2
        • http_parse_header/2
      • html_write.pl -- Write HTML text
      • html_quasiquotations.pl -- HTML quasi quotations
      • http_exception.pl -- Map Prolog exceptions to HTTP errors
      • mimepack.pl -- Create a MIME message
      • http_stream.pl -- HTTP Streams
      • 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
      • http_json.pl -- HTTP JSON Plugin module
      • json.pl -- Reading and writing JSON serialization
      • http_cors.pl -- Enable CORS: Cross-Origin Resource Sharing
      • js_write.pl -- Utilities for including JavaScript
      • js_grammar.pl -- JavaScript grammar
      • http_ssl_plugin.pl -- SSL plugin for HTTP libraries
      • http_server_files.pl -- Serve files needed by modules from the server
      • hub.pl -- Manage a hub for websockets
      • websocket.pl -- WebSocket support
      • http_session.pl -- HTTP Session management
      • term_html.pl -- Represent Prolog terms as HTML
      • html_head.pl -- Automatic inclusion of CSS and scripts links
      • jquery.pl -- Provide JQuery
      • http_dyn_workers.pl -- Dynamically schedule HTTP workers.
      • http_authenticate.pl -- Authenticate HTTP connections using 401 headers
      • http_digest.pl -- HTTP Digest authentication
      • http_unix_daemon.pl -- Run SWI-Prolog HTTP server as a Unix system daemon
 http_update_transfer(+Request, +CGIHeader, -Transfer, -Header)
Decide on the transfer encoding from the Request and the CGI header. The behaviour depends on the setting http:chunked_transfer. If never, even explitic requests are ignored. If on_request, chunked encoding is used if requested through the CGI header and allowed by the client. If if_possible, chunked encoding is used whenever the client allows for it, which is interpreted as the client supporting HTTP 1.1 or higher.

Chunked encoding is more space efficient and allows the client to start processing partial results. The drawback is that errors lead to incomplete pages instead of a nicely formatted complete page.