当前位置: 移动技术网 > IT编程>开发语言>Java > 解决Springboot get请求是参数过长的情况

解决Springboot get请求是参数过长的情况

2020年09月18日  | 移动技术网IT编程  | 我要评论
问题原因springboot get请求是参数过长抛出异常:request header is too large 的问题错误描述java.lang.illegalargumentexception:

问题原因

springboot get请求是参数过长抛出异常:request header is too large 的问题

错误描述

java.lang.illegalargumentexception: request header is too large

解决方案

请求头超过了tomcat的限值。本来post请求是没有参数大小限制,但是服务器有自己的默认大小。

设置服务器大小:

1.普通tomcat

在server.xml中

<connector connectiontimeout="20000" port="8080" protocol="http/1.1" redirectport="8443" maxpostsize="0" maxhttpheadersize ="102400"/>

处加上

maxhttpheadersize =”102400”

2.springboot

springboot项目更方便了,在application.properties文件中添加

#请求参数过长设置

server.max-http-header-size=102400

补充知识:javaweb - url 中很长的一串请求参数,为什么不采用 post 方式?

get 方法

请注意,查询字符串(名称/值对)是在 get 请求的 url 中发送的:

/test/demo_form.asp?name1=value1&name2=value2

有关 get 请求的其他一些注释:

get 请求可被缓存

get 请求保留在浏览器历史记录中

get 请求可被收藏为书签

get 请求不应在处理敏感数据时使用

get 请求有长度限制

get 请求只应当用于取回数据

post 方法

请注意,查询字符串(名称/值对)是在 post 请求的 http 消息主体中发送的:

post /test/demo_form.asp http/1.1

host: w3schools.com

name1=value1&name2=value2

有关 post 请求的其他一些注释:

post 请求不会被缓存

post 请求不会保留在浏览器历史记录中

post 不能被收藏为书签

post 请求对数据长度没有要求

小雷fansunion

get方式,是浏览器默认方式,访问简单,比如点击一个链接,直接就跳转了。

如果用post,还需要构造表单,程序实现麻烦,用户体验还会收到“不能重复提交表单”等提示,麻烦很多。

get方式,用户直接看到url和参数,复制粘贴,可以方便收藏、转发,而post不行。

网友看法 - 方腾飞

这个原因很多。在很多场景下,用get实现起来更简单,也足够了,比如并发网给其他网站引流需要加些参数,这样方便其他网站统计流量来源,如果用post,并发网就的做一个post提交,会比较麻烦。

割眼看世界

浏览器地址栏打开的默认就是get,所以链接用get很方便。

post的提交需要表单或js提交,麻烦。

get可以使用缓存。

get有利于seo。

华仔的逆袭

get方式的简洁和缓存比较能说服我。

以上这篇解决springboot get请求是参数过长的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网