http请求时返回的304是干什么的
请求成功时,返回的是200,那么返回的304是什么意思呢?
如上图,200和304有什么区别呢?
看下http的响应头:
刷新一次,对比下
这次请求的头信息中多了一条If-Modified-Since,而且返回的响应中,状态变为了304,这是怎么回事?
这次请求的头信息中多了一条If-Modified-Since,而且返回的响应中,状态变为了304,这是怎么回事?还记得红薯那篇文章页中的304么,你会发现,304多出现在对于静态资源的请求上面。
原来对于静态资源来说:
当浏览器第一次发起请求时(请求头中没有If-Modified-Since),server会在响应中告诉浏览器这个资源最后修改的时间(响应头中的Last-Modified)。(见上图)
浏览器也很聪明,当你再次(点击链接,或者F5,或者回车,但是不能是ctrl+F5)请求这个资源时,浏览器会询问server这个资源自上次告诉我的最后修改时间以来有没有被修改(请求头中If-Modified-Since)。(见上图)
如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。(见上图)
所以所有的静态资源如果没有发生变化,通常是不会传递多次的,不管什么浏览器或者server都应该遵守这种询问的约定。看起来很爽啊,很智能是不是?这种约定的机制就是 http缓存协商——这是约定优于配置的又一体现。
我们在写httpservlet时也会遇到类似的情况,如果你重写getLastModified这个方法的话,也会出现304的
@Overrideprotected long getLastModified(HttpServletRequest req) {/*** 这里你要自己决定动态内容的最后修改时间,例如你可以返回* -- 数据缓存最后更新的时间* -- 简单起见,我们假设最后的修改时间是 1000*/return 1000;}
http请求时返回的304是干什么的相关推荐
- AJAX请求时status返回状态明细表 readyState的五种状态
为什么80%的码农都做不了架构师?>>> 在<Pragmatic Ajax A Web 2.0 Primer >中偶然看到对readyStae状态的介绍,感觉这个介 ...
- java http 302_java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理...
场景: 接口A:请求地址为http://www.test.com/test 接口A的功能,会把接收到的参数url写入到header的Location属性中 在java中,使用httpclient发送请 ...
- ajax请求,返回值为304 Not Modified 错误原因与解决办法
先说原因吧,这是因为http请求的缓存问题引起的 前后调用了两个相同的请求,服务器懒得给你重新发一个请求,所以就304咯 那怎么办呢? 解决方法也很简单,加一个时间戳就行了 比如: 原请求为: $.g ...
- HTTP协议请求中返回的各个状态码对应的状态信息
200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 所有状态解释:点击查看 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. www.2cto.c ...
- http请求时常返回的状态码
1.http状态码分类: 已定义范围 分类 1XX 100-101 信息提示 2XX 200-206 成功 3XX 300-305 重定向 4XX 400-415 客户端错误 5XX 500-50 ...
- 服务器无效响应状态码12029,使用wininet发送http请求时出现12029无法与服务器建立连接...
使用winiet开发http请求的时候出现 12029无法与服务器建立连接 找啦很长时间才找到的错误. 错误描述: 请求如下地址: http://www.xxx.com:8888 返回12029错误 ...
- fiddler使用AutoResponder更改请求的返回结果
背景: fiddler本身提供了断点,可以修改请求参数和返回结果来达到某种测试需要,但由于超时时间很短,一般在几秒之内,而在这么短时间内往往还没有手动修改完,请求已经超时导致无法模拟请求. fiddl ...
- python Flask框架如何请求及返回数据——flask详细教程
python Flask框架如何请求及返回数据--flask详细教程 文章目录: 1 Flask介绍 1.1 Flask简单介绍 1.2 Flask相关资料信息 2 Flask快速入门 2.1 Fla ...
- bug修复录-qq浏览器中post请求时body为空
近期项目中遇到一个bug,其中解决过程比较有意思,特此记录下来.有一天看到报警记录有一个500服务端的错误,量很少,一周都不一定有一个,先根据服务器里的本地日志拿到了当时请求的相关信息像UA.cook ...
最新文章
- linux 文件拷贝io,NIO拷贝文件真的比IO拷贝文件效率高?
- linux下好用的软件
- macos怎么pdf转换成word,妈妈再也不用担心我的mac了
- JD商家后台管理的细节
- 【产品能力深度解读】连续入围Gartner魔力象限的Quick BI有何魔力?
- Springboot在线电影系统实战开发
- jsp页面从session获取当前用户信息控制页面按钮是否显示
- mybatis foreach标签的使用
- 金蝶oracle用鼎信诺取数,取数软件 审计取数软件?
- 一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址
- 第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV 标签: SFM3D重建 2015-01-15
- 土建中级工程师考试用书电子版_建筑工程中级职称考试试卷教学教材
- Matlab:风向玫瑰图,我也行
- 百度计算机视觉算法工程师面试题(秋招)
- 俄罗斯、乌克兰程序员薪资曝光!年薪 15w+,女程序员比男程序员收入高
- 加速PG中vacuum
- 为什么父类引用可以指向子类对象 子类引用不能指向父类对象 泛型
- veket linux能运行qq么,【veket系统】Veket Linux系统下载 v8.07 官方正式版-开心电玩...
- jenkins自动化_通过Jenkins自动化PSR合规性
- 【巧用自带清空内存命令 一键释放内存资源】