-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCHttpRequest.h
More file actions
80 lines (70 loc) · 3.15 KB
/
CHttpRequest.h
File metadata and controls
80 lines (70 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
// CHttpRequest.h
// TSHttpServer
//
// Created by zhaoxy on 14-4-23.
// Copyright (c) 2014年 tsinghua. All rights reserved.
//
#ifndef __TSHttpServer__CHttpRequest__
#define __TSHttpServer__CHttpRequest__
#include <iostream>
#include <sstream>
#include <map>
//http method
#define TS_HTTP_METHOD_CONNECT_S "CONNECT"
#define TS_HTTP_METHOD_DELETE_S "DELETE"
#define TS_HTTP_METHOD_GET_S "GET"
#define TS_HTTP_METHOD_HEAD_S "HEAD"
#define TS_HTTP_METHOD_OPTIONS_S "OPTIONS"
#define TS_HTTP_METHOD_POST_S "POST"
#define TS_HTTP_METHOD_PUT_S "PUT"
#define TS_HTTP_METHOD_TRACE_S "TRACE"
//http header
#define TS_HTTP_HEADER_USER_AGENT "User-Agent:"
#define TS_HTTP_HEADER_ACCEPT "Accept:"
#define TS_HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language:"
#define TS_HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding:"
#define TS_HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset:"
#define TS_HTTP_HEADER_PROXY_CONNECTION "Proxy-Connection:"
#define TS_HTTP_HEADER_CONNECTION "Connection:"
#define TS_HTTP_HEADER_COOKIE "Cookie:"
#define TS_HTTP_HEADER_HOST "Host:"
#define TS_HTTP_HEADER_CACHE_CONTROL "Cache-Control:"
#define TS_HTTP_HEADER_CONTENT_TYPE "Content-Type:"
#define TS_HTTP_HEADER_CONTENT_LENGTH "Content-Length:"
#define TS_HTTP_HEADER_CONTENT_ENCODING "Content-Encoding:"
#define TS_HTTP_HEADER_SERVER "Server:"
#define TS_HTTP_HEADER_DATE "Date:"
#define TS_HTTP_HEADER_RANGE "Range:"
#define TS_HTTP_HEADER_ETAG "Etag:"
#define TS_HTTP_HEADER_EXPIRES "Expires:"
#define TS_HTTP_HEADER_REFERER "Referer:"
#define TS_HTTP_HEADER_LAST_MODIFIED "Last-Modified:"
#define TS_HTTP_HEADER_IF_MOD_SINCE "If-Modified-Since:"
#define TS_HTTP_HEADER_IF_NONE_MATCH "If-None-Match:"
#define TS_HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges:"
#define TS_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding:"
#define TS_HTTP_HEADER_AUTHORIZATION "Authorization:"
class CHttpRequest {
public:
std::map<std::string, void(CHttpRequest::*)(char*)> fieldMap;
std::string method;
std::string path;
std::string version;
std::string connection;
std::string authorize;
std::string modifiedTime;
long fileStart;
long fileEnd;
long contentLength;
CHttpRequest(int);
void handleRequest(char *header);
private:
int connFd;
void handleConnection(char *);
void handleAuthorization(char *);
void handleRange(char *);
void handleIfModSince(char *);
void handleContentLength(char *);
};
#endif /* defined(__TSHttpServer__CHttpRequest__) */