|
| request (const std::string &resource) |
|
| request (void) |
| constructs a new request object (default constructor) More...
|
|
virtual | ~request () |
| virtual destructor More...
|
|
virtual void | clear (void) |
| clears all request data More...
|
|
virtual bool | is_content_length_implied (void) const |
| the content length of the message can never be implied for requests More...
|
|
const std::string & | get_method (void) const |
| returns the request method (i.e. GET, POST, PUT) More...
|
|
const std::string & | get_resource (void) const |
| returns the resource uri-stem to be delivered (possibly the result of a redirect) More...
|
|
const std::string & | get_original_resource (void) const |
| returns the resource uri-stem originally requested More...
|
|
const std::string & | get_query_string (void) const |
| returns the uri-query or query string requested More...
|
|
const std::string & | get_query (const std::string &key) const |
| returns a value for the query key if any are defined; otherwise, an empty string More...
|
|
ihash_multimap & | get_queries (void) |
| returns the query parameters More...
|
|
bool | has_query (const std::string &key) const |
| returns true if at least one value for the query key is defined More...
|
|
void | set_method (const std::string &str) |
| sets the HTTP request method (i.e. GET, POST, PUT) More...
|
|
void | set_resource (const std::string &str) |
| sets the resource or uri-stem originally requested More...
|
|
void | change_resource (const std::string &str) |
| changes the resource or uri-stem to be delivered (called as the result of a redirect) More...
|
|
void | set_query_string (const std::string &str) |
| sets the uri-query or query string requested More...
|
|
void | add_query (const std::string &key, const std::string &value) |
| adds a value for the query key More...
|
|
void | change_query (const std::string &key, const std::string &value) |
| changes the value of a query key More...
|
|
void | delete_query (const std::string &key) |
| removes all values for a query key More...
|
|
void | use_query_params_for_query_string (void) |
| use the query parameters to build a query string for the request More...
|
|
void | use_query_params_for_post_content (void) |
| use the query parameters to build POST content for the request More...
|
|
void | set_content (const std::string &value) |
| add content (for POST) from string More...
|
|
void | set_content (const char *value, size_t size) |
|
void | set_user (user_ptr user) |
| sets the user record for HTTP request after authentication More...
|
|
user_ptr | get_user () const |
| get the user record for HTTP request after authentication More...
|
|
| message (void) |
| constructs a new HTTP message object More...
|
|
| message (const message &http_msg) |
| copy constructor More...
|
|
message & | operator= (const message &http_msg) |
| assignment operator More...
|
|
virtual | ~message () |
| virtual destructor More...
|
|
bool | is_valid (void) const |
| returns true if the message is valid More...
|
|
bool | get_chunks_supported (void) const |
| returns true if chunked transfer encodings are supported More...
|
|
boost::asio::ip::address & | get_remote_ip (void) |
| returns IP address of the remote endpoint More...
|
|
boost::uint16_t | get_version_major (void) const |
| returns the major HTTP version number More...
|
|
boost::uint16_t | get_version_minor (void) const |
| returns the minor HTTP version number More...
|
|
std::string | get_version_string (void) const |
| returns a string representation of the HTTP version (i.e. "HTTP/1.1") More...
|
|
size_t | get_content_length (void) const |
| returns the length of the payload content (in bytes) More...
|
|
bool | is_chunked (void) const |
| returns true if the message content is chunked More...
|
|
bool | is_content_buffer_allocated () const |
| returns true if buffer for content is allocated More...
|
|
std::size_t | get_content_buffer_size () const |
| returns size of allocated buffer More...
|
|
char * | get_content (void) |
| returns a pointer to the payload content, or empty string if there is none More...
|
|
const char * | get_content (void) const |
| returns a const pointer to the payload content, or empty string if there is none More...
|
|
chunk_cache_t & | get_chunk_cache (void) |
| returns a reference to the chunk cache More...
|
|
const std::string & | get_header (const std::string &key) const |
| returns a value for the header if any are defined; otherwise, an empty string More...
|
|
ihash_multimap & | get_headers (void) |
| returns a reference to the HTTP headers More...
|
|
bool | has_header (const std::string &key) const |
| returns true if at least one value for the header is defined More...
|
|
const std::string & | get_cookie (const std::string &key) const |
|
ihash_multimap & | get_cookies (void) |
| returns the cookie parameters More...
|
|
bool | has_cookie (const std::string &key) const |
|
void | add_cookie (const std::string &key, const std::string &value) |
|
void | change_cookie (const std::string &key, const std::string &value) |
|
void | delete_cookie (const std::string &key) |
|
const std::string & | get_first_line (void) const |
| returns a string containing the first line for the HTTP message More...
|
|
bool | has_missing_packets () const |
| true if there were missing packets More...
|
|
void | set_missing_packets (bool newVal) |
| set to true when missing packets detected More...
|
|
bool | has_data_after_missing_packets () const |
| true if more data seen after the missing packets More...
|
|
void | set_data_after_missing_packet (bool newVal) |
|
void | set_is_valid (bool b=true) |
| sets whether or not the message is valid More...
|
|
void | set_chunks_supported (bool b) |
| set to true if chunked transfer encodings are supported More...
|
|
void | set_remote_ip (const boost::asio::ip::address &ip) |
| sets IP address of the remote endpoint More...
|
|
void | set_version_major (const boost::uint16_t n) |
| sets the major HTTP version number More...
|
|
void | set_version_minor (const boost::uint16_t n) |
| sets the minor HTTP version number More...
|
|
void | set_content_length (size_t n) |
| sets the length of the payload content (in bytes) More...
|
|
void | set_do_not_send_content_length (void) |
| if called, the content-length will not be sent in the HTTP headers More...
|
|
data_status_t | get_status () const |
| return the data receival status More...
|
|
void | set_status (data_status_t newVal) |
|
void | update_content_length_using_header (void) |
| sets the length of the payload content using the Content-Length header More...
|
|
void | update_transfer_encoding_using_header (void) |
| sets the transfer coding using the Transfer-Encoding header More...
|
|
char * | create_content_buffer (void) |
|
void | set_content (const std::string &content) |
| resets payload content to match the value of a string More...
|
|
void | clear_content (void) |
| clears payload content buffer More...
|
|
void | set_content_type (const std::string &type) |
| sets the content type for the message payload More...
|
|
void | add_header (const std::string &key, const std::string &value) |
| adds a value for the HTTP header named key More...
|
|
void | change_header (const std::string &key, const std::string &value) |
| changes the value for the HTTP header named key More...
|
|
void | delete_header (const std::string &key) |
| removes all values for the HTTP header named key More...
|
|
bool | check_keep_alive (void) const |
| returns true if the HTTP connection may be kept alive More...
|
|
void | prepare_buffers_for_send (write_buffers_t &write_buffers, const bool keep_alive, const bool using_chunks) |
|
std::size_t | send (tcp::connection &tcp_conn, boost::system::error_code &ec, bool headers_only=false) |
|
std::size_t | receive (tcp::connection &tcp_conn, boost::system::error_code &ec, parser &http_parser) |
|
std::size_t | receive (tcp::connection &tcp_conn, boost::system::error_code &ec, bool headers_only=false, std::size_t max_content_length=static_cast< size_t >(-1)) |
|
std::size_t | write (std::ostream &out, boost::system::error_code &ec, bool headers_only=false) |
|
std::size_t | read (std::istream &in, boost::system::error_code &ec, parser &http_parser) |
|
std::size_t | read (std::istream &in, boost::system::error_code &ec, bool headers_only=false, std::size_t max_content_length=static_cast< size_t >(-1)) |
|
void | concatenate_chunks (void) |
|
virtual | ~types () |
| virtual destructor More...
|
|
|
enum | data_status_t { STATUS_NONE,
STATUS_TRUNCATED,
STATUS_PARTIAL,
STATUS_OK
} |
| defines message data integrity status codes More...
|
|
typedef std::vector
< boost::asio::const_buffer > | write_buffers_t |
| data type for I/O write buffers (these wrap existing data to be sent) More...
|
|
typedef std::vector< char > | chunk_cache_t |
| used to cache chunked data More...
|
|
static std::string | get_date_string (const time_t t) |
| converts time_t format into an HTTP-date string More...
|
|
static std::string | make_query_string (const ihash_multimap &query_params) |
| builds an HTTP query string from a collection of query parameters More...
|
|
static std::string | make_set_cookie_header (const std::string &name, const std::string &value, const std::string &path, const bool has_max_age=false, const unsigned long max_age=0) |
|
static const std::string | STRING_EMPTY |
|
static const std::string | STRING_CRLF |
|
static const std::string | STRING_HTTP_VERSION |
|
static const std::string | HEADER_NAME_VALUE_DELIMITER |
|
static const std::string | COOKIE_NAME_VALUE_DELIMITER |
|
static const std::string | HEADER_HOST |
|
static const std::string | HEADER_COOKIE |
|
static const std::string | HEADER_SET_COOKIE |
|
static const std::string | HEADER_CONNECTION |
|
static const std::string | HEADER_CONTENT_TYPE |
|
static const std::string | HEADER_CONTENT_LENGTH |
|
static const std::string | HEADER_CONTENT_LOCATION |
|
static const std::string | HEADER_CONTENT_ENCODING |
|
static const std::string | HEADER_CONTENT_DISPOSITION |
|
static const std::string | HEADER_LAST_MODIFIED |
|
static const std::string | HEADER_IF_MODIFIED_SINCE |
|
static const std::string | HEADER_TRANSFER_ENCODING |
|
static const std::string | HEADER_LOCATION |
|
static const std::string | HEADER_AUTHORIZATION |
|
static const std::string | HEADER_REFERER |
|
static const std::string | HEADER_USER_AGENT |
|
static const std::string | HEADER_X_FORWARDED_FOR |
|
static const std::string | HEADER_CLIENT_IP |
|
static const std::string | CONTENT_TYPE_HTML |
|
static const std::string | CONTENT_TYPE_TEXT |
|
static const std::string | CONTENT_TYPE_XML |
|
static const std::string | CONTENT_TYPE_URLENCODED |
|
static const std::string | CONTENT_TYPE_MULTIPART_FORM_DATA |
|
static const std::string | REQUEST_METHOD_HEAD |
|
static const std::string | REQUEST_METHOD_GET |
|
static const std::string | REQUEST_METHOD_PUT |
|
static const std::string | REQUEST_METHOD_POST |
|
static const std::string | REQUEST_METHOD_DELETE |
|
static const std::string | RESPONSE_MESSAGE_OK |
|
static const std::string | RESPONSE_MESSAGE_CREATED |
|
static const std::string | RESPONSE_MESSAGE_ACCEPTED |
|
static const std::string | RESPONSE_MESSAGE_NO_CONTENT |
|
static const std::string | RESPONSE_MESSAGE_FOUND |
|
static const std::string | RESPONSE_MESSAGE_UNAUTHORIZED |
|
static const std::string | RESPONSE_MESSAGE_FORBIDDEN |
|
static const std::string | RESPONSE_MESSAGE_NOT_FOUND |
|
static const std::string | RESPONSE_MESSAGE_METHOD_NOT_ALLOWED |
|
static const std::string | RESPONSE_MESSAGE_NOT_MODIFIED |
|
static const std::string | RESPONSE_MESSAGE_BAD_REQUEST |
|
static const std::string | RESPONSE_MESSAGE_SERVER_ERROR |
|
static const std::string | RESPONSE_MESSAGE_NOT_IMPLEMENTED |
|
static const std::string | RESPONSE_MESSAGE_CONTINUE |
|
static const unsigned int | RESPONSE_CODE_OK = 200 |
|
static const unsigned int | RESPONSE_CODE_CREATED = 201 |
|
static const unsigned int | RESPONSE_CODE_ACCEPTED = 202 |
|
static const unsigned int | RESPONSE_CODE_NO_CONTENT = 204 |
|
static const unsigned int | RESPONSE_CODE_FOUND = 302 |
|
static const unsigned int | RESPONSE_CODE_UNAUTHORIZED = 401 |
|
static const unsigned int | RESPONSE_CODE_FORBIDDEN = 403 |
|
static const unsigned int | RESPONSE_CODE_NOT_FOUND = 404 |
|
static const unsigned int | RESPONSE_CODE_METHOD_NOT_ALLOWED = 405 |
|
static const unsigned int | RESPONSE_CODE_NOT_MODIFIED = 304 |
|
static const unsigned int | RESPONSE_CODE_BAD_REQUEST = 400 |
|
static const unsigned int | RESPONSE_CODE_SERVER_ERROR = 500 |
|
static const unsigned int | RESPONSE_CODE_NOT_IMPLEMENTED = 501 |
|
static const unsigned int | RESPONSE_CODE_CONTINUE = 100 |
|
template<typename DictionaryType > |
static const std::string & | get_value (const DictionaryType &dict, const std::string &key) |
|
template<typename DictionaryType > |
static void | change_value (DictionaryType &dict, const std::string &key, const std::string &value) |
|
template<typename DictionaryType > |
static void | delete_value (DictionaryType &dict, const std::string &key) |
|
std::string | m_first_line |
|
request: container for HTTP request information