首页 > 编程知识 正文

谷歌浏览器官网网址,在浏览器中输入的网址http

时间:2023-05-05 13:41:27 阅读:43432 作者:4255

1、http缓存分类:

根据是否需要重新向服务器发起请求分类,可以分为(强制缓存、协商缓存)

根据单个或多个用户是否可用进行分类,可以分为“专用缓存、共享缓存”

如果启用了强制缓存,则不需要与服务进行交互,但无论是否启用协商缓存,都需要与服务端进行交互。

以下是强制缓存与协商缓存的比较。

1.1、强制缓存

如果缓存数据未过期,也就是说,缓存控制中的max-age未失效,强制缓存将使用浏览器中的缓存数据,而不会向服务器发送请求。

优点:如果启用强制缓存,则http状态代码为200。 这种方式页面加载速度最快,性能也很好

缺点:但是,在此期间,如果服务器端资源发生更改,则在页面上不可用。 因为不会向服务器发送请求。

响应头缓存控制,常见设置为max-agepublicprivateno-cache no-store等

强缓存总结cache-control: max-age=xxxx,public

客户端和代理服务器都可以缓存资源。

客户端在xxx秒的有效期内,如果有请求资源的需要,则直接读取缓存,statu code:200在用户进行了刷新操作时,向服务器发出http请求

cache-control: max-age=xxxx,保密

只允许客户端缓存资源; 不缓存代理服务器

客户端在xxx秒内直接读取缓存,并在statu code:200

cache-control: max-age=xxxx,immutable

客户机在xxx秒的有效期内,如果有请求资源的需要,则直接读取缓存,statu code:200即使用户进行刷新操作,也不向服务器发出http请求

cache-control: no-cache

跳过强大的缓存设置,但不阻止协商缓存设置; 一般来说,如果进行了强缓存,则只有在强缓存被禁用后才能进入协商缓存,设置为no-cache时缓存不会变强,每次请求时都会返回到服务端进行查询。

Cache-control :否- store

如果不缓存,这将不再与客户端、服务器一起缓存。 所谓的强缓存、协商缓存也没有了。

二、协商缓存上述强缓存通过对资源设置有效期,客户端每次请求资源时看是否过期; 过期后才咨询服务器。 所以,强大的缓存是为了让客户端自给自足。 如果有一天客户端在请求资源时发现它已经过期,这就是请求服务器。 此时,请求服务器的进程可以设置协商缓存。 此时,协商缓存必须在客户端和服务器的两端进行交换。

如何设置协商缓存?

响应头中的设置

etag : ' 5c 20 abbd-e2e8' last-modified : mon, 24 Dec 2018 09:49:49 GMT协商缓存步骤总结:在下次请求返回响应头etag和最后修改时,在请求头中具有这两个步骤服务端会比较你带来的标识,判断资源是否发生了变化,如果发生了变化,会直接更新新资源和对应的响应头的标识etag、last-modified。 如果资源未更改,则etag、last-modified不会更改

请求资源时,将用户本地资源的etag同时带到服务端,并与服务端比较最新的资源。

资源没更改,返回304

如果是资源有更改,返回200,则返回最新资源。

作为补充,当客户端向服务端重新发送请求时,响应头etag、last-modified会在请求头中重命名密钥。

//responseheaderetag : ' 5c 20 abbd-e2e8' last-modified : mon, 24 dec 201809336049336049 GMT//请求头是if-none-matched 3360 ' 5c 20 abbd-e2e8' if-modified-since 3360 mon,24例如这些文件是怎么设置的呢? 核心需求是

毫无疑问,我们需要缓存

发送新包时,请不要加载旧的缓存资源

采用3358www.Sina.com/,index.html文件保证资源更新。 原因是每次用户都希望index.html直接向服务器请求,而没有浏览器缓存。 http://www.Sina!

ng>其他资源采用强缓存 + 协商缓存

可以看到很多网站都是这么干的

参考:
https://www.jianshu.com/p/9c95db596df5
https://www.jianshu.com/p/227cee9c8d15

浏览器缓存 Cookie有什么用途?用途 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)浏览器行为跟踪(如跟踪分析用户行为等) Session ID 的安全性问题

不能让它被恶意攻击者轻易获取,那么就不能产生一个容易被猜到的 Session ID 值。此外,还需要经常重新生成 Session ID。在对安全性要求极高的场景下,例如转账等操作,除了使用 Session 管理用户状态之外,还需要对用户进行重新验证,比如重新输入密码,或者使用短信验证码等方式。

Session和Cookie的区别 从存储方式上比较

Cookie只能存储字符串,如果要存储非ASCII字符串还要对其编码。

Session可以存储任何类型的数据,可以把Session看成是一个容器

从隐私安全上比较

Cookie存储在浏览器中,对客户端是可见的。信息容易泄露出去。如果使用Cookie,最好将Cookie加密

Session存储在服务器上,对客户端是透明的。不存在敏感信息泄露问题。

从有效期上比较

Cookie保存在硬盘中,只需要设置maxAge属性为比较大的正整数,即使关闭浏览器,Cookie还是存在的

Session的保存在服务器中,设置maxInactiveInterval属性值来确定Session的有效期。如果关闭了浏览器,该Session虽然没有从服务器中消亡,但也就失效了。

从对服务器的负担比较

Session是保存在服务器的,每个用户都会产生一个Session,如果是并发访问的用户非常多,是不能使用Session的,Session会消耗大量的内存。

Cookie是保存在客户端的。不占用服务器的资源。像baidu、Sina这样的大型网站,一般都是使用Cookie来进行会话跟踪。

从浏览器的支持上比较

如果浏览器禁用了Cookie,那么Cookie是无用的了!

如果浏览器禁用了Cookie,Session可以通过URL地址重写来进行会话跟踪。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。