Cloudfront отвечает со статусом 413 (запрос слишком большой)

У нас есть требование отправлять большие данные в виде части URL, которая будет считываться под углом, чтобы отобразить страницу. URL-адрес более 10000 символов. Но облачный фронт возвращается ниже ошибки -

Плохой запрос. Сгенерировано облачным фронтом (CloudFront) Идентификатор запроса: I2fOApzZr4psKrWsY6abezp5R0m30zKDKE7c0MuB_JkjWbvxz5GVnQ==

Консоль браузера возвращает код ошибки 413 с сообщением ниже -

Не удалось загрузить ресурс: сервер ответил со статусом 413 (слишком большой объект запроса)

Есть ли в облаке какие-либо настройки, которые могут позволить принимать большие URL-запросы.

На apache я знаю, что есть такие настройки, как LimitRequestBody, которые могут допускать большие входные данные, но запрос не достигает apache и ошибки из-за самого cloudfront.

Когда я играл с количеством символов - облачный фронт разбивается после 8226 символов.

1 ответ

Это не поддерживается CloudFront имеет следующие жесткие ограничения, которые приемлемы для большинства приложений:

Максимальная длина запроса, включая заголовки и строки запроса: 20 480 байт

Максимальная длина URL: 8192 байта

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html

Очевидное расхождение между 8,226 - 8,192 = 34, вероятно, связано с длиной вашего имени хоста и http:// если ты считаешь это. Документация CloudFront гласит "URL", но ограничение может фактически применяться только к объединенной длине пути + строки запроса, так как Host: заголовок отделен от остальной части запроса в реальном протоколе HTTP.

Указанные выше ограничения и некоторые другие, по-видимому, не подлежат обсуждению.

Другие ограничения, такие как пропускная способность (40 Гбит / с), количество веб-распределений на учетную запись AWS (200), являются просто ограничениями по умолчанию, которые вы могли бы потенциально увеличить, отправив запрос в службу поддержки AWS с описанием вашего варианта использования, но это не будь случай, здесь.

Angular не может вызвать API напрямую из-за проблем с аутентификацией.

Этот вид звучит как случай ajax-вызовов к прокси REST API, который извлекает данные из источника, требующего авторизации, поэтому код на стороне браузера не должен... возможно, что-то в Lambda за API-шлюзом.

Другие вопросы по тегам