Express.js Server 400 Ошибка неверного запроса для длинного URL GET-запроса - PullRequest
0 голосов
/ 10 января 2019

Я делаю запрос к обычному серверу express.js, где он должен проанализировать параметр, который выглядит следующим образом:

app.get('/:param', function(req, res) {
  // do something
})

Это работает для 99% обычных случаев, но когда я пытаюсь передать очень длинный параметр (около 10000 символов), происходит сбой с ошибкой 400.

Сервер не сообщает никаких других деталей, кроме 400 ошибок, и я просмотрел весь Интернет, но хотя существует ограничение на длину URL-адреса, это намного превышает 10000, и я не думаю, что причина .

Опять же, короткие URL-адреса прекрасно работают с точно таким же кодом. Это длинные URL, которые терпят неудачу. Итак, мой вопрос:

  1. Я ошибаюсь из-за ограничений, и это не должно быть возможным?
  2. Как я могу отладить эту ситуацию? Все, что я получаю, это ошибка 400.

1 Ответ

0 голосов
/ 10 января 2019

Заголовки, полученные HTTP-серверами, не должны превышать 8192 байта, чтобы предотвратить возможные атаки типа «отказ в обслуживании». Это константа времени компиляции, вам придется использовать специально скомпилированную версию Node, чтобы увеличить эту константу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...