Что происходит на сервере в случае прерывания AJAX запроса (request.abort())?
Сделал поиск например по фамилии:
При каждом вводе буквы в input (начиная с 3-ей) браузер отправляет ajax запрос на сервер с набранным текстом для поиска фамилии. В ответе список фамилий содержащие текст для поиска. Перед отправки каждого запроса отменяется предыдущий запрос через jquery xhr.abort().
А что происходит на сервере с отмененными отравленными уже запросами: выполняются ли они до конца?
Если сервер все же продолжает обрабатывать их - как тогда прервать обработку для снятия нагрузки на сервер?
Запросы на сервере (согласно заветам REST) должны выполняться по возможности как можно быстрее, отдавая результат клиенту сразу. Если таки предполагается какая-то долгая обработка информации на сервере, то предлагается завести отдельный ресурс (в терминах REST, например, в коллекции /tasks) и в качестве ответа сразу вернуть клиенту идентификатор созданной задачи для дальнейшего управления ей (просмотра её статуса, управления приоритетами, остановки и т.п.) Тогда получается такая схема с отменой запросов: все запросы, отменённые на клиенте, мы никак дополнительно не сопровождаем на сервере, но при этом на клиенте отмену делаем только для запросов, не меняющих состояние сервера (не создающих/меняющих ресурсы, а только возвращающих информацию об их текущем состоянии). Чаще даже вообще не делают отмену таких запросов (чаще всего это "экономия на спичках" даже для самых посещаемых сайтов и приложений). Но если отменяется некая "тяжёлая" задача, "упакованная" в отдельный ресурс (/tasks/123 в нашем случае), то отдельно посылаем запрос на удаление этой задачи (и вот эти запросы уже нельзя отменять, их нужно обработать до конца, чтобы не рассинхронизировать состояние клиента и сервера).
У сервера есть настройка таймаута, после которой соединения закрывается со стороны сервера. Если клиент не читает по соединению в течение указанного таймаута, соединение закрывается. На jquery вы все правильно делаете, больше делать ничего не нужно.