CoreComponents 3.0.0
A Modern C++ Toolkit
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages Modules
HTTP Protocol

HTTP protocol building blocks More...

Collaboration diagram for HTTP Protocol:

Classes

class  HttpChunkedSink
 HTTP chunked transfer sink. More...
 
class  HttpError
 HTTP request could not be successfully processed. More...
 
class  HttpMessage
 HTTP message. More...
 
class  HttpMessageGenerator
 HTTP message generator. More...
 
class  HttpMessageParser
 HTTP message parser. More...
 
class  HttpRequest
 HTTP request message. More...
 
class  HttpRequestGenerator
 HTTP request generator. More...
 
class  HttpRequestParser
 HTTP server-side message parser. More...
 
class  HttpResponse
 HTTP response message. More...
 
class  HttpResponseGenerator
 HTTP response generator. More...
 
class  HttpResponseParser
 HTTP client-side message parser. More...
 
class  HttpCloseRequest
 A request to close the HTTP pipeline has been received. More...
 
class  HttpStream
 HTTP message stream (pipelining and chunked I/O) More...
 

Enumerations

enum class  HttpStatus : int {
  Continue = 100 , SwitchingProtocols = 101 , OK = 200 , Created = 201 ,
  Accepted = 202 , NonAuthoritativeInformation = 203 , NoContent = 204 , ResetContent = 205 ,
  PartialContent = 206 , MultipleChoices = 300 , MovedPermanently = 301 , MovedTemporarily = 302 ,
  SeeOther = 303 , NotModified = 304 , UseProxy = 305 , TemporaryRedirect = 307 ,
  BadRequest = 400 , Unauthorized = 401 , PaymentRequired = 402 , Forbidden = 403 ,
  NotFound = 404 , MethodNotAllowed = 405 , NotAcceptable = 406 , ProxyAuthenticationRequired = 407 ,
  RequestTimeout = 408 , Conflict = 409 , Gone = 410 , LengthRequired = 411 ,
  PreconditionFailed = 412 , PayloadTooLarge = 413 , RequestUriTooLong = 414 , UnsupportedMediaType = 415 ,
  InternalServerError = 500 , NotImplemented = 501 , BadGateway = 502 , ServiceUnavailable = 503 ,
  GatewayTimeout = 504 , UnsupportedVersion = 505
}
 HTTP status code. More...
 

Functions

String httpDateToString (const Date &date)
 Stringify date for use in HTTP header fields.
 
Date httpDateFromString (const String &text, Out< bool > ok=None{})
 Read the textual representation of a HTTP date from text (e.g.
 
int operator+ (HttpStatus status)
 Unary plus operator: cast HTTP status to integer.
 
bool httpSuccess (HttpStatus status)
 Check if the HTTP status code indicates that the request was processed successfully by the server.
 
bool httpRedirection (HttpStatus status)
 Check if the HTTP status code indicates that further client actions are necessary to fullfil the request.
 
bool httpError (HttpStatus status)
 Check if the HTTP status code indicates an error condition.
 
const char * httpReasonPhrase (HttpStatus status)
 Translate a HTTP status code into a human-readable form.
 
String str (HttpStatus status)
 Stringify a HTTP status code.
 

Detailed Description

HTTP protocol building blocks


Class Documentation

◆ cc::HttpCloseRequest

class cc::HttpCloseRequest

A request to close the HTTP pipeline has been received.

Enumeration Type Documentation

◆ HttpStatus

enum class HttpStatus : int
strong

HTTP status code.

Enumerator
Continue 

Continue with the reminder of a partically received request.

SwitchingProtocols 

Server is about to switch to request protocol.

OK 

Request has succeeded.

Created 

New resources was successfully created.

Accepted 

Request as been accepted and processing is in progress.

NonAuthoritativeInformation 

Same as HttpStatus::OK, but delivered meta-information may differ from the origin server.

NoContent 

Request succeeded: new meta-information might be contained in the response, but there won't be any content.

ResetContent 

Request succeeded, please reset the user agent's content (e.g. an input form)

PartialContent 

Successful response to a partial GET request.

MultipleChoices 

A list of resource choices is delivered in the content (e.g. as HTML links)

MovedPermanently 

The requested resources as moved permanently to a new location.

MovedTemporarily 

The requested resources as moved temporarily to a new location (see Location field, might not stay on method)

SeeOther 

The requested resources as moved temporarily to a new location (see Location field, use GET method to retrieve)

NotModified 

Resource has not changed since last cached GET request.

UseProxy 

Requested resource is only available from proxy server specified in the Location field.

TemporaryRedirect 

The requested resources as moved temporarily to a new location (see Location field, stay on method)

BadRequest 

The request was syntactically maleformed.

Unauthorized 

Missing user authentication.

PaymentRequired 

No free beer.

Forbidden 

Insufficient permissions to execute the request.

NotFound 

Requested resource could not be found.

MethodNotAllowed 

Request method is not allowed on the indicated resource.

NotAcceptable 

Server-driven content negotiation failed.

ProxyAuthenticationRequired 

Missing user authentication with a proxy server.

RequestTimeout 

Connection has timed out.

Conflict 

A user resolveable resource conflict occured.

Gone 

The requested resource is marked as permanently deleted.

LengthRequired 

Content-Length header field was missing.

PreconditionFailed 

Server cannot fullfil the client indicated preconditions.

PayloadTooLarge 

Message payload exceeded allowed upper limit.

RequestUriTooLong 

The request URI exceeds the servers acceptable maximum URI length.

UnsupportedMediaType 

Requested media type is not available on the server.

InternalServerError 

Internal server malefunction.

NotImplemented 

HTTP protocol feature not implemented.

BadGateway 

Response by an HTTP gateway which itself got an error requesting the resource from another server.

ServiceUnavailable 

The server is temporarily unavailable due to technical difficulties (e.g. overloading)

GatewayTimeout 

The server timed out on a forwarded request.

UnsupportedVersion 

Request protocol version is not supported.

Function Documentation

◆ httpDateToString()

String httpDateToString ( const Date & date)

Stringify date for use in HTTP header fields.

◆ httpDateFromString()

Date httpDateFromString ( const String & text,
Out< bool > ok = None{} )

Read the textual representation of a HTTP date from text (e.g.

"Tue, 10 Sep 2013 11:01:10 GMT")

◆ operator+()

int operator+ ( HttpStatus status)

Unary plus operator: cast HTTP status to integer.

◆ httpSuccess()

bool httpSuccess ( HttpStatus status)

Check if the HTTP status code indicates that the request was processed successfully by the server.

◆ httpRedirection()

bool httpRedirection ( HttpStatus status)

Check if the HTTP status code indicates that further client actions are necessary to fullfil the request.

◆ httpError()

bool httpError ( HttpStatus status)

Check if the HTTP status code indicates an error condition.

◆ httpReasonPhrase()

const char * httpReasonPhrase ( HttpStatus status)

Translate a HTTP status code into a human-readable form.

◆ str()

String str ( HttpStatus status)

Stringify a HTTP status code.