Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Series
.NET Core Web API
36
C# Fundamentals
20
Object-Oriented Programming in C#
16
C# Collections and Generics
11
LINQ
17
Asynchronous Programming in C#
17
Advanced C#
14
C# Versions
6
Background Jobs and Scheduled Jobs
11
Working with Message Queues
14
Logging in .NET
10
Caching
10
Real-time Applications
9
ASP.NET Core MVC and Razor Pages
13
Backend
PART 05
HTTP Caching: Cache-Control, ETag, 304 Not Modified and Vary to Spare the Server
The HTTP cache is driven by headers, not the server: while max-age holds the request never arrives, and afterwards an ETag request gets a bodiless 304. In our test the menu's second request came from the browser with 0 bytes, and Angular HttpClient saw the 304 as a 200. Behind nginx, a book response without Vary gave an English user the Turkish price, and a cart marked public showed Bob Alice's cart.
8 Nov 2026
13 min
4
Backend
PART 01
What Is an ASP.NET Core Web API? HTTP and REST Fundamentals
We meet the Web API through the HTTP window: request and response anatomy, methods and idempotency, status code families and resource-oriented URLs. We also lay out the series: a .NET 6 core, then version posts.
4 Nov 2026
9 min
33