Documentation Index
Fetch the complete documentation index at: https://docs.go-mizu.dev/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Thenocache middleware sets headers to prevent browsers and proxies from caching responses. Use it for sensitive data or frequently changing content.
Installation
Quick Start
Headers Set
Examples
Global No-Cache
Specific Routes
API Group
API Reference
When to Use
- User-specific data
- Authentication responses
- Frequently changing data
- Sensitive information
- Real-time data
Technical Details
The nocache middleware is implemented as a simple wrapper that sets anti-caching headers before passing control to the next handler in the chain.Implementation
The middleware:- Retrieves the response header object from the context
- Sets four HTTP headers to prevent caching at multiple levels:
Cache-Control: Provides comprehensive cache directives for HTTP/1.1Pragma: Backward compatibility with HTTP/1.0 cachesExpires: Sets expiration to prevent cachingSurrogate-Control: Controls CDN and proxy caching behavior
- Calls the next handler in the middleware chain
Performance
- Zero-allocation implementation
- Minimal overhead (4 header writes per request)
- No configuration or state management required
- Thread-safe for concurrent requests
Best Practices
- Apply to routes serving sensitive or user-specific data
- Use sparingly on static content to avoid performance degradation
- Consider combining with HTTPS for maximum security
- Test cache behavior with browser developer tools
- Apply at the route level rather than globally when possible
Testing
The middleware includes comprehensive tests to verify correct header configuration.| Test Case | Description | Expected Behavior |
|---|---|---|
| Cache-Control Header | Validates the Cache-Control header is set | Sets “no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0” |
| Pragma Header | Validates the Pragma header is set | Sets “no-cache” for HTTP/1.0 compatibility |
| Expires Header | Validates the Expires header is set | Sets “0” to indicate immediate expiration |
| Surrogate-Control Header | Validates the Surrogate-Control header is set | Sets “no-store” to prevent CDN/proxy caching |
Related Middlewares
- cache - Enable caching