<code class="language-text">GET /question/22477602 HTTP/1.1
</code>
个人理解为附加信息。比如 UA,没有这个应用也能跑,但是有了这个服务端就能根据 UA 判断客户端的类型来更好的响应客户端请求了;比如 Host,没有虚拟主机的时候,不要也是可以的,有了以后就能一个 Web 服务器跑多个 Web 应用了;还有些自定义的 HTTP 头信息,用来实现业务功能,比如 RESTful API 设计时,有些人喜欢把版本信息放 HTTP 头中去。
快递时填的单子。
如里面是什么,有多重。
食品包装盒上的 “配料表” 。
Header可以看作给服务器或客户端的
附言。
例如,当客户端向服务器发送一个HTTP请求时,请求一般包含了请求行(Request Line)、头(Header)和体(Body)。请求行包含了请求方法、资源路径和协议版本。请求体不是必须存在的,它包含了客户端发送给服务器的数据。请求头为服务器处理请求提供了额外的信息,例如客户端使用的语言和字符集等。当然如果没有请求头,服务器在大多数情况下也能够很好地处理请求,返回你所期望的结果。所以,请求头是客户端给服务器的附言,帮助服务器更好地处理请求。
理解起来其实很简单,我觉得“配料表”那个比喻相对恰当,我可以补充一下。
HTTP本身就是一个协议,协议的目的就是为了双方(服务器和客户端)能够相互看懂,相互认知。
现在把网络传输的HTTP包比作“食品”,厂家有义务告知消费者这个食品究竟是什么,有没有QS质量认证,有没有添加什么防腐剂,是不是转基因blur blur...当然这个厂家不能随便乱写,必须按照一定的格式规范来写,这样的格式在互联网中就叫做
“协议”。
甚至于有些厂家会在包装上告诉你该怎么吃,应该冷藏呢还是常温,这里不一一列举。
好,消费者此时从超市里将“食品”买回家,就可以根据包装上面写的内容来做自己的判断,也会根据厂家建议的做法,来储藏或者处理“食品”。
很明显这里所说的消费者就是你平时常用的浏览器,所谓厂家,就是你们看不见的服务器。
在HTTP协议里所谓的Header实际上也就是厂家在食品包装上注明的一切注意事项。当然现实生活中的这些产品说明,想必是中文就应该看的懂了,然而在计算机网络领域,所有的键值对参数都是有其相应的规范的,并且十分严谨...
身份证. 张三说的比我的形象
信封