Middleware xử lý tất cả request trước khi routing, dùng cho cross-cutting concerns toàn cục (logging, CORS, exception handling).
- Action filter chỉ chạy trên controller action đã được match, có quyền truy cập vào action context và parameters — dùng cho logic controller-specific (authorization, validation, caching).
- Middleware chạy sớm hơn và rộng hơn; filter chính xác hơn.