HTTP中与缓存有关请求头,响应头字段

请求头:浏览器向服务器发送请求的数据,资源。
响应头:服务器向浏览器响应数据,告诉浏览器具体操作。

常见的请求头:
Accept: text/html,image/*                                              浏览器可以接收的类型 
Accept-Charset: ISO-8859-1                                        浏览器可以接收的编码类型
Accept-Encoding: gzip,compress                                 浏览器可以接收压缩编码类型 
Accept-Language: en-us,zh-cn                                  浏览器可以接收的语言和国家类型
Host: www.lks.cn:80                                                   浏览器请求的主机和端口
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT   某个页面缓存时间 
Referer: http://www.lks.cn/index.html                          请求来自于哪个页面
User-Agent: Mozilla/4.0 compatible; MSIE 5.5; Windows NT 5.0   浏览器相关信息
Cookie:                                                                      浏览器暂存服务器发送的信息
Connection: close1.0/Keep-Alive1.1                            HTTP请求的版本的特点
Date: Tue, 11 Jul 2000 18:23:51GMT                         请求网站的时间
Allow:GET                                                                        请求的方法 GET 常见的还有POST
Keep-Alive:5                                                                连接的时间;5
Connection:keep-alive                                               是否是长连接
Cache-Control:max-age=300                                     缓存的最长时间 300s

常见的响应头:
Location: http://www.lks.cn/index.html                            控制浏览器显示哪个页面 
Server:apache nginx                                                       服务器的类型 
Content-Encoding: gzip                                                   服务器发送的压缩编码方式 
Content-Length: 80                                                         服务器发送显示的字节码长度 
Content-Language: zh-cn                                               服务器发送内容的语言和国家名 
Content-Type: image/jpeg; charset=UTF-8                    服务器发送内容的类型和编码类型 
Last-Modified: Tue, 11 Jul 2000 18:23:51GMT           服务器最后一次修改的时间 
Refresh: 1;url=http://www.lks.cn                                        控制浏览器1秒钟后转发URL所指向的页面 
Content-Disposition: attachment; filename=lks.jpg      服务器控制浏览器发下载方式打开文件 
Transfer-Encoding: chunked                                          服务器分块传递数据到客户端  
Set-Cookie:SS=Q0=5Lb_nQ; path=/search                服务器发送Cookie相关的信息 
Expires: -1                                                                        资源的过期时间,提供给浏览器缓存数据,-1永远过期 
Cache-Control: no-cache                                               告诉浏览器,一定要回服务器校验,不管有没有缓存数据。 
Pragma: no-cache                                                            服务器控制浏览器不要缓存网页   
Connection: close/Keep-AliveHTTP                             请求的版本的特点   
Date: Tue, 11 Jul 2000 18:23:51 GMT                       响应网站的时间 
ETag:“ihfdgkdgnp98hdfg”                                       资源实体的标识(唯一标识,类似md5值,文件有修改md5就不一样)


关于缓存相关头的解释:
 Expires 
            一个GMT时间,试图告知浏览器,在此日期内,可以信任并使用对应缓存中的副本,缺点是,一但客户端日期不准确.则可能导致失效.
 Pragma : no-cache   
        这个是http1.0中的常规头,作用同http1.1的 Cache-Control : no-cache
 Last-Modified 
         一个GMT时间,告知被请求实体的最后修改时间.用于浏览器校验其缓存副本是否仍然可以信任.与其相关的两个条件请求标头:
      1) If-Modified-Since 
         仅在get方法中意义,这个也是比较常见的。 如果实体在指定时间后,没有修改则返回一个304,否则返回一个常规的Get请求的响应(比如200),静态文件没有修改返回304是好的,因为它只是回服务器校验一下是否有修改,而并没有像200那样重新请求数据。
      2) If-Unmodified-Since: 
         如果实体没有任何修改,那么就可以直接执行该请求, 而如果有修改,则返回一个412 Precondition Failed状态码,并且抛弃该方法对应的行为操作(GET方法除外). 
  Cache-Control (http1.1的常见头)
      1) public   
         仅体现在响应头,通知浏览器可以无条件的缓存该响应。
      2) private  
         仅体现在响应头,通知浏览器只针对单个用户缓存响应. 且可以具体指定某个字段.如private –“username”
      3) no-cache
          a) 请求头中:告诉浏览器回去服务器取数据,并验证你的缓存(如果有的话)。
          b) 响应头中:告诉浏览器,一定要回服务器校验,不管有没有缓存数据。 如果确定没有被改,可以使用缓存中               的数据
      4) no-store 
          告诉浏览器任何情况下都不要被缓存。
      5) max-age
          a) 请求头中:强制响应浏览器,根据该值,校验缓存.即与自身的Age值,与请求时间做比较.如果超出max-    age值,则强制去服务器端验证.以确保返回一个新鲜的响应.其功能本质上与传统的Expires类似,但区别在于Ex    pires是根据某个特定日期值做比较.一但缓存者自身的时间不准确.则结果可能就是错误的.而max-age,显然无    此问题. Max-age的优先级也是高于Expires的.
          b) 响应头中:同上
          
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值