详解各版本Web服务器限制请求体大小的方法

这篇具有很好参考价值的文章主要介绍了详解各版本Web服务器限制请求体大小的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们在上传大文件的时候通常会把请求体大小限制设置的很大,但平常没有这种业务需求的时候一般就会做出限制,避免异常请求的进入,我们该怎么去设置这个限制呢?

一般来说,Linux服务器没有直接限制请求参数包大小的限制。但是,通常会设置一些配置来限制请求大小,这些配置通常在Web服务器或应用服务器上进行设置,比如Nginx和Tomcat

如何限制请求体大小

1.Nginx

1.1 Nginx 1.12及以下版本

在1.12及以前版本的Nginx中,请求体限制是由ngx_http_core_module模块内的client_max_body_size属性控制的

该指令的默认值为0,表示没有限制,如果要做限制需要在Nginx配置文件中添加如下代码:

http {
  client_max_body_size 10m;
}

其中10m表示请求体的最大大小为10MB

1.2 Nginx 1.13及以上版本

在Nginx 1.13及以后的版本中,请求体大小限制是由ngx_http_core_module模块内的client_body_buffer_size和client_max_body_size属性控制的

client_body_buffer_size

表示Nginx将请求体缓存到内存中的大小阈值,默认为8KB

client_max_body_size

表示请求体的最大大小限制,默认值仍为0,表示没有限制

要设置请求体大小限制,需要在Nginx配置文件中添加如下代码:

http {
  client_body_buffer_size 16k;
  client_max_body_size 10m;
}

其中 client_body_buffer_size 表示将请求体缓存到内存中的大小为16KB

而 client_max_body_size 表示请求体的最大限制为10MB

ps:在Nginx 1.13及以后版本中,如果请求体的大小超过了client_body_buffer_size指定的值,Nginx会将请求体缓存到磁盘中,因此还需要确保磁盘空间足够大以存储请求体缓存

2.Tomcat

2.1Tomcat 8.0及以下版本

在server.xml文件中,添加以下配置:

<Connector port="8080" maxHttpHeaderSize="8192" 
maxPostSize="20971520" maxThreads="150" minSpareThreads="25" 
maxSpareThreads="75" enableLookups="false" redirectPort="8443" 
acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

maxPostSize表示最大请求体大小,单位为字节,默认为2097152字节(2MB)

maxHttpHeaderSize表示HTTP请求头大小,单位为字节,默认为8192字节(8KB)

2.2 Tomcat 8.5及以上版本

在server.xml文件中,添加以下配置:

<Connector port="8080" maxHttpHeaderSize="8192" 
maxSwallowSize="20971520" maxThreads="150" minSpareThreads="25" 
maxSpareThreads="75" enableLookups="false" redirectPort="8443" 
acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

在Tomcat 8.5及以上版本中,maxPostSize参数已被废弃,由maxSwallowSize代替

maxSwallowSize表示最大请求体大小,单位为字节,默认为2097152字节(2MB)

ps:maxSwallowSize包括HTTP请求头和请求体的大小,所以如果需要更改请求体大小限制,需要将maxHttpHeaderSize参数设置为较小的值(如2048),以便增大maxSwallowSize

总结

无论采用哪种Web服务器,能够对请求体进行限制,可以防止一些可能的非法或不正常请求

如果请求体大小超出了限制,Web服务器会返回“HTTP Status 413 - Request Entity Too Large”

保护服务器免受请求体的过度负荷和潜在攻击,确保系统的稳定性和安全性文章来源地址https://www.toymoban.com/news/detail-716587.html

