文档章节

测试http缓存如何才生效!

noonoo
 noonoo
发布于 2017/06/30 14:51
字数 187
阅读 32
收藏 0

           浏览器和服务器之间通过 (ETag, If-None-Match )   (Last-Modified ,If-Modified-Since) 这两对请求头和响应头的信息,来判断请求是否过期!  注意,无论是请求静态资源,还是请求动态内容,在HTTP协议这一层处理是一致的,并不是只有资源才会缓存。

          还是动手一下印象深刻:

const http = require('http');

const hostname = '127.0.0.1';
const port = 8000;

const server = http.createServer((req, res) => {
    if (req.headers['if-modified-since'] == 'abc') {
        res.statusCode = 304
        res.end();
    } else {
        res.statusCode = 200;
        res.setHeader("Last-Modified", "abc")
        res.setHeader('Content-Type', 'text/plain');
        res.end('Hello Worl\n');
    }
});

server.listen(port, hostname, () => {
    console.log(`服务器运行在 http://${hostname}:${port}/`);
});

第一次请求,响应头会带上Last-Modified 头。 第2次请求会使用缓存!请在浏览器中动手试一下就明白了

© 著作权归作者所有

noonoo
粉丝 17
博文 72
码字总数 38771
作品 0
深圳
程序员
私信 提问
Spring3.1 Cache注解

需要感慨一下,spring3.0时丢弃了2.5时的spring-modules-cache.jar,致使无法使用spring来方便的管理cache注解,好在3.1.M1中增加了对cache注解的支持,可喜可贺啊! 希望了解spring2.5的cac...

小样
2012/02/28
0
0
为什么修改hosts不立即生效?--浏览器DNS缓存机制分析

经常做Web开发的工程师,都会遇到需要将某个域名绑定到特定IP上,进行测试的情况。大家一般都会用修改hosts文件的方式来解决,但是经常也会遇到修改hosts不生效的情况,而且有时生效,有时不...

黄亿华
2012/12/29
0
1
浅聊HTTP缓存 (HTTP Cache)

1.引子 HTTP缓存一直是一个老生常谈的问题,前端在日常发布、部署工作中,常常要面对。 其中面对的问题有可能会是:部署的代码无法生效 这次本人所在团队也遇到了相关问题,这里简述一下: ...

Neo_Huang
2018/11/21
0
0
【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis

【.NET Core项目实战-统一认证平台】开篇及目录索引 上篇文章我们介绍了2种网关配置信息更新的方法和扩展Mysql存储,本篇我们将介绍如何使用Redis来实现网关的所有缓存功能,用到的文档及源码...

金焰的世界
2018/11/14
0
0
springboot之Redis的使用

spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。 redis介绍 Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lis...

无语年华
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C 语言 二级指针操作文件 柔性数组使用

#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct _info* pInfo;struct _info{int line;int len;char data[0];}info;int getFil......

小张525
26分钟前
0
0
中介者模式

https://blog.csdn.net/jason0539/article/details/45216585

南桥北木
26分钟前
0
0
抽离css以及公共js

分离css 分离css:为何要把 CSS 文件分离出来,而不是直接一起打包在 JS 中。最主要的原因是我们希望更好地利用缓存。 extract-text-webpack-plugin > 1. 假设我们原本页面的静态资源都打包成...

莫西摩西
今天
1
0
Jenkins的配置从节点中默认没有Launch agent via Java Web Start,该如何配置使用

Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的。 如何设置才能让出来呢? 1:打开"系统管理"——"Configure Global Sec...

shzwork
今天
2
0
BAT面试必问HashMap源码分析

HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈...

别打我会飞
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部