这是我画的图来理解客服端与服务端。当客服端发送一个get请求到服务端的时候服务端会处理请求,然后响应给客服端。在给的响应里面服务器会在请求头里面加入cache-control,Etag,Date,last-Modified。如果客服端刚好是浏览器的话,浏览器和服务器是一对好朋友,浏览器会把从服务器那里拿到的东西保存到本地,还会标记请求的路径和请求的方法,也会标记服务器加入到请求头里面的东西。
现在从浏览器的角度说一下:
当浏览器准备请求的时候,要先看一下自己本身有没有缓存,如果有缓存的话分两种情况:缓存无效和缓存有效。如果缓存无效的话就带着缓存请求服务请,如果有效的话就直接使用缓存的。
没有缓存这种情况,就直接请求服务器。
下面是我画的图帮助理解:
可能又朋友不太理解什么是"带缓存请求"
当浏览器缓存已经过期了,它并不会简单的把缓存删掉,它此时还是抱有一丝的希望的,就想问一问我的缓存里面还有可以使用的东西吗?
于是浏览器就发出了一个带缓存的求求又叫“协商请求”。
在这里我们先说下304 Not Modified因为等一下会用。
什么是 304 Not Modified了 就是在你缓存还有效的时候服务器会给你返回 304 Not Modified 就是告诉客服端可以继续使用。
标签:缓存,浏览器,请求,客服,Modified,服务器,HTTP From: https://www.cnblogs.com/wuyi43/p/16928813.html