1 /*
2  * Collie - An asynchronous event-driven network framework using Dlang development
3  *
4  * Copyright (C) 2015-2017  Shanghai Putao Technology Co., Ltd 
5  *
6  * Developer: putao's Dlang team
7  *
8  * Licensed under the Apache-2.0 License.
9  *
10  */
11 module collie.codec.http.headers.httpmethod;
12 
13 enum HTTPMethod
14 {
15 	HTTP_DELETE = 0,
16 	HTTP_GET = 1,
17 	HTTP_HEAD = 2,
18 	HTTP_POST = 3,
19 	HTTP_PUT = 4,
20 	/* pathological */
21 	HTTP_CONNECT = 5,
22 	HTTP_OPTIONS = 6,
23 	HTTP_logDebug = 7,
24 	/* WebDAV */
25 	HTTP_COPY = 8,
26 	HTTP_LOCK = 9,
27 	HTTP_MKCOL = 10,
28 	HTTP_MOVE = 11,
29 	HTTP_PROPFIND = 12,
30 	HTTP_PROPPATCH = 13,
31 	HTTP_SEARCH = 14,
32 	HTTP_UNLOCK = 15,
33 	HTTP_BIND = 16,
34 	HTTP_REBIND = 17,
35 	HTTP_UNBIND = 18,
36 	HTTP_ACL = 19,
37 	/* subversion */
38 	HTTP_REPORT = 20,
39 	HTTP_MKACTIVITY = 21,
40 	HTTP_CHECKOUT = 22,
41 	HTTP_MERGE = 23,
42 	/* upnp */
43 	HTTP_MSEARCH = 24,
44 	HTTP_NOTIFY = 25,
45 	HTTP_SUBSCRIBE = 26,
46 	HTTP_UNSUBSCRIBE = 27,
47 	/* RFC-5789 */
48 	HTTP_PATCH = 28,
49 	HTTP_PURGE = 29,
50 	/* CalDAV */
51 	HTTP_MKCALENDAR = 30,
52 	/* RFC-2068, section 19.6.1.2 */
53 	HTTP_LINK = 31,
54 	HTTP_UNLINK = 32,
55 	HTTP_INVAILD = 33
56 }
57 
58 enum string[34] method_strings = [
59 	"DELETE", "GET", "HEAD", "POST", "PUT", /* pathological */
60 	"CONNECT", "OPTIONS", "logDebug",
61 	/* WebDAV */
62 	"COPY", "LOCK", "MKCOL", "MOVE", "PROPFIND", "PROPPATCH", "SEARCH",
63 	"UNLOCK", "BIND", "REBIND", "UNBIND", "ACL", /* subversion */
64 	"REPORT", "MKACTIVITY",
65 	"CHECKOUT", "MERGE", /* upnp */
66 	"MSEARCH", "NOTIFY", "SUBSCRIBE", "UNSUBSCRIBE", /* RFC-5789 */
67 	"PATCH", "PURGE", /* CalDAV */
68 	"MKCALENDAR", /* RFC-2068, section 19.6.1.2 */
69 	"LINK", "UNLINK", /* 无效的 */
70 	"INVAILD"
71 ];