๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[HTTP] 400 error (Request header too large)

๐Ÿ”‘ Basic Concept/HTTP

     

    ์ƒํ™ฉ

    ์—…๋ฌด์ค‘์— GET๋ฐฉ์‹์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธธ๊ฒŒ ์…‹ํŒ…ํ•ด์„œ ์ „๋‹ฌํ–ˆ์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

     

    400 error
    Request header too large

    ์š”์ฒญ ํ—ค๋”๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๋‹ค๋Š” ์˜๋ฏธ์ธ๋ฐ GET๋ฐฉ์‹์œผ๋กœ query string ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์…‹ํŒ…ํ–ˆ์„ ๋•Œ ์ตœ๊ทผ์—๋Š” ๊ฑฐ์˜ ์ œํ•œ์ด ์—†์„ ์ •๋„๋กœ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์กŒ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ๋ณ„๋กœ ๊ธธ์ง€๋„ ์•Š์€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ด๋Ÿฐ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ๋‹ค๋Š”๊ฒŒ ์กฐ๊ธˆ ์ด์ƒํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง๋ฅผ ํ•ด๋ณด๋‹ˆ ์„œ๋ฒ„ ์„ค์ •์— ๋‹ต์ด ์žˆ์—ˆ๋‹ค.

     

    ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

    server.xml์— Connectorํƒœ๊ทธ์— maxHttpHeaderSize๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด๋œ๋‹ค. ์ ๋‹นํ•œ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋ฉด๋˜๋Š”๋ฐ ๋‹จ์œ„๋Š” KB์ด๋‹ค. ๋”ฐ๋ผ์„œ 3MB๋ฅผ ์…‹ํŒ…ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.

    (tomcat์€ ๋ฒ„์ „๋ณ„๋กœ ๋‹ค๋ฅด๊ธด ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 8KB ~ 48KB ์ •๋„๋ผ๊ณ  ํ•œ๋‹ค.

     

    3MB = 3 * 1024 * 1024 = 3145728
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"
                   maxHttpHeaderSize="3145728" />

     

    ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ด์ฃผ๊ณ  tomcat ์„œ๋ฒ„๋ฅผ ๋‚ด๋ ธ๋‹ค๊ฐ€ ๋‹ค์‹œ ์˜ฌ๋ฆฌ๊ณ  ๋‹ค์‹œ ์š”์ฒญํ•ด๋ณด๋ฉด ์•„์ฃผ ์ž˜ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.