The key nuance about must validate, is that an http response consists of both headers and body. With a validate request, the client still needs to make a request to the server, but the server can respond with headers only saying 'yup nothing changed ' and so the body does not need to be streamed.
The no-cache explanation is wrong in the video. From the MDN: "The no-cache request directive asks caches to validate the response with the origin server before reuse." So it takes from cache when server says that it is ok to.
The no-cache response directive indicates that the response can be stored in caches, but the response must be validated with the origin server before each reuse, even when the cache is disconnected from the origin server. It goes to the server only for validaiton right ?
Great explanation! I have a question though. What will be the proper setup for a WP site where u use a plugin to control browser, page & object cache + use a cdn at the same time (also if the cdn act as reverse proxy like cloudflare)?. It's pretty confusing for me, who handles what?
There is something wrong with your statement about the no-cache directive. You said something incorrectly. The no-cache directive's cache status can be HIT, but it will not always be MISS. When a request reaches the cache, it first checks with the server using an ETag to determine if the file is still valid and has not been modified. If the file is valid, the cache will send it to the client, and the status will be "HIT." If the file has been updated, the cache will retrieve the new version from the server, and the status will be "MISS."
Hey, Great video! I am learning how to create websites with html css and js. I don't know anything about php. To use no-store how can I write it in my code? Thanks
@@SoftwareDeveloperDiaries no I use HTML, CSS and a bit of JS. I build from scratch. But I found the solution for my question so it’s good! Thanks man 💪🏼
@@SoftwareDeveloperDiaries Great and simple explanation. Before I found your video, I was reading HTTP caching MDN docs (and I understood nothing from that)
Via a DNS lookup, which will eventually lead to the closest CDN geographically. Also keep in mind that the data is cached separately for every CDN server at every location, it's not magically distributed across all servers.
Great content! I'm doing automation and have to check (by API) if an image has changed after selecting and saving a new one. I store the image etag before updating the image and then I check if the etag is the same. Is etag reliable for the purpose? Thank you so much, I'm new suscriber.
Thanks mate! Interesting question. Since ETags are primarily about network caching, I would rather go for a more reliable way in case if you're using a database, meaning storing some kind of an image ID in the database that you can distinquish it by. If not, ETag should be enough, since a new one is created for each new resource.
Unfortunately there are many mistakes in your video. It is false that you should never store HTML files in the cache. Most onlineshops do this e.g. Magento 2 with Redis.But you should use no-cache. This directive instructs browsers to validate the cached HTML with the server before using it, ensuring that users receive the latest version while still benefiting from caching. The term no-cache in the context of HTTP caching is a bit misleading. It does not mean "do not cache at all". Instead, it means the browser must validate the cached content with the server before using it. no-cache basically means "don't use cached content without server validation." "It's always going to emit the cache and it's going to always miss." This is incorrect. With no-cache: The file is stored in the cache. On subsequent requests, the browser checks with the server whether the cached version is still valid. If valid, the server responds with 304 Not Modified, and the cached version is used.
Happy to help :) To set the cache for 15 minutes you can use max-age=900. developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#response_directives
Forgot to mention the "s-maxage" directive: it also indicates how long the response is going to be fresh, but it's only specific to public caches.
The key nuance about must validate, is that an http response consists of both headers and body. With a validate request, the client still needs to make a request to the server, but the server can respond with headers only saying 'yup nothing changed ' and so the body does not need to be streamed.
went through a lot of content none could explain as easily as you did, thanks for the great video :)
Happy to hear that! :)
But his explanations are not always correct, don't 100% rely on it.
The no-cache explanation is wrong in the video. From the MDN: "The no-cache request directive asks caches to validate the response with the origin server before reuse." So it takes from cache when server says that it is ok to.
Please continue making video!
Explanation are clear, introduced at the right pace, looking forward watching the others
Thanks, will do!
Thank you so much. Everything are now clear like water. 👌
Most welcome 😊
The no-cache response directive indicates that the response can be stored in caches, but the response must be validated with the origin server before each reuse, even when the cache is disconnected from the origin server.
It goes to the server only for validaiton right ?
Exactly, only for validation to possibly avoid downloading the file.
No store means?
exactly my point, but came here to get to know more about it 😂
This video is underrated
Thanks mate 😎
Thanks for the clear and concise video !
Sure thing!
Great vid. Still confused between must-revalidate and stale-while-revalidate
awesome video, really liked the in-depth details, no bullshit.
Great explanation! I have a question though. What will be the proper setup for a WP site where u use a plugin to control browser, page & object cache + use a cdn at the same time (also if the cdn act as reverse proxy like cloudflare)?. It's pretty confusing for me, who handles what?
today i god this question on interview but no answered. Now I know a bit more about caching via http header, thanks!
Oh I see! Good luck with the interviews!
Thanks! Really nice way to explain concepts 🙂
What's diff b/w reverse proxy and cdn here in this case ??
This was so very helpful, thank you very much!
You're very welcome!
There is something wrong with your statement about the no-cache directive. You said something incorrectly. The no-cache directive's cache status can be HIT, but it will not always be MISS.
When a request reaches the cache, it first checks with the server using an ETag to determine if the file is still valid and has not been modified. If the file is valid, the cache will send it to the client, and the status will be "HIT." If the file has been updated, the cache will retrieve the new version from the server, and the status will be "MISS."
A big THANK YOU!
thanks for the content✌
So Informative. Thanks for sharing
You’re welcome ;)
Thanks! Very nicely explained.
Thanks, Rima!
Good work! I have past nearly 3 days trying to clear cache from http sites in chrome browser. Now we have https and https still remain in browsers :(
Hmmm :/
Happy hello from Berlin-Spandau.
Hey, Great video!
I am learning how to create websites with html css and js. I don't know anything about php. To use no-store how can I write it in my code?
Thanks
Hey mate, I don't know much about PHP unfortunately. Are you using any framework?
@@SoftwareDeveloperDiaries no I use HTML, CSS and a bit of JS. I build from scratch. But I found the solution for my question so it’s good!
Thanks man 💪🏼
Thank you, man!
Thanks for watching, buddy!
@@SoftwareDeveloperDiaries Great and simple explanation. Before I found your video, I was reading HTTP caching MDN docs (and I understood nothing from that)
@@ihorbilobran4690 those look very well structured but still hard to understand, you're right :D
Awesome!
How do my browser know which server of CDN to request?
Via a DNS lookup, which will eventually lead to the closest CDN geographically. Also keep in mind that the data is cached separately for every CDN server at every location, it's not magically distributed across all servers.
@@SoftwareDeveloperDiaries thanks a lot 😊
Would be nice if you add the nginx configs for the various items discussed in the video. :)
Will keep that in mind for future videos! :)
Great content!
I'm doing automation and have to check (by API) if an image has changed after selecting and saving a new one.
I store the image etag before updating the image and then I check if the etag is the same.
Is etag reliable for the purpose?
Thank you so much, I'm new suscriber.
Thanks mate! Interesting question. Since ETags are primarily about network caching, I would rather go for a more reliable way in case if you're using a database, meaning storing some kind of an image ID in the database that you can distinquish it by. If not, ETag should be enough, since a new one is created for each new resource.
I am more confused new than I was before
Oh no 😅
Nice!
Unfortunately there are many mistakes in your video.
It is false that you should never store HTML files in the cache. Most onlineshops do this e.g. Magento 2 with Redis.But you should use no-cache. This directive instructs browsers to validate the cached HTML with the server before using it, ensuring that users receive the latest version while still benefiting from caching.
The term no-cache in the context of HTTP caching is a bit misleading. It does not mean "do not cache at all". Instead, it means the browser must validate the cached content with the server before using it.
no-cache basically means "don't use cached content without server validation."
"It's always going to emit the cache and it's going to always miss."
This is incorrect. With no-cache:
The file is stored in the cache.
On subsequent requests, the browser checks with the server whether the cached version is still valid.
If valid, the server responds with 304 Not Modified, and the cached version is used.
Very Informative video. Thanks!
But can you please help me with the HTML code or .htaccess code? Also, How do I set the cache for 15 minutes?
Happy to help :) To set the cache for 15 minutes you can use max-age=900.
developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#response_directives