到了这里,关于详解各版本Web服务器限制请求体大小的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • php连接到 Web 服务器方式和php版本选择

    1、如何将 PHP 连接到 Web 服务器? web 服务器可以通过三种方法来利用 PHP 生成 web 页面。 第一种方法是将 PHP 自以为 CGI“包装器”用作一个单独运行的语言解释器(CGI Wapper)。当以这种方法运行时,PHP 会为向 web 服务器的每个 PHP 页面请求创建 PHP 解释器的实例,并在每个请求的

    2024年02月11日
    浏览(44)
  • linux 服务器执行post请求 curl命令详解

    curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造http request报文,curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。 基本语法: curl [option] [url] 实际用法 PO

    2024年02月02日
    浏览(42)
  • 云计算项目四:部署Git版本控制系统 | 优化Web服务器

    前序文章: https://blog.csdn.net/shengweiit/article/details/135193074 部署git版本控制系统,管理网站代码 基于ssh协议的服务器 基于git协议的服务器 基于HTTP协议的服务器 上传代码到版本库 1. 安装软件包,创建空仓库

    2024年01月24日
    浏览(51)
  • 在局域网搭建一个带 web 操作页面的 git 版本服务器 - Gitlab

    以下内容为本人的著作,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/Br0ETd_aNffEZoTAba03Bw 最近到了新团队,只有几部新电脑,然后啥也没有了。老江说需要一个管理工程代码的 git 版本服务器,还说他以前用过 gitlab,于是我就自告奋勇接下了锅,在

    2024年01月19日
    浏览(50)
  • .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理服务器监控HTTP请求

    关于Titanium.Web.Proxy详细信息可以去这里仔细看看,这里只记录简单用法 NuGet直接获取Titanium.Web.Proxy 配置 与其说是配置,不如就说这一部分就是未来你需要使用的部分,想知道具体每个部分是干什么的就去看原文链接 全放过来太占地方 最后的 Console.Read(); 是一个等待函数,你

    2024年02月09日
    浏览(54)
  • Python-Python高阶技巧:HTTP协议、静态Web服务器程序开发、循环接收客户端的连接请求

    当前版本号[20231114]。 版本 修改说明 20231114 初版 1.1 网址的概念 网址又称为URL,URL的英文全拼是(Uniform Resoure Locator),表达的意思是 统一资源定位符 ,通俗理解就是网络资源地址。 URL地址:https://www.itcast.com/18/1122/10/E178J2O4000189FH.html 1.2 URL的组成 域名 : IP地址的别名 ,它是用

    2024年02月04日
    浏览(63)
  • WEB通讯技术。前端实现SSE长连接,nodejs+express搭建简单服务器,进行接口调试,通过curl请求数据

    长连接(Keep-Alive)是一种HTTP/1.1的持久连接技术,它允许客户端和服务器在一次TCP连接上进行多个HTTP请求和响应,而不必为每个请求/响应建立和断开一个新的连接。长连接有助于减少服务器的负载和提高性能。 长连接的HTTP请求方法与普通HTTP请求方法相同,可以使用GET、P

    2024年02月09日
    浏览(49)
  • 关于windows server 2003 web服务器搭建详解(内涵步骤)

    关于windows server 2003 web服务器搭建 实验环境:windows server 2003(设置两个网卡),win 7或xp系统,都在同一网段下测试 我的服务器和客户机均为NAT模式,网段为192.168.19.0 步骤如下: 1、安装web服务器组件 2 、安装完成后打开web服务器,Internet信息服务-服务器名-网站-单击右键-新

    2024年02月09日
    浏览(42)
  • Java | 详解 创建Web项目、配置Tomcat服务器、实现登录效果

    目录 一、相关工具及技术         1、相关工具         2、相关技术         3、相关 jar 包 二、IDEA 创建 web 项目         1、创建空项目         2、classes目录和lib目录配置         3、tomcat 服务器配置 三、MySQL 配置         1、登录 mysql         2、创建 user 表      

    2024年02月03日
    浏览(54)
  • Spring基础(Web-MVC)——在idea中新建springWeb项目 & 浏览器请求 和 服务器响应 & SpringMvc文件相关

    mvc是啥,springMvc是啥,如何搭建springWeb项目, 在springMvc下的request和response怎么发请求,怎么进行响应? springMvc处理文件相关:上传文件,uuid改名,静态资源映射,yaml配置路径,spring配置文件初步; 表现(视图)层:WEB层,用来和客户端进行数据交互的。 servlet-controller 业务层

    2024年02月03日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包