Topics
:Overview
Enumerations
Data Structures
Functions
HTTP client/server constants and data structures shared between HTTP client and server applications.
Enumerations
enum { // HTTP methods enumeration
gxHTTP_UNKNOWN = 0, // Used for internal processing
// HTTP/1.0 Client/Server Methods
gxsHTTP_GET, // Retrieve whatever data is identified by the URI
gxsHTTP_HEAD, // Returns only HTTP headers and no document body
gxsHTTP_PUT, // Store the data under the supplied URL
gxsHTTP_DELETE, // Delete information corresponding to the given URL
gxsHTTP_POST, // Creates object linked to the specified object
gxsHTTP_LINK, // Links an existing object to the specified object
gxsHTTP_UNLINK // Removes link information from an object
};
enum { // HTTP status codes enumeration
gxsHTTP_STATUS_UNKNOWN = 0, // Used for internal processing
// HTTP/1.0 Status Codes obtained from:
// http://sifu.rindu.net/course/one/freesoft/CIE/RFC/1945/1.htm
// 1xx: Informational - Not used, but reserved for future use.
// 2xx: Success - The action was successfully received, understood,
// and accepted.
gxsHTTP_STATUS_OK = 200, // The request has succeeded.
gxsHTTP_STATUS_CREATED = 201, // The request has been fulfilled
// and resulted in a new resource
// being created (Used with POST).
gxsHTTP_STATUS_ACCEPTED = 202, // The request has been accepted for
// processing, but the processing
// has not been completed.
gxsHTTP_STATUS_NO_CONTENT = 204, // The server has fulfilled the
// request but there is no new
// information to send back.
// 3xx: Redirection - Further action must be taken in order to
// complete the request.
gxsHTTP_STATUS_MULTIPLE_CHOICES = 300, // The requested resource is
// available at one or more
// locations.
gxsHTTP_STATUS_MOVED_PERMANENTLY = 301, // The requested resource has
// been assigned a new
// permanent URL and
// any future references to
// this resource should
// be done using that URL.
gxsHTTP_STATUS_MOVED_TEMPORARILY = 302, // The requested resource
// resides temporarily under
// a different URL.
gxsHTTP_STATUS_NOT_MODIFIED = 304, // Returned if the client has
// performed a conditional
// GET request and access is
// allowed, but the document
// has not been modified
// since the date and time
// specified in the
// If-Modified-Since
// field.
// 4xx: Client Error - The request contains bad syntax or cannot be
// fulfilled.
gxsHTTP_STATUS_BAD_REQUEST = 400, // The request could not be
// understood by the server
// due to malformed syntax.
gxsHTTP_STATUS_UNAUTHORIZED = 401, // The request requires user
// authentication. The
// response must include
// a WWW-Authenticate header
// field containing a
// challenge applicable
// to the requested
// resource.
gxsHTTP_STATUS_FORBIDDEN = 403, // The server understood the
// request, but is refusing
// to fulfill it.
// Authorization will not
// help and the request
// should not be repeated.
gxsHTTP_STATUS_NOT_FOUND = 404, // The server has not found
// anything matching the
// Request-URI.
// 5xx: Server Error - The server failed to fulfill an apparently
// valid request.
gxsHTTP_STATUS_INTERNAL = 500, // The server encountered an
// unexpected condition which
// prevented it from
// fulfilling the request.
gxsHTTP_STATUS_NOT_IMPLEMENTED = 501, // The server does not
// support the
// functionality required to
// fulfill the request.
gxsHTTP_STATUS_BAD_GATEWAY = 502, // The server, while acting
// as a gateway or proxy,
// received an invalid
// response from the
// upstream server it
// accessed in attempting
// to fulfill the request.
gxsHTTP_STATUS_UNAVAILABLE = 503 // The server is currently
// unable to handle the
// request due to a
// temporary overloading or
// maintenance of the server.
};
struct gxsNetscapeCookie
{
// Cookie information
gxString expires;
gxString domain;
gxString path;
gxString host;
gxString name;
gxString value;
int secure;
};
struct gxsHTTPHeader {
// HTTP client/server header information
gxString http_header; // Unchanged or complete HTTP header
gxString authentication_scheme; // Authentication scheme used
gxString realm; // Authentication realm
gxString current_server; // Server type
gxString location; // Document location
gxString http_last_modified; // Date document was last modified
gxString date; // Today's date
gxString http_expires; // Date this document expires
gxString file_extension; // Document's file extension
gxString content_type; // Content type
gxString mime_type; // MIME type
gxString etag; // Associated Entity tag
gxString pragma; // Implementation specific
gxString cache_control; // Cache control parameters
gxString content_encoding; // Content encoding used
float http_version; // HTTP version
int http_status; // Document/Client/Server status
int authentication_needed; // True if authentication is needed
int not_found; // True if the document is not found
int keep_alive; // True if connection is persistent
int timeout; // Time out value
int max_conns; // Maximum number of connections
int length; // Document length
int no_cache; // True if not using cached copies
int accept_ranges; // True if ranges are accepted
// Netscape cookie infomation
gxString auth_cookie; // Authentication cookie
int use_cookies; // True if using cookies
gxQueue<gxsNetscapeCookie> netscape_cookies; // List of cookies
};
const char *gxsHTTPMethodMessage(int method)
- Standalone function that returns a null terminated string corresponding to the specified connection method. The "method" variable must correspond to the one of the integer constants defined in the HTTP methods enumeration.const char *gxsHTTPStatusCodeMessage(int status)
- Standalone function that returns a null terminated string corresponding to the specified HTTP status message. The "status" variable must correspond to the one of the integer constants defined in the HTTP status code enumeration.|
End Of Document |