:- use_module(library(http/http_header)). http_read_request(+Stream, 
-Request)
http_read_request(+Stream, 
-Request)Name(Value) 
elements. It provides a number of predefined elements for the result of 
parsing the first line of the request, followed by the additional 
request parameters. The predefined fields are:
Host: Host, Host is 
unified with the host-name. If Host is of the format <host>:<port>
Host only describes <host> and a field port(Port) 
where
Port is an integer is added.delete, get, head,
options, patch, post, put,
trace). This field is present if the header has been parsed 
successfully.ip(A,B,C,D) containing the IP 
address of the contacting host.host for details.?The URL specification does not demand the query part to be of the form name=value. If the field is syntactically incorrect, ListOfNameValue is bound the the empty list ([]).
HTTP/Major.Minor 
version indicator this element indicate the HTTP version of the peer. 
Otherwise this field is not present.Cookie line, the value of the 
cookie is broken down in Name=Value pairs, where 
the
Name is the lowercase version of the cookie name as used for 
the HTTP fields.SetCookie line, the cookie field 
is broken down into the Name of the cookie, the Value 
and a list of Name=Value pairs for additional 
options such as expire, path, domain 
or secure.
If the first line of the request is tagged with
HTTP/Major.Minor, http_read_request/2 
reads all input upto the first blank line. This header consists of
Name:Value fields. Each such field appears as a 
term
Name(Value) in the Request, where Name 
is canonicalised for use with Prolog. Canonisation implies that the
Name is converted to lower case and all occurrences of the
-_. The value 
for the
Content-length fields is translated into an integer.
:- use_module(library(http/http_header)). [det]http_read_request(+FdIn:stream, 
-Request)
[det]http_read_request(+FdIn:stream, 
-Request)end_of_file if FdIn is at the end 
of input.