-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
说说浏览器缓存和HTTP缓存 #45
Comments
HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进行设置。 整体流程 HTTP缓存都是从第二次请求开始的 第一次请求资源时,服务器返回资源,并在respone header头中回传资源的缓存参数;第二次请求时,浏览器判断这些请求参数,击中强缓存就直接使用缓存内容,否则就把请求参数加到request header头中传给服务器,看是否击中协商缓存,击中则使用该缓存资源,否则服务器会返回新的资源。 HTTP缓存分为强缓存和协议缓存: 强缓存命中的话不会发请求到服务器,协商缓存一定会发送请求到服务器。 浏览器缓存 Cookie主要用于用户信息的存储,Cookie的内容可以自动在请求的时候被传递给服务器。但是每次浏览器对cookie的数量大小都有限制,如果cookie的数量过多,会导致http里的header的内容过大,导致出现错误。 web存储分为localStorage和sessionStorage,web存储的数据不会向服务器发送,相比更加安全。只是用于用户请求网站数据,可以存储大量数据。且不影响性能。同样遵循“同源策略” LocalStorage的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。作用域在文档源
SessionStorage的属性方法同LocalStorage,只不过它的生命周期同标签页的生命周期,当标签页被关闭时,SessionStorage也会被清除。只在当前会话窗口有效,且作用域限制在同源同窗口 |
浏览器缓存其实就是浏览器保存通过HTTP获取的所有资源,是浏览器将网络资源存储在本地的一种行为。 浏览器的本地存储主要分为 Cookie、WebStorage 和 IndexedDB, HTTP 缓存主要分为强缓存和协商缓存。 协商缓存:协商缓存就是强缓存失效后,浏览器携带缓存标识向服务器发送请求,由服务器根据缓存标识来决定是否使用缓存的过程。主要有:Last-Modified / If-Modified-Since |
No description provided.
The text was updated successfully, but these errors were encountered: