文章目录
- 一、概览
- 二、请求头部
- 2.1 Accept
- 2.2 Accept-Charset
- 2.3 Accept-Encoding
- 2.4 Accept-Language
- 2.5 Cache-Control
- 2.6 Connection
- 2.7 Cookie
- 2.8 Host
- 2. 9 Referer
- 2.10 User-Agent
- 三、响应头部
- 3.1 Accept-Ranges
- 3.1 Cache-Control
- 3.2 Content-Encoding
- 3.3 Content-Language
- 3.4 Content-Length
- 3.5 Content-Type
- 3.6 Date
- 3.7 Etag
- 3.8 Last-Modified
- 3.9 Server
- 3.10 Set-Cookie
- 3.11 Transfer-Encoding
- 总结
一、概览
本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列
,欢迎大家提前关注锁定。
HTTP协议是一个应用层的协议,主要在Web浏览器和Web服务器之间传递数据。在HTTP协议中,客户端向服务器发送请求,服务器返回相应的响应。其中请求和响应的头部信息称为HTTP Header,它包含了一系列键值对,用于描述请求或响应的属性。本文将介绍HTTP协议的Header中常见的Key及其含义。
二、请求头部
2.1 Accept
客户端告诉服务器自己能够接受的媒体格式类型,如:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
2.2 Accept-Charset
客户端告诉服务器自己能够接受的字符集,如:
Accept-Charset: utf-8, iso-8859-1;q=0.5
2.3 Accept-Encoding
客户端告诉服务器自己能够接受的编码方式,如:
Accept-Encoding: gzip, deflate, br
2.4 Accept-Language
客户端告诉服务器自己能够接受的语言类型,如:
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
2.5 Cache-Control
客户端告诉服务器缓存的处理方式,如:
Cache-Control: no-cache
2.6 Connection
客户端告诉服务器是否需要持久化连接,如:
Connection: keep-alive
2.7 Cookie
客户端将Cookie信息发送给服务器,如:
Cookie: name=value; name2=value2
2.8 Host
客户端告诉服务器请求的主机名,如:
Host: www.example.com
2. 9 Referer
客户端告诉服务器请求的来源页面,如:
Referer: https://www.google.com/
2.10 User-Agent
客户端告诉服务器自己的浏览器及操作系统版本信息,如:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36
三、响应头部
3.1 Accept-Ranges
服务器告诉客户端支持的文件传输方式,如:
Accept-Ranges: bytes
3.1 Cache-Control
服务器告诉客户端缓存的处理方式,如:
Cache-Control: max-age=3600
3.2 Content-Encoding
服务器告诉客户端响应的数据的编码方式,如:
Content-Encoding: gzip
3.3 Content-Language
服务器告诉客户端响应数据的语言类型,如:
Content-Language: en-US
3.4 Content-Length
服务器告诉客户端响应数据的长度,如:
Content-Length: 1234
3.5 Content-Type
服务器告诉客户端响应数据的媒体格式类型,如:
Content-Type: text/html; charset=utf-8
3.6 Date
服务器告诉客户端响应的时间,如:
Date: Fri, 09 Oct 2020 04:22:00 GMT
3.7 Etag
服务器告诉客户端响应数据的唯一标识符,如:
ETag: "12345"
3.8 Last-Modified
服务器告诉客户端响应数据的最后修改时间,如:
Last-Modified: Fri, 02 Oct 2020 10:00:00 GMT
3.9 Server
服务器告诉客户端自己的软件及版本信息,如:
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/5.4.16
3.10 Set-Cookie
服务器告诉客户端设置Cookie信息,如:
Set-Cookie: name=value; expires=Fri, 01-Jan-2021 00:00:00 GMT; path=/;
3.11 Transfer-Encoding
服务器告诉客户端响应数据的传输方式,如:
Transfer-Encoding: chunked
总结
HTTP协议的Header中包含了很多键值对,这些键值对描述了请求或响应的属性。在实际开发中,我们需要根据具体业务需求来使用这些Key。本文列出了一些常见的HTTP Key及其含义,希望对大家了解HTTP协议有所帮助。