Работа с сессиями и заголовками происходит в контроллерах или вспомогательных классах, которые контроллер использует.
Почему - потому что сессии и заголовки это вопрос к тому, как обрабатывать запрос от пользователя, а контроллеры именно этим и занимаются. Чтобы легче понять, почему так, представляйте, что контроллеры работают не только с HTTP запросом, но также могут использоваться для обработки консольных команд, где ваши заголовки и сессии вообще не нужны. Будет много проблем, если вы внедрите работу с сессией в слой моделей, на том уровне, где не сможете легко и просто (и без костылей) понять, была ли это консольная команда или запрос из браузера.
Важно: не пытайтесь увидеть в каждом классе модель, вьюху или контроллер. MVC рассказывает нам о слоях, а не о конкретных классах.
MVC описывает основу приложения, но не каждый его элемент.