Браузер - это программный HTTP-запрос.
Просто случается, что перед ним стоит пользователь.
Однако некоторые программные HTTP-запросы не содержат заголовок User-Agent
.
Вы можете сделать что-то необычное, например, отправлять записанные движения мыши с помощью Javascript и проверять их статистически, и клиент без браузера может имитировать их.
Или вы можете просто использовать капчу.