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

 更新时间:2020年09月17日 14:52:34   作者:小白 2-0-1-9  
这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

问题原因

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请求是参数过长的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 利用Java写一个学生管理系统

    利用Java写一个学生管理系统

    今天这篇文章就给给大家分享利用Java写一个学生管理系统吧,先写一个简单的用List来实现学生管理系统:
    2021-09-09
  • Java中Optional类及orElse方法详解

    Java中Optional类及orElse方法详解

    这篇文章主要为大家介绍了Java中Optional类及orElse()方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • SpringBoot如何基于POI-tl和word模板导出庞大的Word文件

    SpringBoot如何基于POI-tl和word模板导出庞大的Word文件

    这篇文章主要介绍了SpringBoot如何基于POI-tl和word模板导出庞大的Word文件,poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库
    2022-08-08
  • MyBatis入门初体验之使用大全(2)

    MyBatis入门初体验之使用大全(2)

    这篇文章主要介绍了MyBatis入门初体验之使用大全(2)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Java流程控制语句最全汇总(下篇)

    Java流程控制语句最全汇总(下篇)

    这篇文章主要介绍了Java流程控制语句最全汇总(下篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为下篇,需要的朋友可以参考下
    2023-01-01
  • Java 切割字符串的几种方式集合

    Java 切割字符串的几种方式集合

    这篇文章主要介绍了Java 切割字符串的几种方式集合,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java深入解析接口interface

    Java深入解析接口interface

    接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成,本文给大家介绍Java接口,感兴趣的朋友一起看看吧
    2022-06-06
  • Java迭代器遍历list的方法及代码分析

    Java迭代器遍历list的方法及代码分析

    在本篇内容里系小编给大家分享的是一篇关于Java迭代器遍历list的方法总结内容,有需要的朋友们可以参考学习下。
    2022-11-11
  • 浅谈java随机数的陷阱

    浅谈java随机数的陷阱

    这篇文章主要介绍了浅谈java随机数的陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 解读Spring定义Bean的两种方式:<bean>和@Bean

    解读Spring定义Bean的两种方式:<bean>和@Bean

    这篇文章主要介绍了Spring定义Bean的两种方式:<bean>和@Bean,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论