120 std::string
const &
uri()
const;
127 std::string
const &
path()
const;
137 std::string
const &
version()
const;
142 const std::string &
bodyPath()
const;
Represents a single 'location' block from the configuration file.
Definition LocationBlock.hpp:18
Represents a single 'server' block from the configuration file.
Definition ServerBlock.hpp:22
Holds the parsed components of an HTTP request's first line.
Definition Request.hpp:27
std::string path
The path portion only (e.g., "/path")
Definition Request.hpp:35
std::string version
The HTTP protocol version (e.g., "HTTP/1.1")
Definition Request.hpp:37
static char const * methodToString(Method m)
Converts a method enum to its string representation.
Definition Request.cpp:50
Method
Definition Request.hpp:29
@ GET
Definition Request.hpp:29
@ POST
Definition Request.hpp:29
@ HEAD
Definition Request.hpp:29
@ UNKNOWN
Definition Request.hpp:29
@ PUT
Definition Request.hpp:29
@ DELETE
Definition Request.hpp:29
static RequestStartLine parse(std::string const &line)
Parses a raw request line (e.g., "GET /path?q HTTP/1.1").
Definition Request.cpp:11
static Method matchHttpMethod(std::string const &s)
Converts a method string (e.g., "GET") to its enum.
Definition Request.cpp:36
RequestStartLine()
Definition Request.cpp:9
Method method
Definition Request.hpp:33
std::string queryString
The query string only (e.g., "query=1")
Definition Request.hpp:36
std::string uri
The full, original request-target (e.g., "/path?query=1")
Definition Request.hpp:34
std::string const & uri() const
Gets the full, original request URI (e.g., "/path?query=1").
Definition Request.cpp:102
config::LocationBlock const * location() const
Gets a const pointer to the matched LocationBlock.
Definition Request.cpp:100
config::ServerBlock const * server() const
Gets a const pointer to the matched ServerBlock.
Definition Request.cpp:101
utils::TempFile::MoveStatus moveBody(const std::string &destPath) const
Relocates the request body to a permanent location.
Definition Request.cpp:131
config::ServerBlock const * server_
Definition Request.hpp:206
Request()
Definition Request.cpp:67
Headers & headers()
Gets a mutable reference to the request headers.
Definition Request.cpp:107
Request & operator=(const Request &)
const std::string & bodyPath() const
Definition Request.cpp:126
std::string const & path() const
Gets the path portion of the URI (e.g., "/path").
Definition Request.cpp:103
std::string const & queryString() const
Gets the query string portion of the URI (e.g., "query=1").
Definition Request.cpp:104
RequestStartLine::Method method() const
Gets the HTTP method enum.
Definition Request.cpp:106
std::string remoteAddr_
Definition Request.hpp:208
size_t getMaxAllowedContentSize() const
Definition Request.cpp:87
void clear()
Resets the request to a default state, ready for reuse. Cleans up any existing body and resets all fi...
Definition Request.cpp:73
std::string const & version() const
Gets the HTTP protocol version (e.g., "HTTP/1.1").
Definition Request.cpp:105
friend class RequestParser
Definition Request.hpp:186
HttpStatus status() const
Gets the current status code.
Definition Request.cpp:116
bool wantsJson() const
Checks the 'Accept' header to see if the client prefers JSON.
Definition Request.cpp:71
RequestStartLine requestLine_
Definition Request.hpp:202
utils::TempFile const * body() const
Definition Request.cpp:117
std::string resolvePath() const
Resolves the full filesystem path for a request.
Definition Request.cpp:140
config::LocationBlock const * location_
Definition Request.hpp:205
friend class Router
Definition Request.hpp:187
utils::TempFile * body_
Definition Request.hpp:204
~Request()
Definition Request.cpp:69
std::string const & remoteAddr() const
Gets the remote (client) IP address for this request.
Definition Request.cpp:136
HttpStatus status_
Definition Request.hpp:207
Headers headers_
Definition Request.hpp:203
Manages the full lifecycle of a single client connection.
Definition ClientHandler.hpp:21
Definition filesystem.hpp:24
MoveStatus
Definition filesystem.hpp:36
Definition ArgumentFactory.hpp:5
Definition IArgument.hpp:5
HttpStatus
Definition HttpStatus.hpp:11
Definition Request.hpp:13
Definition filesystem.hpp:9