南京快速建站公司网站设计步骤及图解

web/2025/10/6 4:54:37/文章来源:
南京快速建站公司,网站设计步骤及图解,投资公司怎么投资,wordpress添加会员登录页面1. ETag HTTP 1.1中引入了ETag来解决缓存的问题。ETag全称是Entity Tag#xff0c;由服务端生成#xff0c;服务端可以决定它的生成规则。如果根据文件内容生成散列值。那么条件请求将不会受到时间戳的改动造成带宽浪费。下面是根据内容生成散列值的方法#xff1a; 1 var g…   1. ETag HTTP 1.1中引入了ETag来解决缓存的问题。ETag全称是Entity Tag由服务端生成服务端可以决定它的生成规则。如果根据文件内容生成散列值。那么条件请求将不会受到时间戳的改动造成带宽浪费。下面是根据内容生成散列值的方法 1 var getHash function(str) { 2 var shasum crypto.createHash(sha1); 3 return shasum.update(str).digest(base64); 4 } 与If-Modified-Since/Last-Modified不同的是ETag的请求和响应是If-None-Match/ETag。浏览器在收到带有ETag:14-389247298365字段的响应头后会在后面的请求中将其设置在请求头中If-None-Match: 14-389247298365。服务器端收到带If-None-Match: 14-389247298365的报头后会进行如下判断来决定返回新的内容还是只响应一个304状态码让浏览器使用本地缓存版本 1 var handle function(req, res) {2 fs.readFile(filename, function(err, file){3 var hash getHash(file);4 var noneMatch req[if-none-match];5 if (hash noneMatch) {6 res.writeHead(304, Not Modified);7 res.end();8 } else {9 res.setHeader(ETag, hash); 10 res.writeHead(200, OK); 11 res.end(file); 12 } 13 }) 14 } 2. Last-Modified 通常来说如果请求头中不包含ETag服务端会通过判断Last-Modified值来决定响应304状态码还是新的文件内容。Last-Modified顾名思义指的是文件的最后一次修改时间。与ETag一样在浏览器首次访问站点后服务端会在其响应头中设置一个Last-Modified的字段它的值是一个UTC格式的时间字符串。随后在浏览器对站点的第二次访问中会在其请求头中设置一个If-Modified-Since其值就是上一次返回的Last-Modified的值。服务器端会根据这个值是否与其本地文件的最后一次修改时间相同来判断是否使用缓存。代码如下 1 var handle function(req, res) {2 fs.stat(filename, function(err, stat){3 var lastModified stat.mtime.toUTCString();4 if (lastModified req.headers[if-modified-since]) {5 res.writeHead(304, Not Modified);6 res.end();7 } else {8 fs.readFile(filename, function(err, file){9 var lastModified stat.mtime.toUTCString(); 10 res.setHeader(Last-Modified, lastModified); 11 res.writeHead(200, OK); 12 res.end(file); 13 }); 14 } 15 }) 16 } 3. Expires 和 Cache-Control 以上两种的缓存判断都需要客户端向服务端先发送一个条件请求根据返回来决定是否使用缓存。需要一定的时间开销和带宽。而实际上浏览器最先判断的是Expires 和 Cache-Control。在服务端相应里设置Expires 或 Cache-Control浏览器会根据该值进行缓存。Expires是一个GMT格式的时间字符串。浏览器再接收到这个过期值后只要本地还存在对应缓存文件在到期时间之前它都不会再发起请求。但它的缺陷是浏览器与服务器之间的时间可能不一致导致文件提前过期或已经过期却还没删除。 而Cache-Control恰恰解决了这个问题 1 var handle function(req, res) { 2 fs.readFile(filename, function(err, file){ 3 res.setHeader(Cache-Control, max-age 10*365*24*60*60); 4 res.writeHead(200, OK); 5 res.end(file); 6 }); 7 } 上面的代码为Cache-Control设置了max-age值为10年max-age会告诉浏览器文件多长时间后过期进行倒计时式的计算。这样就可以避免客户端与服务器端时间不一致带来的问题了。此外Cache-Control还可以public、private、no-cache、no-store等更精细地控制缓存的选项。HTTP1.0时还不支持max-age如今的服务端在模块的支持下多半同时对Expires 和 Cache-Control进行支持如果浏览器中两个值都存在且同时被支持max-age会覆盖Expires。 这两种方法虽然节省了带宽和请求时间但其缺陷是当服务端的文件内容进行了更新时无法通知客户端更新。因为浏览器是根据URL进行缓存的所以我们一般在对静态资源使用缓存时也会对其设定版本号。使得客户端能请求到新的内容。一般更新机制有如下两种方式 每次发布web应用或静态资源的路径中附带对应的版本号http://url.com/?v20141216每次发布web应用或静态资源的路径中附带文件内容的hash码http://url.com/?hashsdasd4d因为文件内容更新并不意味着新的版本。所以使用hash值得方式会更加妥当一些。 转载于:https://www.cnblogs.com/WhiteCusp/p/4168304.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小企业官方网站制作网页版聊天工具有哪些

「拥抱开源, 又见 .NET」随着 .NET Core的发布和开源,.NET又重新回到人们的视野。 .NET Core的下个3.0即将release,加入非常多的新功能,越来越拥抱变化,DevOps和Microservice的最佳实践已经在 .NET Core落地,比如 Ocel…

