#HTTP的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号和域值三部分组成。
#通用头部:
是客户端和服务器都可以使用的头部,可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如Date头部。
#请求头部:
是请求报文特有的,它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据,如Accept头部。
#响应头部:
便于客户端提供信息,比如,客服端在与哪种类型的服务器进行交互,如Server头部。
#实体头部:
指的是用于应对实体主体部分的头部,比如,可以用实体头部来说明实体主体部分的数据类型,如Content-Type头部。
1、HTTP通用头

2、HTTP请求头
#请求头用于说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力。服务器可以根据请求头部给出的客户端信息,试着为客户端提供更好的响应

3、HTTP响应头
#响应头向客户端提供一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令。这些头部有助于客户端处理响应,并在将来发起更好的请求

4、HTTP实体头
#实体头部提供了有关实体及其内容的大量信息,从有关对象类型的信息,到能够对资源使用的各种有效的请求方法。总之,实体头部可以告知接收者它在对什么进行处理。请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成

下面具体解读一下
二、通用首部(通用头)
1、Cache-Control 缓存控制
#通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制。
1.1缓存请求指令

1.2缓存响应指令

1.3是否能缓存的指令
![]()
#① public指令
Cache-Control:public #设置为public时
当指定public指令时,则明确表示其他用户也可利用缓存
#② private指令
Cache-Control:private #设置为private时
当指定private指令时,响应只以特定的用户作为对象,这与public指令的行为相反。缓存服务器会对该用户提供资源缓存的服务,对于其他用户发送过来的请求,代理服务器不会返回缓存。
#③ no-cache指令
Cache-Control:no-cache
no-cache指令的目的是为了防止从缓存中返回过期的资源,缓存会向源服务器进行有效期确认后处理资源。
客户端发送的请求中如果包含no-cache指令,则表示客户端不会接收缓存过的响应,缓存服务器必须把客户端请求转发给源服务器。从源服务器返回最新资源后,缓存服务器依然可以将最新资源进行缓存,然后再返回给客户端,除非服务器端也返回no-cache指令。
服务端返回的响应中如果包含no-cache指令,那么缓存服务器不能对资源进行缓存,源服务器以后也不会再对缓存服务器请求中提出的资源有效性进行确认。
Cache-Control:no-cache=Location
只能在响应指令中指定该参数,通过服务器端返回的指令来确定客户端是否可以使用缓存。
客户端在接收到这个被指定参数值的报文首部后,就不能使用缓存。换句话说,无参数值的首部字段可以使用缓存。
# ④ no-store指令
Cache-Control:no-store
暗示请求或响应中包含机密信息,该指令规定不进行任何缓存。
View Code