Today, I was messing around with my website, checking how things were loading, you know, the usual stuff. I noticed a bunch of “304 Not Modified” statuses in the network tab of my browser’s developer tools. I’d seen them before, but I never really dug into what they actually meant. So, I decided to figure it out.

My Little Investigation
First, I opened up the developer tools in Chrome (you can usually do this by right-clicking on a page and selecting “Inspect” or “Inspect Element”). Then, I clicked on the “Network” tab. This is where you can see all the files your browser is downloading to display a webpage.
I refreshed the page and started watching the requests. I saw a bunch of files – HTML, CSS, JavaScript, images – and next to many of them, in the “Status” column, it said “304 Not Modified”.
I started with a simple Google search: “what is 304 mean”. The results all pointed to the same basic idea: it’s a way for the browser and the server to be efficient.
Then, I did some reading, It’s all about caching.
- The first time my browser visits a page, it downloads everything.
- The server sends those files along with headers, including things like “Last-Modified” (telling the browser when the file was last changed) and “ETag” (a unique identifier for the file version).
- My browser stores these files and their headers in its cache.
- The next time I visit the page, my browser sends a request to the server, but it also includes information from the cached files, like the “Last-Modified” date or the “ETag”.
- The server checks if the file has actually changed since that date or if the ETag is still the same.
- If the file hasn’t changed, the server sends back a short “304 Not Modified” response without the actual file content.
- My browser then knows it can just use the version it already has in its cache, saving time and bandwidth.
So, basically, a 304 status means, “Hey, browser, you already have the latest version of this file, no need to download it again!” It’s a clever way to make websites load faster and use less data.

I feel so smart after learning it. I thought it should be difficult and spent a lot of time to learn it, actually it is easy, and I think it’s pretty cool to see how all these little things work together behind the scenes to make the web work efficiently.