通用首部:客户端和服务器都可以使用的通用首部,比如Status Code:
请求首部:请求首部是请求报文特有的,它们为服务器提供了一些额外信息,例如Accept: */*
用来告知服务器客户端会接受与请求相符的任意媒体类型
响应报文:响应报文有自己的首部集,以便为客户端提供信息
具体的请求首部:
Accept-Encoding: 告诉服务器能够发送哪些编码方式
Accept-Language: 告诉服务器能够发送哪些语言
Accept-Charset: 告诉服务器能够发送哪些字符集
Accept-Ranges:这个字段说明Web服务器是否支持Range(是否支持断点续传功能),如果支持,则返回Accept-Ranges:
bytes,如果不支持,则返回Accept-Ranges: none
Range: Range字段头通过服务器只传输一部分Web资源。这个字段头可以用来实现断点续传功能
格式有三种:
(1)Range: bytes=1000-2000 传输范围从1000到2000字节
(2)Range: bytes=1000- 传输Web资源中第1000个字节以后的所有内容
(3)Range bytes=1000 传输最后1000个字节
下面介绍几个响应报文缓存首部:
Cache-Control: no-store 禁止缓存服务器缓存响应实体
Cache-Control: no-cache 每次请求都去原始服务器取内容
Cache-Control: must-revalidate 首次访问会去原始服务器验证新鲜度,在浏览器地址栏
回车后直接从缓存中响应
补充:各种状态码简介
200 OK 请求没问题,实体的主体部分包含了请求的资源
206 Partial Content 成功执行了一个部分或Range(范围)请求,客户端可以通过一些
特殊的首部来获取部分或某个范围内的文档------这个状态码就说明范围请求成功了,206响应中必须包含Content-Range, DATE, 以
及ETag或Content-Location首部
301 Move Permanently 在请求的URL已被移除时使用,响应Location首部中应该包含资源现在所处的URL
302 Found 与301状态码类似,客户端使用Location首部给出的URL来临时定位资源,将来的请求仍应使用老的URL
304 Not Modified 客户端发起一个条件GET请求,而最近资源未被修改的话,就可以用这个状态码说明,带有这个状态码
的响应不应该包含实体的主体部分
400 Bad Request 用于告知客户端它发送了一个错误的请求
403 Forbidden 请求被服务器拒绝,这个状态码通常是在服务器不想说明拒绝原因的时候使用
404 Not Found 说明服务器无法找到请求的URL
405 Method Not Allowed 发起的请求中带有所请求的URL不支持的方法时,使用此状态码,应该在响应中包含Allow首
部,告知客户端对所请求的资源支持哪些方法
500 Internal Server Error 服务器遇到一个妨碍它为请求提供服务的错误时,使用此状态码
502 Bad Gateway 作为代理或网关使用的服务器从请求响应链的下一条链路上收到一条伪响应(比如它无法连接到其父网
关)时,使用此状态码
503 Service Unavailable 说明服务器现在无法为请求提供服务,但将来可以,如果服务器知道什么时候资源变为可用,
可以在响应报文中包含一个Retry-After首部