HTTP的缓存机制
2021-04-11 08:28:53 0 举报
AI智能生成
Http的缓存机制
作者其他创作
大纲/内容
使用场景
适合一些对文件实时性要求比较高的资源,如业务js、css、img等
适合不经常改变的资源,如库文件
分类
协商缓存:304
需要询问服务器文件是否更改,对于文件实时性要求比较高时,可以采用协商缓存,避免因强缓存导致资源仍使用旧的
需要询问服务器文件是否更改,对于文件实时性要求比较高时,可以采用协商缓存,避免因强缓存导致资源仍使用旧的
If-modified-Since/Last-Modified
浏览器在发送请求的时候服务器会检查请求头request header里面的If-modified-Since,如果最后修改时间相同则返回304,否则给返回头(response header)添加last-Modified并且返回数据(response body)。
浏览器在发送请求的时候服务器会检查请求头request header里面的If-modified-Since,如果最后修改时间相同则返回304,否则给返回头(response header)添加last-Modified并且返回数据(response body)。
If-None-Match/Etag
浏览器在发送请求的时候服务器会检查请求头(request header)里面的if-none-match的值与当前文件的内容通过hash算法(例如 nodejs: cryto.createHash('sha1'))生成的内容摘要字符对比,相同则直接返回304,否则给返回头(response header)添加etag属性为当前的内容摘要字符,并且返回内容。
浏览器在发送请求的时候服务器会检查请求头(request header)里面的if-none-match的值与当前文件的内容通过hash算法(例如 nodejs: cryto.createHash('sha1'))生成的内容摘要字符对比,相同则直接返回304,否则给返回头(response header)添加etag属性为当前的内容摘要字符,并且返回内容。
强缓存:200(from cache)
不请求服务器,直接从内存或硬盘中读取缓存,只有达到缓存失效条件时才会询问服务器是否需要更新资源
不请求服务器,直接从内存或硬盘中读取缓存,只有达到缓存失效条件时才会询问服务器是否需要更新资源
内存缓存: from momery cache
特点:快速存取和实效性、容量小
解析:由于是将文件存在内存中,因此读取速度非常快,也是因为将文件放在内存中,因此,进程死,缓存也会销毁,有一定的时效。
硬盘缓存: form dist cache
特点:读取缓慢、容量大
解析:硬盘缓存则是直接将**缓存写入硬盘**文件中,读取缓存需要对该缓存存放的**硬盘文件进行I/O操作**,然后重**新解析该缓存内容**,读取复杂,速度比内存缓存慢。
每次都询问服务器文件是否改变: no-cache
禁用缓存: no-store
0 条评论
下一页