|
Classes |
struct | hpair |
struct | _content_type |
struct | part_t |
struct | attachments_t |
Defines |
#define | HEADER_CONTENT_ID "Content-Id" |
#define | HEADER_CONTENT_TRANSFER_ENCODING "Content-Transfer-Encoding" |
#define | TRANSFER_ENCODING_CHUNKED "chunked" |
#define | HEADER_CACHE_CONTROL "Cache-Control" |
#define | HEADER_CONNECTION "Connection" |
#define | HEADER_DATE "Date" |
#define | HEADER_PRAGMA "Pragma" |
#define | HEADER_TRAILER "Trailer" |
#define | HEADER_TRANSFER_ENCODING "Transfer-Encoding" |
#define | HEADER_UPGRADE "Upgrade" |
#define | HEADER_VIA "Via" |
#define | HEADER_WARNING "Warning" |
#define | HEADER_ALLOW "Allow" |
#define | HEADER_CONTENT_ENCODING "Content-Encoding" |
#define | HEADER_CONTENT_LANGUAGE "Content-Language" |
#define | HEADER_CONTENT_LENGTH "Content-Length" |
#define | HEADER_CONTENT_LOCATION "Content-Location" |
#define | HEADER_CONTENT_MD5 "Content-MD5" |
#define | HEADER_CONTENT_RANGE "Content-Range" |
#define | HEADER_CONTENT_TYPE "Content-Type" |
#define | HEADER_EXPIRES "Expires" |
#define | HEADER_LAST_MODIFIED "Last-Modified" |
#define | NHTTP_ARG_CERT "-NHTTPcert" |
#define | NHTTP_ARG_CERTPASS "-NHTTPcertpass" |
#define | NHTTP_ARG_CA "-NHTTPCA" |
#define | SAVE_STR(str) ((str==0)?("(null)"):(str)) |
#define | BOUNDARY_LENGTH 18 |
#define | MAX_HEADER_SIZE 4256 |
#define | MAX_FILE_BUFFER_SIZE 4256 |
#define | REQUEST_MAX_PATH_SIZE 1024 |
#define | RESPONSE_MAX_DESC_SIZE 1024 |
#define | HTTP_STATUS_100_REASON_PHRASE "Continue" |
#define | HTTP_STATUS_101_REASON_PHRASE "Switching Protocols" |
#define | HTTP_STATUS_200_REASON_PHRASE "OK" |
#define | HTTP_STATUS_201_REASON_PHRASE "Created" |
#define | HTTP_STATUS_202_REASON_PHRASE "Accepted" |
#define | HTTP_STATUS_203_REASON_PHRASE "Non-Authoritative Information" |
#define | HTTP_STATUS_204_REASON_PHRASE "No Content" |
#define | HTTP_STATUS_205_REASON_PHRASE "Reset Content" |
#define | HTTP_STATUS_206_REASON_PHRASE "Partial Content" |
#define | HTTP_STATUS_300_REASON_PHRASE "Multiple Choices" |
#define | HTTP_STATUS_301_REASON_PHRASE "Moved Permanently" |
#define | HTTP_STATUS_302_REASON_PHRASE "Found" |
#define | HTTP_STATUS_303_REASON_PHRASE "See Other" |
#define | HTTP_STATUS_304_REASON_PHRASE "Not Modified" |
#define | HTTP_STATUS_305_REASON_PHRASE "Use Proxy" |
#define | HTTP_STATUS_307_REASON_PHRASE "Temporary Redirect" |
#define | HTTP_STATUS_400_REASON_PHRASE "Bad Request" |
#define | HTTP_STATUS_401_REASON_PHRASE "Unauthorized" |
#define | HTTP_STATUS_402_REASON_PHRASE "Payment Required" |
#define | HTTP_STATUS_403_REASON_PHRASE "Forbidden" |
#define | HTTP_STATUS_404_REASON_PHRASE "Not Found" |
#define | HTTP_STATUS_405_REASON_PHRASE "Method Not Allowed" |
#define | HTTP_STATUS_406_REASON_PHRASE "Not Acceptable" |
#define | HTTP_STATUS_407_REASON_PHRASE "Proxy Authentication Required" |
#define | HTTP_STATUS_408_REASON_PHRASE "Request Time-out" |
#define | HTTP_STATUS_409_REASON_PHRASE "Conflict" |
#define | HTTP_STATUS_410_REASON_PHRASE "Gone" |
#define | HTTP_STATUS_411_REASON_PHRASE "Length Required" |
#define | HTTP_STATUS_412_REASON_PHRASE "Precondition Failed" |
#define | HTTP_STATUS_413_REASON_PHRASE "Request Entity Too Large" |
#define | HTTP_STATUS_414_REASON_PHRASE "Request-URI Too Large" |
#define | HTTP_STATUS_415_REASON_PHRASE "Unsupported Media Type" |
#define | HTTP_STATUS_416_REASON_PHRASE "Requested range not satisfiable" |
#define | HTTP_STATUS_417_REASON_PHRASE "Expectation Failed" |
#define | HTTP_STATUS_500_REASON_PHRASE "Internal Server Error" |
#define | HTTP_STATUS_501_REASON_PHRASE "Not Implemented" |
#define | HTTP_STATUS_502_REASON_PHRASE "Bad Gateway" |
#define | HTTP_STATUS_503_REASON_PHRASE "Service Unavailable" |
#define | HTTP_STATUS_504_REASON_PHRASE "Gateway Time-out" |
#define | HTTP_STATUS_505_REASON_PHRASE "HTTP Version not supported" |
Typedefs |
typedef hpair | hpair_t |
typedef enum _http_version | http_version_t |
typedef _content_type | content_type_t |
typedef enum _hreq_method | hreq_method_t |
Enumerations |
enum | _http_version { HTTP_1_0,
HTTP_1_1
} |
enum | _hreq_method {
HTTP_REQUEST_POST,
HTTP_REQUEST_GET,
HTTP_REQUEST_OPTIONS,
HTTP_REQUEST_HEAD,
HTTP_REQUEST_PUT,
HTTP_REQUEST_DELETE,
HTTP_REQUEST_TRACE,
HTTP_REQUEST_CONNECT,
HTTP_REQUEST_UNKOWN
} |
Functions |
hpair_t * | hpairnode_new (const char *key, const char *value, hpair_t *next) |
hpair_t * | hpairnode_parse (const char *str, const char *delim, hpair_t *next) |
void | hpairnode_free (hpair_t *pair) |
void | hpairnode_free_deep (hpair_t *pair) |
char * | hpairnode_get (hpair_t *pair, const char *key) |
char * | hpairnode_get_ignore_case (hpair_t *pair, const char *key) |
hpair_t * | hpairnode_copy (const hpair_t *src) |
hpair_t * | hpairnode_copy_deep (const hpair_t *src) |
void | hpairnode_dump_deep (const hpair_t *pairs) |
void | hpairnode_dump (const hpair_t *pair) |
content_type_t * | content_type_new (const char *content_type_str) |
void | content_type_free (content_type_t *ct) |
part_t * | part_new (const char *id, const char *filename, const char *content_type, const char *transfer_encoding, struct part_t *next) |
void | part_free (struct part_t *part) |
attachments_t * | attachments_new (void) |
void | attachments_free (struct attachments_t *message) |
void | attachments_add_part (struct attachments_t *attachments, struct part_t *part) |
|
The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded, additional methods cannot be assumed to share the same semantics for separately extended clients and servers.
The Host request-header field MUST accompany all HTTP/1.1 requests.
- See also:
- HTTP_HEADER_HOST
- Enumerator:
-
HTTP_REQUEST_POST |
The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions:
- Annotation of existing resources;
- Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
- Providing a block of data, such as the result of submitting a form, to a data-handling process;
- Extending a database through an append operation.
|
HTTP_REQUEST_GET |
The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process. |
HTTP_REQUEST_OPTIONS |
The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. |
HTTP_REQUEST_HEAD |
The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request. This method can be used for obtaining metainformation about the entity implied by the request without transferring the entity-body itself. This method is often used for testing hypertext links for validity, accessibility, and recent modification. |
HTTP_REQUEST_PUT |
The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server. If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new resource by the requesting user agent, the origin server can create the resource with that URI. If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to indicate successful completion of the request. If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be given that reflects the nature of the problem. The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not understand or implement and MUST return a 501 (Not Implemented) response in such cases. |
HTTP_REQUEST_DELETE |
The DELETE method requests that the origin server delete the resource identified by the Request-URI. This method MAY be overridden by human intervention (or other means) on the origin server. The client cannot be guaranteed that the operation has been carried out, even if the status code returned from the origin server indicates that the action has been completed successfully. However, the server SHOULD NOT indicate success unless, at the time the response is given, it intends to delete the resource or move it to an inaccessible location. |
HTTP_REQUEST_TRACE |
The TRACE method is used to invoke a remote, application-layer loop-back of the request message. The final recipient of the request SHOULD reflect the message received back to the client as the entity-body of a 200 (OK) response. The final recipient is either the origin server or the first proxy or gateway to receive a Max-Forwards value of zero (0) in the request (see section 14.31). A TRACE request MUST NOT include an entity. |
HTTP_REQUEST_CONNECT |
This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel (e.g. SSL tunneling [44]). |
HTTP_REQUEST_UNKOWN |
|
|