К сожалению, ответ: Вы не можете сделать это так, как хотели бы.
Это связано с тем, что сервер не знает о внешнем действии закрытия браузера. Единственное место, где можно захватить это событие - это JavaScript, поэтому JS должен быть вашей отправной точкой.
Оттуда у вас может быть несколько вариантов, вы уже обсудили запрос AJAX, который является наиболее разумным. Вы также можете просто сбросить cookie сеанса из JS, однако это означает, что ваш сервер никогда не узнает, что произошло, он просто не увидит больше активности в этом сеансе, пока не истечет срок его действия.
Редактировать: также стоит отметить, что выгрузка происходит во многих ситуациях, закрытие вкладки, нажатие кнопки «Назад» и т. Д. Таким образом, реализация может быть сложной и при этом ненадежной.
Редактировать 2: Вы могли бы быть действительно продуманными и настроить веб-сокеты на каждой странице, чтобы отслеживать общее количество страниц, открытых на пользователя, когда окно выгружено и у вас есть только одно соединение, которое, вероятно, является концом сессия.