• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

/usr/lib/swi-prolog/library/http/http_stream.pl
AllApplicationManualNameSummaryHelp

  • 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_chunked_open/3
        • stream_range_open/3
        • multipart_open/3
        • multipart_open_next/1
        • cgi_open/4
        • cgi_property/2
        • cgi_set/2
        • cgi_discard/1
        • is_cgi_stream/1
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
        • encoding_filter/3
      • 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
 cgi_open(+OutStream, -CGIStream, :Hook, +Options) is det
Process CGI output. OutStream is normally the socket returning data to the HTTP client. CGIStream is the stream the (Prolog) code writes to. The CGIStream provides the following functions:
  • At the end of the header, it calls Hook using call(Hook, header, Stream), where Stream is a stream holding the buffered header.
  • If the stream is closed, it calls Hook using call(Hook, data, Stream), where Stream holds the buffered data.

The stream calls Hook, adding the event and CGIStream to the closure. Defined events are:

header
Called if the header is complete. Typically it uses cgi_property/2 to extract the collected header and combines these with the request and policies to decide on encoding, transfer-encoding, connection parameters and the complete header (as a Prolog term). Typically it uses cgi_set/2 to associate these with the stream.
send_header
Called if the HTTP header must be sent. This is immediately after setting the transfer encoding to chunked or when the CGI stream is closed. Typically it requests the current header, optionally the content-length and sends the header to the original (client) stream.
close
Called from close/1 on the CGI stream after everything is complete.

The predicates cgi_property/2 and cgi_set/2 can be used to control the stream and store status info. Terms are stored as Prolog records and can thus be transferred between threads.

ClioPatria (version V3.1.1-21-gb8003bb)