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

  • library
    • http
      • http_unix_daemon.pl -- Run SWI-Prolog HTTP server as a Unix system daemon
      • thread_httpd.pl
      • 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
      • http_stream.pl -- HTTP Streams
      • http_exception.pl -- Map Prolog exceptions to HTTP errors
      • http_path.pl -- Abstract specification of HTTP server locations
      • http_dispatch.pl -- Dispatch requests in the HTTP server
      • http_host.pl -- Obtain public server location
      • http_ssl_plugin.pl -- SSL plugin for HTTP libraries
      • http_json.pl -- HTTP JSON Plugin module
      • http_client.pl -- HTTP client library
      • json.pl -- Reading and writing JSON serialization
      • http_open.pl -- HTTP client library
      • http_parameters.pl -- Extract parameters (GET and POST) from HTTP requests
      • http_multipart_plugin.pl -- Multipart form-data plugin
      • http_hook.pl -- HTTP library hooks
      • html_write.pl -- Write HTML text
      • html_quasiquotations.pl -- HTML quasi quotations
      • js_write.pl -- Utilities for including JavaScript
      • js_grammar.pl -- JavaScript grammar
      • 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
      • mimetype.pl -- Determine mime-type for a file
      • http_cors.pl -- Enable CORS: Cross-Origin Resource Sharing
      • html_head.pl -- Automatic inclusion of CSS and scripts links
      • jquery.pl -- Provide JQuery
      • term_html.pl -- Represent Prolog terms as HTML
      • http_dyn_workers.pl -- Dynamically schedule HTTP workers.
      • http_files.pl -- Serve plain files from a hierarchy
      • http_dirindex.pl -- HTTP directory listings
      • json_convert.pl -- Convert between JSON terms and Prolog application terms
      • mimepack.pl -- Create a MIME message
 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.