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

作者:小白 2-0-1-9 时间:2023-11-27 16:45:37 

问题原因

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方式的简洁和缓存比较能说服我。

来源:https://blog.csdn.net/weixin_45342958/article/details/105490608

标签:Springboot,get,参数
0
投稿

猜你喜欢

  • Android AlertDialog(对话框)实例详解

    2023-07-19 11:37:55
  • 分享C#中几个可用的类

    2023-08-10 10:47:17
  • C#函数式编程中的标准高阶函数详解

    2021-06-09 06:27:07
  • java中dart类详细讲解

    2022-01-23 13:01:13
  • 详解C#如何实现隐式类型转换

    2022-08-30 06:32:42
  • 深入了解ViewPager2的使用

    2021-07-06 17:26:26
  • 浅谈三分钟学习Java泛型中T、E、K、V、?的含义

    2022-09-01 20:12:38
  • SpringBoot嵌入式Servlet容器与定制化组件超详细讲解

    2023-03-31 09:07:05
  • Android实现ViewPage轮播图效果

    2023-08-12 16:25:43
  • Java Swing中JList选择事件监听器ListSelectionListener用法示例

    2021-06-21 22:52:01
  • C#使用iCSharpcode进行文件压缩实现方法

    2022-09-28 06:25:32
  • 浅谈C#设计模式之工厂模式

    2021-12-17 16:06:48
  • 详解Spring Bean的集合注入和自动装配

    2023-02-18 15:02:58
  • JAVA读取属性文件的几种方法总结

    2023-10-21 04:36:40
  • Android定时器实现的几种方式整理及removeCallbacks失效问题解决

    2022-10-04 13:21:50
  • Android实现ListView分页加载数据

    2023-11-09 10:05:45
  • Android多媒体应用使用MediaPlayer播放音频

    2023-07-08 15:37:52
  • Mybatis自动创建表和更新表结构

    2022-11-17 19:43:00
  • 浅谈Java slf4j日志简单理解

    2021-07-07 15:49:15
  • 详解Java volatile 内存屏障底层原理语义

    2023-05-08 19:25:47
  • asp之家 软件编程 m.aspxhome.com