Spring Boot中的max-http-header-size配置

这篇具有很好参考价值的文章主要介绍了Spring Boot中的max-http-header-size配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

默认情况下,Spring Boot Web 应用程序包括一个预配置的嵌入式 Web 服务器。但是,在某些情况下,我们希望修改默认配置以满足自定义要求。
在本教程中,讲解如何在 Spring Boot 2.x 应用程序的application.properties文件中对请求标头进行设置和使用max-http-header-size属性。

Max-HTTP-Header-Size

Spring Boot 支持Tomcat、Undertow和Jetty作为嵌入式服务器。通常,我们在 Spring Boot 应用程序中的application.properties文件或application.yaml文件中进行服务器配置。
大多数 Web 服务器都有自己的一组 HTTP 请求header大小限制。HTTP header值受服务器实现的限制。在 Spring Boot 应用程序中,最大 HTTP header大小是使用server.max-http-header-size 配置的。
Tomcat和Jetty的实际默认值为8kB,Undertow的默认值为1MB。
要修改最大 HTTP header大小,在application.properties文件中进行如下配置:

server.max-http-header-size=1024000

从 Spring Boot 2.1 开始,可使用DataSize可解析值:

server.max-http-header-size=10KB

请求头太大

假设发送的请求的总 HTTP header大小大于max-http-header-size值。服务器以“400 Bad request”错误拒绝请求。在下一个示例中,我们将在日志文件中看到此错误。
让我们创建一个控制器,它有一个名为 token 的header属性:

@RestController
@RequestMapping(value = "/request-header-test")
public class MaxHttpHeaderSizeController {
    @GetMapping
    public boolean testMaxHTTPHeaderSize(@RequestHeader(value = "token") String token) {
    return true;
    }
}

接下来,让我们向application.properties文件添加一些属性:

## Server connections configuration
server.tomcat.threads.max=200
server.connection-timeout=5s
server.max-http-header-size=8KB
server.tomcat.max-swallow-size=2MB
server.tomcat.max-http-post-size=2MB

当我们在token中传递一个大小大于 8kb的字符串值时,得到 400 错误,如下所示:
Spring Boot中的max-http-header-size配置文章来源地址https://www.toymoban.com/news/detail-406464.html

到了这里,关于Spring Boot中的max-http-header-size配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • umi/max如何给请求增加公共header

    直接上代码 根据 umi官网 介绍可知,umi/max仅提供一种运行时配置的方法。 如果是搭配typescript开发的话,最好使用@umi/max提供的RequestConfig类型进行字段控制。 因为是在app.ts中添加的配置,但是并不知道该配置是在何时何地如何被使用的,所以去翻阅了一下umijs/plugin-request源码

    2024年02月09日
    浏览(56)
  • oracle 12c+ max_string_size参数

    一个客户的数据库版本是19.3,在做数据库复制的时候,目标端报错了,查看了一下问题发现表的字段长度有不对,在12c以前我们都知道varchar的长度最大是4000,但是客户这里居然有32767: 把客户的建表语句弄出来,放到我的一个19c的测试环境进行测试: 发现报错了: 这里报错很明显了,是

    2024年04月25日
    浏览(38)
  • Elasticsearch报错:search.max_async_search_response_size

    Elasticsearch报错: Can\\\'t store an async search response larger than [10485760] bytes. This limit can be set by changing the [search.max_async_search_response_size] setting. 导致上述问题的原因是,ES默认response的大小是10mb,而返回的值超过了,解决方案,在confgi/下面找到elasticsearch.yml,如果elasticsearch.yml没有定义

    2024年02月11日
    浏览(79)
  • Spring Boot进阶(75):从容应对HTTP请求——Spring Boot与OkHttp完美结合

            在现代的Web应用程序中,HTTP请求成为了构建客户端和服务器端之间通信的一个重要手段。Spring Boot是一个灵活的Web框架,它提供了与HTTP请求相关的许多特性和API。OkHttp是一个流行的HTTP客户端库,它提供了面向对象的API,以便开发人员轻松地在其应用中进行HTTP请求

    2024年02月06日
    浏览(42)
  • Spring Boot进阶(72):【教程】用Spring Boot和HttpClient实现高效的HTTP请求

      随着系统规模的不断扩大和复杂度的提升,异步通信这种模式越来越被广泛应用于各种分布式系统中。RocketMQ作为一个高性能、高可靠性、分布式消息队列,得到了众多企业的青睐。本文将介绍如何使用Spring Boot整合RocketMQ,实现异步通信。   那么,具体如何实现呢?这

    2024年02月09日
    浏览(45)
  • Spring Boot使用httpcomponents实现http请求

    基于org.apache.httpcomponents的httpclient实现,其它的实现方式都行。 通过ApplicationRunner 实现启动自动运行。 结果:成功返回

    2024年02月16日
    浏览(49)
  • Spring Boot学习笔记(十三)获取HTTP请求参数

    SpringBoot获取参数代码 User类: (1)路径参数 使用@PathVariable获取 (2)URL参数 1、使用@RequestParam获取 2、使用request的getParameter方法获取 3、直接在controller里使用同名的方法参数获取 4、使用实体类的同名属性接收参数 (3)表单参数 获取方式Url参数一样获取。GET请求只能拿到

    2024年02月04日
    浏览(53)
  • 使用Spring Boot实现基于HTTP的API

    Spring Boot是一个用于简化Spring应用程序开发的框架,它提供了一系列的开箱即用的功能,使得快速构建RESTful Web服务和基于HTTP的API变得简单。以下是使用Spring Boot实现基于HTTP的API的步骤: 添加依赖:在Maven项目中,将Spring Boot Web Starter依赖添加到pom.xml文件中。 java 复制代码

    2024年01月25日
    浏览(47)
  • spring boot请求http接口的三种方式

    HttpURLConnection 是 Java 中的 HTTP 客户端实现,,适用于简单的请求需要。 HttpURLConnection主要工作内容:打开socket连接,封装http请求报文,解析请求报文。 OkHttp 是一个第三方的 HTTP 客户端库,它比 Java 标准的 HttpURLConnection 更高效、更实用。主要特点包括: 比 HttpURLConnection 快得多

    2024年02月14日
    浏览(63)
  • Spring BOOT:javax.servlet.http.HttpServletRequest异常

     Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: No primary or single unique constructor found for interface javax.servlet.http.HttpServletRequest] with root cause                  用SpringBoot做验证码的时候,需要用HttpServletReque

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包