Besides returning a page by writing it to the current output stream, 
the server goal can raise an exception using throw/1 
to generate special pages such as not_found, moved, 
etc. The defined exceptions are:
http_reply(Reply, HdrExtra,[]).http_reply(Reply, [],[]).http_reply(not_modified,[]). This exception 
is for backward compatibility and can be used by the server to indicate 
the referenced resource has not been modified since it was requested 
last time.
In addition, the normal "200 OK" reply status may be 
overruled by writing a CGI Status header prior to the 
remainder of the message. This is particularly useful for defining REST 
APIs. The following handler replies with a "201 Created" 
header:
handle_request(Request) :-
        process_data(Request, Id),      % application predicate
        format('Status: 201~n'),
        format('Content-type: text/plain~n~n'),
        format('Created object as ~q~n', [Id]).