zoukankan      html  css  js  c++  java
  • 关于http头

    默认情况下,请求代码中不设置任何header,则响应头由服务器的一些默认配置来返回,而这些默认设置是是实现基本服务器运转的一些指令。

    Connection keep-Alive: 表示是否需要持久连接。由服务中的KeepAlive指令控制
    Content-Length:有服务器自动计算,用于实现持久连接
    Content-type :这个由请求的文件类型决定,默认配置时服务器中的DefaultType text/plain
    Date:当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。
    Server:由apache中的 ServerTokens 指令来配置
    X-Powered-By:由php.ini中的 expose_php = Off 决定是否显示

    常用自定义header头:

    一、浏览器cache设置:(Cache-control:

    网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况。

    Expires 表示存在时间,允许客户端在这个时间之前不去检查(发请求)而使用本地浏览器中的缓存,等同Cache-Control中的max-age 如
    果同时设置了Expires和Cache-Control中的max-age则Expires会被max-age覆盖



    注意:(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache)

    1) 什么是”Last-Modified”?

             在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:

             Last-Modified: Fri, 12 May 2006 18:53:33 GMT

             客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:

             If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT

             如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而 保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

    案例1:

    我写了一个礼品兑换功能,但用户兑换完成后,后退又进入兑换页面,如何使得用户使用浏览器自带的后退按钮后退后页面重新读取php代码。

    // 设置此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 

    header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");

    //设置此页面的最后更新日期(用格林威治时间表示)为当天,可以强制浏览器获取最新资料 

    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

    //告诉客户端浏览器不使用缓存,HTTP 1.1 协议 header("Cache-Control: no-cache, must-revalidate"); 

    //告诉客户端浏览器不使用缓存,兼容HTTP 1.0 协议 header("Pragma: no-cache");

     

    Connection keep-Alive: 表示是否需要持久连接。由服务中的KeepAlive指令控制
    Content-Length:有服务器自动计算,用于实现持久连接
    Content-type :
    这个由请求的文件类型决定,默认配置时服务器中的DefaultType text/plain
    Date:当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。
    Server:
    由apache中的 ServerTokens 指令来配置 X-Powered-By:由php.ini中的 expose_php = Off 决定是否显示
  • 相关阅读:
    python 计时累积超过24小时时继续往上累加
    linux 下获取文件最后几行
    unbuntu 安装python包提示E: Unable to locate package python-timeout
    python 计时器
    jquery中html()、text()、val()的区别
    DESC和 ACS
    jQuery自动截取文字长度,超过部分
    Spring MVC 注解
    注解笔记
    Spring Data JPA初使用 *****重要********
  • 原文地址:https://www.cnblogs.com/Alight/p/3103339.html
Copyright © 2011-2022 走看看