본문 바로가기
Language/what is

HTTP Header에는 크기 제한이 있는가?

by 하늘둥둥 2021. 8. 27.

HTTP 통신을 사용하다 보면 헤더에 정보를 담아 보내는 경우가 있다.

여기서 궁금한 점이 생겨 검색해보고 찾은 정보를 공유하려 한다.

 

HTTP 헤더에는 크기제한이 있는가?

답은 상황에따라 다르다.

 

기본적으로 HTTP RFC에는 헤더의 최대 크기 제한은 없다.

하지만 우리가 사용하는 웹서버 소프트웨어에서 크기를 제한하고 있다.

 

Here is the limit of most popular web server

Web Server Defualt Limit
Apache 8K
Nginx 4K-8K
IIS 8K-16K
Tomcat 8K – 48K
Node (<13) - 8K; (>13) - 16K

 

No, HTTP does not define any limit. However most web servers do limit size of headers they accept. For example in Apache default limit is 8KB, in IIS it's 16K. Server will return 413 Entity Too Large error if headers size exceeds that limit.

 

자료출처 : https://stackoverflow.com/questions/686217/maximum-on-http-header-values

 

HTTP에는 제한을 두기 않지만 대부분의 웹서버는 제한을 두고 있다.

위의 명시된 사이즈를 넘을경우 413코드를 리턴받게 될 것이다.

 

물론 위의 제한에 맞춰서 해야한다기 보다는 설정값을 변경하면 사이즈를 조절할 수 있다.

 

설정 바꾸는 법

톰켓의 경우 maxHttpHeaderSize 어트리뷰트값을 지정해주면 해당 제한을 바꿀수 있다고 명시되어 있다.

자료출처 : https://tomcat.apache.org/tomcat-8.0-doc/config/http.html

 

 

결론

HTTP 자체적으로 크기제한이 없다.

하지만 Web Server 소프트웨어입장에선 제한하지 않을 경우의 리스크를 감수하기 보단 제한을 둔 후에 사용자가 그 제한을 컨트롤 할 수 있게끔 한것으로 보인다.

댓글