Java++:不要随意使用 Cookie 会引火烧身的

今天也是处理一个bug的时候,发现的这个服务器错误问题。“400 Bad Request” -- nginx/0.6.31

今天有人汇报nginx的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现nginx 400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。

采用nginx服务器的话修改方法:

是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在 nginx.conf 中的 client_header_buffer_size (默认1k)

若cookie太大,可能还需要调整large_client_header_buffers (默认4k),该参数说明如下:

请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)

nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

/usr/local/nginx/conf   在这个路径下面,修改nginx.conf

复制代码
http
{
   include  mime.types;
   default_type  application/octet-stream;
   server_names_hash_bucket_size 128;
   client_header_buffer_size 16k;  //这里默认是4K,改大一点就好了
}
 
实例配置:
复制代码
http
{
 
**********
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
**********
}

后端 springboot 配置:

 server: max-http-header-size: 64KB

这个 cookie 最大设置到 32k ,超过也会报错但不是 400

尽量不要将信息储存到 cookie ,可以存在localstorage里面。

 

posted @   coding++  阅读(71)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示