`
jqj031
  • 浏览: 73457 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP header 缓存设置

    博客分类:
  • php
阅读更多
1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。

2. Accept-Charset:   浏览器申明自己接收的字符集
Accept-Encoding:  浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)
Accept-Language::浏览器申明自己接收的语言
语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。

3. Accept-Ranges:WEB服务器表明自己是否接受获取其某个实体的一部分(比如文件的一部分)的请求。
bytes:表示接受,none:表示不接受。

4. Age:当代理服务器用自己缓存的实体去响应请求时,用该头部表明该实体从产生到现在经过多长时间了。

5. Authorization:当客户端接收到来自WEB服务器的 WWW-Authenticate 响应时,用该头部来回应自己的身份验证信息给WEB服务器。

6. Cache-Control:请求:no-cache(不要缓存的实体,要求现在从WEB服务器去取)
max-age:(只接受 Age 值小于 max-age 值,并且没有过期的对象)
max-stale:(可以接受过去的对象,但是过期时间必须小于 max-stale 值)
min-fresh:(接受其新鲜生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象)
响应:public(可以用 Cached 内容回应任何用户)
private(只能用缓存内容回应先前请求该内容的那个用户)
no-cache(可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端)
max-age:(本响应包含的对象的过期时间)
ALL:  no-store(不允许缓存)

7. Connection:请求:close(告诉WEB服务器或者代理服务器,在完成本次请求的响应后,断开连接,不要等待本次连接的后续请求了)。
keepalive(告诉WEB服务器或者代理服务器,在完成本次请求的响应后,保持连接,等待本次连接的后续请求)。
响应:close(连接已经关闭)。
keepalive(连接保持着,在等待本次连接的后续请求)。
Keep-Alive:如果浏览器请求保持连接,则该头部表明希望 WEB 服务器保持连接多长时间(秒)。
例如:Keep-Alive:300

8. Content-Encoding:WEB服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。
例如:Content-Encoding:gzip                
Content-Language:WEB 服务器告诉浏览器自己响应的对象的语言。

Content-Length:  WEB 服务器告诉浏览器自己响应的对象的长度。
例如:Content-Length: 26012
Content-Range:   WEB 服务器表明该响应包含的部分对象为整个对象的哪个部分。
例如:Content-Range: bytes 21010-47021/47022
Content-Type:    WEB 服务器告诉浏览器自己响应的对象的类型。
例如:Content-Type:application/xml

9. ETag:就是一个对象(比如URL)的标志值,就一个对象而言,比如一个 html 文件,如果被修改了,其 Etag 也会别修改,
所以,ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服务器判断一个对象是否改变了。
比如前一次请求某个 html 文件时,获得了其 ETag,当这次又请求这个文件时,浏览器就会把先前获得的 ETag 值发送给
WEB 服务器,然后 WEB 服务器会把这个 ETag 跟该文件的当前 ETag 进行对比,然后就知道这个文件有没有改变了。


10. Expired:WEB服务器表明该实体将在什么时候过期,对于过期了的对象,只有在跟WEB服务器验证了其有效性后,才能用来响应客户请求。
是 HTTP/1.0 的头部。
例如:Expires:Sat, 23 May 2009 10:02:12 GMT

11. Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。
例如:Host:rss.sina.com.cn

12. If-Match:如果对象的 ETag 没有改变,其实也就意味著对象没有改变,才执行请求的动作。
If-None-Match:如果对象的 ETag 改变了,其实也就意味著对象也改变了,才执行请求的动作。

13. If-Modified-Since:如果请求的对象在该头部指定的时间之后修改了,才执行请求的动作(比如返回对象),否则返回代码304,告诉浏览器该对象没有修改。
例如:If-Modified-Since:Thu, 10 Apr 2008 09:14:42 GMT
If-Unmodified-Since:如果请求的对象在该头部指定的时间之后没修改过,才执行请求的动作(比如返回对象)。

14. If-Range:浏览器告诉 WEB 服务器,如果我请求的对象没有改变,就把我缺少的部分给我,如果对象改变了,就把整个对象给我。
浏览器通过发送请求对象的 ETag 或者 自己所知道的最后修改时间给 WEB 服务器,让其判断对象是否改变了。
总是跟 Range 头部一起使用。

15. Last-Modified:WEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。
例如:Last-Modified:Tue, 06 May 2008 02:42:43 GMT

16. Location:WEB 服务器告诉浏览器,试图访问的对象已经被移到别的位置了,到该头部指定的位置去取。
例如:Location:


17. Pramga:主要使用 Pramga: no-cache,相当于 Cache-Control: no-cache。
例如:Pragma:no-cache

18. Proxy-Authenticate: 代理服务器响应浏览器,要求其提供代理身份验证信息。
Proxy-Authorization:浏览器响应代理服务器的身份验证请求,提供自己的身份信息。

19. Range:浏览器(比如 Flashget 多线程下载时)告诉 WEB 服务器自己想取对象的哪部分。
例如:Range: bytes=1173546-

20. Referer:浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求中的网址/URL。
例如:Referer:http://www.sina.com/

21. Server: WEB 服务器表明自己是什么软件及版本等信息。
例如:Server:Apache/2.0.61 (Unix)

22. User-Agent: 浏览器表明自己的身份(是哪种浏览器)。
例如:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

23. Transfer-Encoding: WEB 服务器表明自己对本响应消息体(不是消息体里面的对象)作了怎样的编码,比如是否分块(chunked)。
例如:Transfer-Encoding: chunked

24. Vary: WEB服务器用该头部的内容告诉 Cache 服务器,在什么条件下才能用本响应所返回的对象响应后续的请求。
假如源WEB服务器在接到第一个请求消息时,其响应消息的头部为:Content-Encoding: gzip; Vary: Content-Encoding
那么 Cache 服务器会分析后续请求消息的头部,检查其 Accept-Encoding,是否跟先前响应的 Vary 头部值一致,即是否使用
相同的内容编码方法,这样就可以防止 Cache 服务器用自己 Cache 里面压缩后的实体响应给不具备解压能力的浏览器。
例如:Vary:Accept-Encoding

25. Via: 列出从客户端到 OCS 或者相反方向的响应经过了哪些代理服务器,他们用什么协议(和版本)发送的请求。
当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加 Via 头部,并填上自己的相关信息,当下一个代理服务器
收到第一个代理服务器的请求时,会在自己发出的请求里面复制前一个代理服务器的请求的Via 头部,并把自己的相关信息加到后面,
以此类推,当 OCS 收到最后一个代理服务器的请求时,检查 Via 头部,就知道该请求所经过的路由。
例如:Via:1.0 236-81.D07071953.sina.com.cn:80 (squid/2.6.STABLE13)

============================================================================================================================
HTTP 请求消息头部实例:
Host:rss.sina.com.cn
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept:text/xml,application/xml,application/xhtml+xml,text /html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW   <-- Cookie
If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT
Cache-Control:max-age=0

HTTP 响应消息头部实例:
Status:OK - 200                                                <-- 响应状态码,表示 web 服务器处理的结果。
Date:Sun, 01 Jun 2008 12:35:47 GMT
Server:Apache/2.0.61 (Unix)
Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT
Accept-Ranges:bytes
Content-Length:18616
Cache-Control:max-age=120
Expires:Sun, 01 Jun 2008 12:37:47 GMT
Content-Type:application/xml
Age:2
X-Cache:HIT from 236-41.D07071951.sina.com.cn                  <-- 反向代理服务器使用的 HTTP 头部
Via:1.0 236-41.D07071951.sina.com.cn:80 (squid/2.6.STABLE13)
Connection:close
分享到:
评论

相关推荐

    PHP禁止缓存如何禁止页面缓存

    在PHP中,可以通过设置HTTP头部信息来控制浏览器的缓存行为。以下是一些常用的HTTP头部指令: 1. **Expires** - **作用**:指定页面的有效期,即过期时间。如果当前时间超过该时间,则浏览器不会缓存该页面。 - *...

    header中对于文件输出的相关设置.pdf

    总的来说,通过在HTTP响应Header中设置`Content-Type`、`Content-Disposition`、`Content-Length`、`Accept-Ranges`以及防止缓存的Header,开发者可以精确控制浏览器如何处理和显示服务器发送的文件。这不仅影响到...

    php-header()输出图片缓存.doc

    php-header()输出图片缓存.doc

    php缓存实现原理

    PHP缓存实现原理主要涉及到的是PHP的输出控制(Output Control)机制,这是一组用于管理脚本输出的函数,能够让我们在数据实际被输出到浏览器之前对其进行处理。这些功能对于优化网页性能,尤其是在动态网站中生成...

    PHP自动跳转 header和Meta以及script各方法

    3. **缓存控制**:通过设置 `Cache-Control` 和 `Expires` 头来控制缓存行为。 **示例代码**: ```php $url = "index.php"; header("HTTP/1.1 303 See Other"); header("Location: $url"); exit; ``` 在上述示例...

    php header函数的常用http头设置

    通过调用`header`,我们可以控制浏览器如何处理当前的网页,实现如重定向、设置状态码、控制缓存等高级功能。以下是对`header`函数在HTTP头设置中的常见用法的详细解释: 1. **状态码设置**: - `header('...

    PHP下利用header()函数设置浏览器缓存的代码

    本篇文章将详细解释如何使用PHP的`header()`函数来设置浏览器缓存,涉及的主要头标包括Last-Modified、Expires、Pragma以及Cache-Control。 1. **Last-Modified**: Last-Modified头标用于指示资源的最后修改时间...

    php中header设置常见文件类型的content-type

    此外,header函数还能用来设置缓存控制指令,禁用缓存,强制浏览器获取最新的内容,这对于动态生成内容非常有用。可以设置的缓存控制头部包括Cache-Control、Expires和Pragma。 ```php // 禁用缓存 header('Cache-...

    PHP使用header()输出图片缓存实例

    首先,要输出图片并设置缓存,需要在发送图片内容之前,用header()函数发送适当的消息控制头。例如,设定内容类型为JPEG图片,可以使用: ```php header("Content-type: image/jpeg"); ``` 除了内容类型外,还可以...

    header函数设置响应头解决php跨域问题实例详解

    PHP作为一种服务器端编程语言,可以通过`header`函数来设置响应头,从而解决跨域问题。 `header`函数在PHP中用于发送原始服务器头信息。它的工作原理是在HTTP响应中添加自定义的头部字段,这些字段会被浏览器解析并...

    header()函数使用说明

    `header()`函数在PHP中扮演着至关重要的角色,它可以实现页面重定向、设置内容类型、控制缓存策略以及进行访问权限控制等。理解并熟练运用`header()`函数,能够帮助开发者更好地控制网页的呈现和交互,提高用户体验...

    禁用html页面的缓存

    本文将详细介绍如何针对ASP、PHP、JSP等不同类型的页面进行缓存禁用设置。 #### ASP页面的缓存禁用设置 在ASP(Active Server Pages)页面中,可以通过设置`Response`对象的相关属性来控制缓存行为。具体的代码...

    PHP禁止页面缓存的代码

    PHP中,可以通过设置HTTP响应头来禁止页面被浏览器缓存,确保每次请求都能获取到最新内容。本文将详细讲解如何使用PHP代码实现这一功能。 核心代码如下: ```php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT...

    PHP中header函数的用法及其留意事项详解_.docx

    为了控制页面的缓存行为,可以使用以下`header()`设置: ```php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-...

    PHP header函数分析详解

    这些信息可以控制浏览器的行为,如重定向、设置页面编码、控制缓存等。在处理AJAX请求时,`header()`函数更是不可或缺,因为它能够帮助我们解决与状态码、重定向和数据传输相关的各种问题。本文将深入探讨`header()`...

    php header大全

    这对于重定向页面、设置缓存策略、发送错误消息等场景非常有用。 #### 二、基本用法 `header()`函数的基本语法如下: ```php header(string $string, bool $replace = true, int $http_response_code = 200) ``` ...

    PHP 使用header函数设置HTTP头的示例解析 表头

    PHP中的header函数可以设置HTTP响应的内容类型。这告诉浏览器发送的数据应该以何种形式处理。例如: ```php header('Content-Type:text/html;charset=utf-8'); ``` 这行代码设置了内容类型为HTML,并指定字符...

    htm,asp,php,jsp不缓存网页的办法.doc

    PHP是一种广泛使用的服务器端脚本语言,它也可以通过设置响应头来禁用缓存。相关代码如下: ```php &lt;?php header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); ?&gt; ``` 与上述技术...

Global site tag (gtag.js) - Google Analytics