-record(request, {method = undefined :: undefined | method(), path = undefined :: undefined | binary(), qargs = undefined :: undefined | #{Key :: binary() := Value :: binary()}, fragment = undefined :: undefined | none | binary(), version = undefined :: undefined | http10 | http11 | http20, headers = undefined :: undefined | [{Key :: binary(), Value :: binary()}], cookies = undefined :: undefined | #{Key :: binary() := Value :: binary()}, enctype = undefined :: undefined | none | urlencoded | multipart(), size = undefined :: undefined | none | non_neg_integer(), body = undefined :: undefined | none | body()}). -record(response, {type = page :: page | {data, string()}, version = http11 :: http11, code = 200 :: pos_integer(), slogan = "" :: string(), headers = [] :: [{Key :: string(), Value :: iolist()}], body = "" :: iolist()}). -type method() :: get | post | options. -type multipart() :: {multipart, Boundary :: binary()}. -type body() :: {partial, binary()} | {multipart, [body_part()]} | binary(). -type body_part() :: {Field :: binary(), Data :: binary()} | {Field :: binary(), Name :: binary(), Data :: binary()}.