Method SP Request-URI SP HTTP-Version CRLF
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]
来源: HTTP请求parse流程、RequestLineParser、HttpQueryParameterParser
状态码
这个东西,其实看看表对应一下就可以了,因为这个是全世界大家一起遵守的。
但是 头部
这个东西,就不是那么回事了,你可以选择性得去支持一些头部,因为 HTTP
允许你定义一个只有你自己的服务端才会解析的 头部。
上面请求体结构中 general-header
是大多数情况下都是比较常见的、大家都遵守的一些头部信息。而 request-header
、entity-header
这两部分就属于比较自由的地方了,你可以去解析并执行相应的处理,也可以忽略它。
具体到【服务端产出了什么样的 response
应该对应哪个 状态码】、【客户端传输了什么 header
要求服务端做什么事】、【服务端传输了什么header
要求客户端做什么事】这三个问题,常见的情况都可以在《HTTP权威指南》的附录B、附录C找到。
原答案:
强烈推荐 《HTTP 权威指南》 一书。