HTTP-код ответа на запрос, который слишком сложен или сложен для вычисления - PullRequest
0 голосов
/ 06 февраля 2019

Скажем, у меня есть сервер, который вычисляет факториалы:

> GET localhost:8080/factorial/10

200 3628800

В моей аналитике 99% моих пользователей просят факториалы, которые вычисляются с низкой вычислительной стоимостью, но большая часть моего процессорного времени уходит на 1%пользователей, которые хотят знать factorial(100+).

Теперь я знаю, как рассчитать factorial(100), я просто не хочу , поэтому я не собираюсь выполнять этиЗапросы.Каким HTTP-кодом мне следует отвечать?

Примечание: factorial - это всего лишь пример - на самом деле у меня нет жесткого и быстрого способа заранее определить, какой запрос будет слишком дорогим, а какой выиграл.t, я должен принять решение в каждом конкретном случае для каждого запроса, и некоторые получат HTTP 200 обратно со своим результатом, а другие будут отклонены.

1 Ответ

0 голосов
/ 06 февраля 2019

Мне кажется, что если ваш сервер не хочет отвечать на такой запрос и его не ошибка клиента, то, возможно, ошибка 5xx имеет смысл?Может быть, 501, основанный на определении википедии имеет смысл?

Я бы вернул 500 с сообщением об ошибке, чтобы указать намерение сервера явно не отвечать на такие запросы, но это я.

...