3.19 library(http/http_header): Handling HTTP headers
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
    • Packages
      • SWI-Prolog HTTP support
        • The HTTP server libraries
          • library(http/http_header): Handling HTTP headers
            • 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
            • serialize_reply/2
            • http_join_headers/3
            • http_update_encoding/3
            • mime_type_encoding/2
            • 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
            • ///1
            • status_page/3
[semidet,multifile]http:status_page(+Status, +Context, -HTMLTokens)
Hook called by http_status_reply/4 and http_status_reply/5 that allows for emitting custom error pages for the following HTTP page types:

  • 201 - created(Location)
  • 301 - moved(To)
  • 302 - moved_temporary(To)
  • 303 - see_other(To)
  • 400 - bad_request(ErrorTerm)
  • 401 - authorise(AuthMethod)
  • 403 - forbidden(URL)
  • 404 - not_found(URL)
  • 405 - method_not_allowed(Method,URL)
  • 406 - not_acceptable(Why)
  • 500 - server_error(ErrorTerm)
  • 503 - unavailable(Why)

The hook is tried twice, first using the status term, e.g., not_found(URL) and than with the code, e.g. 404. The second call is deprecated and only exists for compatibility.

Context is the 4th argument of http_status_reply/5, which is invoked after raising an exception of the format http_reply(Status, HeaderExtra, Context). The default context is [] (the empty list).
HTMLTokens is a list of tokens as produced by html//1. It is passed to print_html/2.