A. To define URL patterns
B. To handle user authentication
C. To process requests and responses globally before reaching views
D. To manage static files