 http:request_expansion(+RequestIn, 
-RequestOut)This multifile hook predicate is called just before the goal 
that produces the body, while the output is already redirected to 
collect the reply. If it succeeds it must return a valid modified 
request. It is allowed to throw exceptions as defined in
section 3.1.1. It is intended for 
operations such as mapping paths, deny access for certain requests or 
manage cookies. If it writes output, these must be HTTP header fields 
that are added before header fields written by the body. The 
example below is from the session management library (see section 
3.5) sets a cookie.
http:request_expansion(+RequestIn, 
-RequestOut)This multifile hook predicate is called just before the goal 
that produces the body, while the output is already redirected to 
collect the reply. If it succeeds it must return a valid modified 
request. It is allowed to throw exceptions as defined in
section 3.1.1. It is intended for 
operations such as mapping paths, deny access for certain requests or 
manage cookies. If it writes output, these must be HTTP header fields 
that are added before header fields written by the body. The 
example below is from the session management library (see section 
3.5) sets a cookie.
        ...,
        format('Set-Cookie: ~w=~w; path=~w~n', [Cookie, SessionID, Path]),
        ...,