Files
boost_beast/include/beast/http/verb.hpp

147 lines
3.4 KiB
C++
Raw Normal View History

//
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef BEAST_HTTP_VERB_HPP
#define BEAST_HTTP_VERB_HPP
#include <beast/config.hpp>
#include <beast/core/string_view.hpp>
#include <boost/optional.hpp>
#include <ostream>
namespace beast {
namespace http {
/** HTTP request method verbs
Each verb corresponds to a particular method string
used in HTTP request messages.
*/
enum class verb
{
/// The DELETE method deletes the specified resource
delete_ = 1,
/** The GET method requests a representation of the specified resource.
Requests using GET should only retrieve data and should have no other effect.
*/
get,
/** The HEAD method asks for a response identical to that of a GET request, but without the response body.
This is useful for retrieving meta-information written in response
headers, without having to transport the entire content.
*/
head,
/** The POST method requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI.
The data POSTed might be, for example, an annotation for existing
resources; a message for a bulletin board, newsgroup, mailing list,
or comment thread; a block of data that is the result of submitting
a web form to a data-handling process; or an item to add to a database
*/
post,
/** The PUT method requests that the enclosed entity be stored under the supplied URI.
If the URI refers to an already existing resource, it is modified;
if the URI does not point to an existing resource, then the server
can create the resource with that URI.
*/
put,
/** The CONNECT method converts the request connection to a transparent TCP/IP tunnel.
This is usually to facilitate SSL-encrypted communication (HTTPS)
through an unencrypted HTTP proxy.
*/
connect,
/** The OPTIONS method returns the HTTP methods that the server supports for the specified URL.
This can be used to check the functionality of a web server by requesting
'*' instead of a specific resource.
*/
options,
/** The TRACE method echoes the received request so that a client can see what (if any) changes or additions have been made by intermediate servers.
*/
trace,
// WebDAV
copy,
lock,
mkcol,
move,
propfind,
proppatch,
search,
unlock,
bind,
rebind,
unbind,
acl,
// subversion
report,
mkactivity,
checkout,
merge,
// upnp
msearch,
notify,
subscribe,
unsubscribe,
// RFC-5789
patch,
purge,
// CalDAV
mkcalendar,
// RFC-2068, section 19.6.1.2
link,
unlink
};
/** Converts a string to the request method verb.
If the string does not match a known request method,
`boost::none` is returned.
*/
boost::optional<verb>
string_to_verb(string_view s);
/// Returns the text representation of a request method verb.
string_view
to_string(verb v);
/// Write the text for a request method verb to an output stream.
inline
std::ostream&
operator<<(std::ostream& os, verb v)
{
return os << to_string(v);
}
} // http
} // beast
#include <beast/http/impl/verb.ipp>
#endif