HTTP头字段
头字段
HTTP 头字段允许客户端和服务器通过请求报文和响应报文传递附加信息。头字段由字段的名称、一个冒号“:”和对应的值组成组成。如下图所示:
图:HTTP头字段格式
注意事项:
- 字段名里不允许出现空格,可以使用连字符“-”,但不能使用下划线“_”;
- 冒号前无空格,冒号后如果有多个空格只会保留一个空格;
- 每个字段的 value 后都会有一个换行符;
- 字段的顺序是没有意义的,可以任意排列不影响语义;
caution
文档 RFC7504 明确指出头字段的定义:在 HTTP/1.x 中头字段名不区分大小写,但是在 HTTP/2 中头字段必须是小写。在 Node.js 中,如果使用的是 HTTP/1.x 协议,字段名对大小写字母不敏感,会原样输出。如果如果使用的是 HTTP/2 协议,非小写字母的字段名都会转为小写
头字段分类
HTTP 协议规定了非常多的头部字段,实现各种各样的功能,但基本上可以分为四大类:
- 通用头字段:在请求头和响应头里都可以出现;
- 请求头字段:仅能出现在请求头里,进一步说明请求信息或者额外的附加条件;
- 响应头字段:仅能出现在响应头里,补充说明响应报文的信息;
- 实体头字段:它实际上属于通用字段,但专门描述
body
的额外信息。
详细字段
图:HTTP头字段分类
小结
本章 HTTP 头字段的讲解是按照请求报文和响应报文来划分的,在HTTP headers -- MDN这个文档中,是按照 HTTP 字段的功能来划分的,将两者结合来看效果会更好。