anchor.diff:  %% of the body has been sent since it doesn't keep the whole entitity body
   %% in memory.
   %%
  -%% `{partial_upload, WindowSize}' means that the body will be supplied in
  -%% parts to the client by the calling process. The `WindowSize' specifies how
  -%% many parts can be sent to the process controlling the socket before waiting
  -%% for an acknowledgement. This is to create a kind of internal flow control
  -%% if the network is slow and the process is blocked by the TCP stack. Flow
  -%% control is disabled if `WindowSize' is `infinity'. If `WindowSize' is an
  -%% integer, it must be >= 0.  If partial upload is specified and no
  -%% `Content-Length' is specified in `Hdrs' the client will use chunked
  -%% transfer encoding to send the entity body. If a content length is
  -%% specified, this must be the total size of the entity body.
  +%% `{partial_upload, WindowSize}' means that the request entity body will be
  +%% supplied in parts to the client by the calling process. The `WindowSize'
  +%% specifies how many parts can be sent to the process controlling the socket
  +%% before waiting for an acknowledgement. This is to create a kind of
  +%% internal flow control if the network is slow and the client process is
  +%% blocked by the TCP stack. Flow control is disabled if `WindowSize' is
  +%% `infinity'. If `WindowSize' is an integer, it must be >= 0. If partial
  +%% upload is specified and no `Content-Length' is specified in `Hdrs' the
  +%% client will use chunked transfer encoding to send the entity body.
  +%% If a content length is specified, this must be the total size of the entity
  +%% body.
   %% The call to {@link request/6} will return `{ok, UploadState}'. The
   %% `UploadState' is supposed to be used as the first argument to the {@link
   %% send_body_part/2} or {@link send_body_part/3} functions to send body parts.
  
positive.code: %%   Reason = connection_closed | connect_timeout | timeout
  %% @doc Sends trailers to an ongoing request when `{partial_upload,
  %% WindowSize}' is used and no `Content-Length' was specified. The default
  %% timout `infinity' will be used. Note that after this the request is
  %% considered complete and the response will be read from the socket. 
  %% Would be the same as calling
  %% `send_trailers(UploadState, BodyPart, infinity)'.
  
negative.code: %% 
  %% `Method' is either a string, stating the HTTP method exactly as in the
  %% protocol, i.e: `"POST"' or `"GET"'. It could also be an atom, which is
  %% then coverted to an uppercase (if it isn't already) string.
  %%
  %% `Hdrs' is a list of headers to send. Mandatory headers such as
  %% `Host', `Content-Length' or `Transfer-Encoding' (for some requests) 
  %% are added automatically.
  %%
  %% `Body' is the entity to send in the request. Please don't include entity
  %% bodies where there shouldn't be any (such as for `GET').
  %%
  %% `Timeout' is the timeout for the request in milliseconds.
  %%
  %% `Options' is a list of options.
  %%
  %% Options:
  