本人是个PHPer, 工作几年了, HTTP这块一直是个过不去的坎儿, 像是 那一大堆状态码,一大堆的首部字段 等等很多细节, 本人完全不知道怎么开始, 一直想研究如何使用HTTP协议实现自己的HttpResponse,HttpRequest类?
可看了Symfony等一些框架的源码, 发现很细, 每个状态码, 方法都有纳入, 但我怎么才能知道每个状态码都是具体什么意思? 总感觉哪怕有一个状态码不知道是什么准确意思也过不了自己这关,况且面试也老问,(但好像看了HTTP权威,感觉书上也说的稀里糊涂), symfony也不会就那么稀里糊涂的纳入代码中吧, 肯定每个都有其具体用途的
求大家给指点该怎么去学这些东西
被踩了,才发现题主已经提到了这本书。
题主主要是想了解怎么自己写
Request/Response
这些东西的话,其实主要就是在解析下面这个东西:状态码
这个东西,其实看看表对应一下就可以了,因为这个是全世界大家一起遵守的。但是
头部
这个东西,就不是那么回事了,你可以选择性得去支持一些头部,因为HTTP
允许你定义一个只有你自己的服务端才会解析的 头部。上面请求体结构中
general-header
是大多数情况下都是比较常见的、大家都遵守的一些头部信息。而request-header
、entity-header
这两部分就属于比较自由的地方了,你可以去解析并执行相应的处理,也可以忽略它。具体到【服务端产出了什么样的
response
应该对应哪个 状态码】、【客户端传输了什么header
要求服务端做什么事】、【服务端传输了什么header
要求客户端做什么事】这三个问题,常见的情况都可以在《HTTP权威指南》的附录B、附录C找到。原答案:
强烈推荐 《HTTP 权威指南》 一书。