引言:前端开发中,HTTP是不仅要了解,更是要求熟练掌握的知识点。在HTTP中,前端一般最关注的是HTTP Headers(即HTTP首部/HTTP报文),本文就是一篇关于HTTP Headers的简单总结。
引出 HTTP Headers 之前,我们需要对 HTTP 有个简单的了解。
MDN-HTTP概述:
HTTP是一种能够获取如 HTML 这样的网络资源的 protocol。它是 Web 上数据交换的基础,是一种 client-server 协议,也就是说请求通常是由像浏览器这样的接受方发起的。一个完整的web文档是由不同的子文档重新组建而成的,像是文本、布局描述、图片、视频、脚本等等
之所以要制定协议,是为了双方更好的合作,从而达到互助互利、资源共享的目的。HTTP协议就是为客户端跟服务端服务的。
基于HTTP协议的规定,客户端和服务端发送消息就要基于某种约定,这种满足约定的消息称为 HTTP消息 。
MDN-HTTP消息
:
HTTP消息是服务器和客户端之间交换数据的方式。有两种类型的消息︰ 请求--由客户端发送用来触发一个服务器上的动作;响应--来自服务器的应答。
所谓的 HTTP Headers,就是 HTTP消息 的首部。我们知道 HTTP消息 被分为两类,请求消息和响应消息。所谓请求消息就是客户端发给服务端的消息,响应消息就是服务端接收到客户端的请求后,回复给客户端的消息。而 HTTP Headers 是被用描述HTTP消息的,因此:
请求消息和响应消息分别有他们的 HTTP首部,分别称为请求头和响应头。
HTTP Headers 遵循和 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 的值。 整个 header(包括值)由一行组成,这一行可以相当长。
关于更多header的定义可看这里 MDN-Headers
下面我们分别来看请求头和响应头
请求头由三部分构成:
- General headers (适用于整个报文:即请求头和响应头通用)
- Request headers (通过进一步的定义来修改请求)
- Entity headers(如果消息中没有任何 body,则不会发送这样的头文件)
响应头也由三部分构成:
- General headers(适用于整个报文:即请求头和响应头通用)
- Response headers(提供其它不符合状态行的关于服务器的信息)
- Entity headers(如果消息中没有任何 body,则不会发送这样的头文件)
以上。