A controller manages the interactions between models and views. It provides the logical behavior and business logic of your applications. It chooses which view has to be rendered for a specific user request.
Generally speaking, since controllers provide the main application entry point, this means that they control how applications should respond to user requests.