http-headers服务器返回的首部错误码304
来源:互联网 发布:淘宝质量检测正规吗 编辑:程序博客网 时间:2024/05/22 10:49
一、304定义
Not Modiied,意即:客户端可以通过所包含的请求首部,使其请求变成有条件的。如果客户端发起了一个有条件的GET请求,而最近资源未被修改过的话,就可以用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含主体部分。
我们要巧妙理解这这个定义,这相当于客户端和服务器端的一个条件约束,你问我要东西,我给你东西,并且我返回给你一个条件标识,(如果你发现这个标识,请你在本地缓存一下你刚才要的资源)下一次你再问我要的时候请也带着这个标识过来,我服务器端发现你带了这个标识,并且用它来检测你要的资源是否在间隔时间内有变动,如果没有变动,我直接就返回给你304,告诉你我这里没变,你直接取自己的缓存好了。这样我就没有必要把资源实体返回给你,大大节省了网络资源。
那么我们就可以用304来做一个请求图片的例子:
<?php $fn = './test.jpg'; $headers = apache_request_headers(); if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($fn))) { // Client's cache IS current, so we just respond '304 Not Modified'. header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 304); } else { // Image not cached or cache outdated, we respond '200 OK' and output the image. header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200); header('Content-Length: '.filesize($fn)); header('Content-Type: image/png'); print file_get_contents($fn); }
大家可以随便自己下载一个jpg的图片,然后重命名成test.jpg然后和脚本放到同一个目录下测试,多刷新几次。
0 0
- http-headers服务器返回的首部错误码304
- 图解http(返回结果的HTTP状态码四 与http协作的web服务器五 http首部六)
- 设置Tomcat服务器的HTTP首部长度最大值
- http返回错误码
- HTTP Headers 的方方面面
- http status(服务器返回的状态码)
- http status(服务器返回的状态码)
- 服务器返回的各种HTTP状态码
- HTTP请求错误的返回码
- SpringMVC返回JSON错误: HTTP Status 406 -- not acceptable according to the request "accept" headers
- 图解HTTP:与HTTP协作的WEB服务器与HTTP首部
- 常见HTTP服务器返回4XX错误
- HTTP/1.1的实体首部
- HTTP状态码及首部
- 了解HTTP Headers的方方面面
- HTTP首部
- HTTP首部
- HTTP协议中GET、POST和HEAD的介绍 2008-05-10 14:15 GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文
- GUI快捷方式密码不可输
- Linux汇编语言及嵌入式汇编(转载)
- 软件工程开发流程
- 解压tar包的shell脚本
- oracle 数据库表空间
- http-headers服务器返回的首部错误码304
- linux网络编程之socket(四):使用fork并发处理多个client的请求和对等通信p2p
- RakNet 建议,在服务器循环的时候设置为Sleep(30)
- exit-web-framework基于Spring 3、Hibernate4框架来对做项目核心三层和MVC的管理
- 使用C/C++扩展Python
- struts旅程(二)Struts登录示例
- 一个计算机专业菜鸟的心声
- GTK+主循环(main loop)的工作原理
- 工作队列的使用