关于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 决定是否显示
posted @ 2013-05-28 12:04  一束光  阅读(301)  评论(0编辑  收藏  举报

友情链接

CFC4N