|http:make-request &key client-host client-port server-host server-port method uri protocol protocol-major protocol-minor headers body||[Function]|
Make a HTTP request. HTTP requests are created by the server for each received request, and may be created by a client to send to a server. The server-host and server-port must be supplied when making a client request. The server-host should be the server IP address number or domain name and the server-port is the server port number. The method is the HTTP method string, for example "GET", or "POST", and must be supplied. The uri is the URI string. The headers is an alist of headers and an associated list of values. The body, if any, may be a byte vector or a string - a string will be converted into bytes before sending the request. The request object is immutable, and should not be modified. A client protocol string to send with the request may be supplied to override the default in which case the protocol-major and protocol-minor numbers must also be supplied. The client-host and client-port are typically not used when making a client request but are filled in by the server when receiving a request from a client.
For a proxy request, the server-host and server-port should specify the proxy server host and port to which the client connects. The proxy will likely expect the uri to be absolute in contrast to relative for a direct request.