如何定义一个HTTP Request呢?在RFC2616的第五章定义了HTTP请求的格式。请参考官网。
RFC2616对请求的定义摘要:
请求的定义:
Request = Request-Line
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]
请求行的定义:
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
请求方法的种类:
Method = "OPTIONS"
| "GET"
| "HEAD"
| "POST"
| "PUT"
| "DELETE"
| "TRACE"
| "CONNECT"
| extension-method
extension-method = token
如何定义URI:
Request-URI = "*" | absoluteURI | abs_path | authority
请求头字段列表:
request-header = Accept
| Accept-Charset
| Accept-Encoding
| Accept-Language
| Authorization
| Expect
| From
| Host
| If-Match
| If-Modified-Since
| If-None-Match
| If-Range
| If-Unmodified-Since
| Max-Forwards
| Proxy-Authorization
| Range
| Referer
| TE
| User-Agent