This pattern separates the presentation of information from
data
and process on data.
The central idea is code reusability and separation of concerns.
M (Model): The model consists of application data, business rules, logic, and functions. Model may communicate to database as well.
V (View): View is the presentation layer which shows UI components. That's what user sees and interacts.
C (Controller): A controller processes and responds to the events such as user requests/actions. It propagates changes in model to the view and vice-versa. It makes decisions. It controls what should happen.
Web MVC:
The Browser communicates with the controller. A controller is a part of a web application running on the server.
Controller based on the browser request make decisions what should happen.
If controller needs some data related to the business logic it ask that data from model.
Model might interact with database.
Once controller receives data from the model it sends that data to the presentation layer (the view).
The view prepare the presentation based on data provided by the controller and sends the presentation in a format which browser can understand.