测试http缓存如何才生效! 原

           浏览器和服务器之间通过 (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次请求会使用缓存!请在浏览器中动手试一下就明白了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android先生

Android 9.0适配及部分新特性介绍

在最开始针对速贷进行Android9.0版本的适配时,我使用的是真机是vivo X21A,将targetSdkVersion升到28,运行发现网络请求全报400...

1.4K40
来自专栏Hongten

python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

==========================================================

21610
来自专栏葡萄城控件技术团队

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。 下...

260100
来自专栏葡萄城控件技术团队

Wijmo 更优美的jQuery UI部件集:活动日历控件(Event Calendar)

  Wijmo Event Calendar活动日历控件,是一个功能齐全的活动日历控件,允许用户添加,编辑和管理他们的日程。默认情况下,控件将使用Html5的L...

34890
来自专栏移动端开发

环信SDK 头像、昵称、表情自定义和群聊设置的实现 一(附源码)

前言: 环信的SDK在公司的项目中有用到,现在用到的是群聊的部分,这里我们分析总结一下自己对环信给的DEMO大概的拆解一下,说说我们怎么样充分的利用这个de...

37180
来自专栏coding...

Atom插件开发-使用自己的Chevereto图床API项目简介功能分析代码实现项目地址

最近一直在用 Atom 写写markdown,但无奈上传图片真实太麻烦了。找了好几个插件都是要用到 七牛 的账号,由于之前被七牛坑过一次,就没再想用他的打算了。...

11720
来自专栏java一日一条

优化 iOS 程序性能的 25 个方法

ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存...

14040
来自专栏施炯的IoT开发专栏

《101 Windows Phone 7 Apps》读书笔记-ALARM CLOCK

课程内容 Ø 隔离存储空间 Ø 设置 Ø 设置页面向导 Ø Toggle Switch控件 Ø 使用自定义字体     Alarm Clock模仿的...

21260
来自专栏liulun

分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome

为了使用简单,需要先写一个单件类,头文件的代码如下: 其中静态方法Instance保证IconHelper的实例全局唯一 (注意构造函数已经私有化了) #if...

25170
来自专栏破晓之歌

Python 的 GUI 开发工具 原

Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出...

85420

扫码关注云+社区

领取腾讯云代金券