tomcat修改http长度限制_解决浏览器与服务器请求url长度限制[通俗易懂]

2022-09-25 13:17:45 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、前言

Http中get与post本身是没有受到长度限制的,受到限制是浏览器与服务器对url长度限制。具体说明请阅读我的零一篇文章《关于 HTTP GET/POST 请求参数长度最大值的一个理解误区》。

二、概述

1、服务器限制

我目前使用的服务器一般是tomcat nginx,它们都是通过控制http请求头的长度来进行限制 的,nginx的配置参数为large_client_header_buffers,tomcat的请求配置参数为 maxHttpHeaderSize,都是可以自己去进行设置。

2、浏览器限制

浏览器的限制:每种浏览器也会对url的长度有所限制,

下面是几种常见浏览器的url长度限制:(单位:字符)

IE : 2803

Firefox:65536

Chrome:8182

Safari:80000

Opera:190000

3、cookie长度限制

I.浏览器所允许的每个域下的最大cookie数目。

IE :原先为20个,后来升级为50个

Firefox: 50个

Opera:30个

Chrome:180个

Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

II.浏览器所允许的每个Cookie的最大长度。

Firefox和Safari:4079字节

Opera:4096字节

IE:4095字节

III.服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。

三、解决方案

1、tomcat解决请求头长度过长,修改server.xml配置。

2、nginx解决请求头长度过长,修改nginx.conf配置。

#在http标签下增加

client_header_buffer_size 512k;

large_client_header_buffers 4 512k;

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172538.html原文链接:https://javaforall.cn

0 人点赞