- 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
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- encoding_filter/3
- 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
- http
- http_chunked_open(+RawStream, -DataStream, +Options) is det
- Create a stream to realise HTTP chunked encoding or decoding.
The technique is similar to
library(zlib), using a Prolog stream as a filter on another stream. Options:- close_parent(+Bool)
- If
true(defaultfalse), the parent stream is closed if DataStream is closed. - max_chunk_size(+PosInt)
- Define the maximum size of a chunk. Default is the
default buffer size of fully buffered streams (4096).
Larger values may improve throughput. It is also
allowed to use
set_stream(DataStream, buffer(line))on the data stream to get line-buffered output. See set_stream/2 for details. Switching buffering tofalseis supported.
Here is example code to write a chunked data to a stream
http_chunked_open(Out, S, []), format(S, 'Hello world~n', []), close(S).If a stream is known to contain chunked data, we can extract this data using
http_chunked_open(In, S, []), read_stream_to_codes(S, Codes), close(S).The current implementation does not generate chunked extensions or an HTTP trailer. If such extensions appear on the input they are silently ignored. This is compatible with the HTTP 1.1 specifications. Although a filtering stream is an excellent mechanism for encoding and decoding the core chunked protocol, it does not well support out-of-band data.
After http_chunked_open/3, the encoding of DataStream is the same as the encoding of RawStream, while the encoding of RawStream is
octet, the only value allowed for HTTP chunked streams. Closing the DataStream restores the old encoding on RawStream.- Errors
- -
io_error(read, Stream)where the message context provides an indication of the problem. This error is raised if the input is not valid HTTP chunked data.