做手机网站公司微信开放平台和微信公众号的区别

Windows是一个不断发展的系统,很多新的 API 在操作系统更新时更新,而MASM32开发包一般在很长一段时间内都无法及时更新,如果需要在编程中使用新添加的API函数。就得自己动手来更手库文件,下面我就给大家介绍一下如何通过手动的方法…

网站控制用dw做网站的视频

《C语言第五六次作业.ppt》由会员分享,可在线阅读,更多相关《C语言第五六次作业.ppt(40页珍藏版)》请在人人文库网上搜索。1、C语言作业解析,第四弹,。原来真正变态的是这两作业哇 原本是做完第五次作业等大家数分期中考完以后给大家,结果直接…

优斗网站建设手机百度app最新版下载

文章目录 前言实验手册一、实验目的二、实验原理1.理论原理2.硬件原理 三、系统架构设计四、模块说明1.模块端口信号列表按键消抖模块(key)计数器模块(counter)蜂鸣器乐谱模块(music)蜂鸣器发声…

网站建设方法冫金手指排名26中英文自助网站建设

再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…

郑州网站服务公司做 了一个 家教 网站

零基础入门NLP - 新闻文本分类,正式赛第一名方案分享:https://mp.weixin.qq.com/s/7WpZUqdlItBToLYuRLm44g

空间手机版网站目录建设进wordpress根目录

从零实现的浏览器Web脚本 在之前我们介绍了从零实现Chrome扩展,而实际上浏览器级别的扩展整体架构非常复杂,尽管当前有统一规范但不同浏览器的具体实现不尽相同,并且成为开发者并上架Chrome应用商店需要支付5$的注册费,如果我们只…

微信网站的建立宿迁公司企业网站建设

C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BYTE;在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如&#xff1…

唐山有制作网站的没哪个网站可以做艺术字

这些老板们过的悠哉游哉,大富大贵没有,达到中产,活得舒服,没毛病。 企业官网每年需要交维护费主要是因为以下几个原因: 网站服务器和域名费用:企业官网需要通过服务器进行托管和访问,同时需要…

桂林临桂区建设局网站营销策划方案模板

今日份题目: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 示例 给定二叉树: [3,9,20,null,null,15,7…

网站开发的挑战扬州公司做网站

自动并行计算 异步计算 默认情况下,PyTorch中的 GPU 操作是异步的。当调用一个使用 GPU 的函数时,这些操作会在特定的设备上排队但不一定会在稍后立即执行。这就使我们可以并行更多的计算,包括 CPU 或其他 GPU 上的操作。 一般情况下&…

网站访问量数据郑州网站优化外包顾问

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 文言一心与ChatGPT-4:一场跨时代智能对话系统的深度比较一、技术背景…

网站的层次石家庄建设学校

目录 网络层概述 网络层提供的两种服务 ①面向连接的虚电路服务 ②无连接的数据报服务 IPv4 路由选择 路由器转发IP数据报 静态路由选择 动态路由选择 路由信息协议RIP 开放最短路径优先OSPF(Open Shortest Path First) 内部网关协议IGP&…

兴业大街网站建设上海专业网站建设咨询

解析RocketMQ:高性能分布式消息队列的原理与应用 引言 什么是消息队列 消息队列是一种消息传递机制,用于在应用程序和系统之间传递消息,实现解耦和异步通信。它通过将消息发送到一个中间代理(消息队列),…

保险网站程序源码网店美工的定义

旅行商问题(Travelling Salesman Problem,简称TSP)是组合优化中的一个经典问题。问题的目标是找到最短可能的路径,让旅行商从一个城市出发,经过所有其他城市恰好一次,然后回到起始城市。 TSP是一个NP-hard…

网站开发企业需要什么资质seo移动端排名优化

经常有人问,如何设置局部代理IP,如何设置全局代理IP,今天我们一起来看看。何谓局部代理IP,顾名思义,改变局部的IP,不影响其他程序软件运行的使用IP;所谓全局代理IP,就是改变整个客户…

网站怎么增加代码市场调研报告模板

一、验签的背景 在网络发展快速的过程中,总是会忽略接口数据安全问题,进行验签则能够在一定程度上能够防刷,数据篡改。 二、什么是加签验签 加签验签, 发送消息方,对消息加签名; 接受消息方&#xff0…

网站管理系统有哪些wordpress有什么缺点

SQL过程SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询、修改、创建表、删除数据、插入数据和更新数据等功能。提现了SAS对大型数据库管理系统通用的SQL语言支持。SQL过程语法Proc sql ;数据操纵语句;quit;数据操纵语句&am…

网站优化做些什么wordpress自己创建数据库

目录 一、要求 二、代码 三、结果 一、要求 实现n的阶乘&#xff0c;已知n&#xff01;1*2*3*…*n 二、代码 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {//初始化变量n为要求的几阶&#xff0c;jiecheng存储结果的&#xff0c;初始化为1…

网站地图表现形式国际时事新闻最新

LeetCode-62. 不同路径【数学 动态规划 组合数学】 题目描述&#xff1a;解题思路一&#xff1a;动态规划&#xff0c;动规五部曲解题思路二&#xff1a;动态规划&#xff08;版本二&#xff09;解题思路三&#xff1a;数论 题目描述&#xff1a; 一个机器人位于一个 m x n 网…