Controllers : In Magento 2, controllers are the entry points for handling requests (like /mymodule/index/test). They live inside your module and decide what happens when someone visits a route.

Block : A Block is the middle layer between your PHP logic and your .phtml template.

ControllerBlockTemplate (.phtml) → HTML output.

Blocks are classes you create under Block/ folder of your module or theme.