AWS ALB(Application Load Balancer)に長いURLリクエスト投げてみたら、以下のテーブルのように、ある長さのリクエストからエラーが出ることを発見しました。
URLの長さ(Byte) | HTTPレスポンスコード |
---|---|
〜16446 | 200 OK |
16447 | 500 Internal Server Error |
16448〜 | 414 Request-URI Too Large |
AWSのサポートに聞いたら以下のような制限があることを教えてもらいました。仕様なのでパラメータ等での変更はできないようです。また、旧ELB(Classic Load Balancer)にはこの制限が無いようです。
HTTP headers for Application Load Balancers have the following size limits:
Request line: 16K
Single header: 16K
Whole header: 64K
How Elastic Load Balancing Works - Elastic Load Balancing
なおApacheやNginxにもそれぞれ同様の制限項目があります。もしどうしても長いGETリクエスト受けたければALB配下のEC2側も設定を確認しておいた方が良いと思います。
Apache
LimitRequestLine 8190
https://httpd.apache.org/docs/2.4/ja/mod/core.html#limitrequestline
Nginx
large_client_header_buffers 4 8k; client_header_buffer_size 1k;