Deep Dive into HTTP Caching: cache-control, no-cache, no-store, max-age, ETag and etc.

Поділитися
Вставка
  • Опубліковано 6 січ 2025

КОМЕНТАРІ • 58

  • @SoftwareDeveloperDiaries
    @SoftwareDeveloperDiaries  2 роки тому +11

    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.

  • @kondziorf
    @kondziorf 2 місяці тому +4

    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.

  • @shivanshagarwal12
    @shivanshagarwal12 Рік тому +4

    went through a lot of content none could explain as easily as you did, thanks for the great video :)

  • @spots2012
    @spots2012 Рік тому +6

    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.

  • @joachimzayana1744
    @joachimzayana1744 6 місяців тому

    Please continue making video!
    Explanation are clear, introduced at the right pace, looking forward watching the others

  • @imtiazux
    @imtiazux 6 місяців тому +1

    Thank you so much. Everything are now clear like water. 👌

  • @shaheenns3113
    @shaheenns3113 2 роки тому +5

    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 ?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  2 роки тому +2

      Exactly, only for validation to possibly avoid downloading the file.

    • @sahukaridharani728
      @sahukaridharani728 2 роки тому

      No store means?

    • @sKopheK
      @sKopheK Рік тому

      exactly my point, but came here to get to know more about it 😂

  • @quannguyenhong6300
    @quannguyenhong6300 11 місяців тому

    Thanks for the clear and concise video !

  • @tech3425
    @tech3425 9 місяців тому +1

    Great vid. Still confused between must-revalidate and stale-while-revalidate

  • @mahdibeldjoudi3269
    @mahdibeldjoudi3269 Рік тому +1

    This video is underrated

  • @akashagarwal6390
    @akashagarwal6390 Рік тому

    awesome video, really liked the in-depth details, no bullshit.

  • @helloshouvik
    @helloshouvik 4 місяці тому

    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?

  • @fellainthewagon7166
    @fellainthewagon7166 Рік тому +1

    today i god this question on interview but no answered. Now I know a bit more about caching via http header, thanks!

  • @nithathghm4347
    @nithathghm4347 Рік тому

    Thanks! Really nice way to explain concepts 🙂

  • @PiyushGhosh-l4k
    @PiyushGhosh-l4k 4 місяці тому

    What's diff b/w reverse proxy and cdn here in this case ??

  • @slickchick8292
    @slickchick8292 Рік тому

    This was so very helpful, thank you very much!

  • @mohamadal3k513
    @mohamadal3k513 2 місяці тому

    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."

  • @Teleschmiede
    @Teleschmiede 2 роки тому

    Happy hello from Berlin-Spandau.

  • @rimagerhard5047
    @rimagerhard5047 Рік тому

    Thanks! Very nicely explained.

  • @aamiramin6112
    @aamiramin6112 Рік тому

    So Informative. Thanks for sharing

  • @gabriel_bricage
    @gabriel_bricage Рік тому

    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
      @SoftwareDeveloperDiaries  Рік тому

      Hey mate, I don't know much about PHP unfortunately. Are you using any framework?

    • @gabriel_bricage
      @gabriel_bricage Рік тому

      @@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 💪🏼

  • @Pranavk-tc5sc
    @Pranavk-tc5sc Рік тому

    thanks for the content✌

  • @abirsheikh5300
    @abirsheikh5300 Рік тому

    How do my browser know which server of CDN to request?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  Рік тому +1

      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.

    • @abirsheikh5300
      @abirsheikh5300 Рік тому

      ​@@SoftwareDeveloperDiaries thanks a lot 😊

  • @panzerdp
    @panzerdp Рік тому

    A big THANK YOU!

  • @wilfredomartel7781
    @wilfredomartel7781 28 днів тому

    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 :(

  • @gerogoya332
    @gerogoya332 Рік тому

    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.

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  Рік тому

      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.

  • @Sriram156
    @Sriram156 Рік тому

    Would be nice if you add the nginx configs for the various items discussed in the video. :)

  • @ihorbilobran4690
    @ihorbilobran4690 2 роки тому

    Thank you, man!

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  2 роки тому

      Thanks for watching, buddy!

    • @ihorbilobran4690
      @ihorbilobran4690 2 роки тому

      @@SoftwareDeveloperDiaries Great and simple explanation. Before I found your video, I was reading HTTP caching MDN docs (and I understood nothing from that)

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  2 роки тому

      @@ihorbilobran4690 those look very well structured but still hard to understand, you're right :D

  • @MajesticaYEH
    @MajesticaYEH Рік тому

    Awesome!

  • @arknitosh
    @arknitosh 2 роки тому

    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?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  2 роки тому +1

      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

  • @TuvRaz
    @TuvRaz 9 місяців тому +1

    I am more confused new than I was before

  • @laurassalias630
    @laurassalias630 2 роки тому

    Nice!

  • @WebdevBlizz
    @WebdevBlizz Місяць тому +1

    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.