HTTP:400 Request Header Or Cookie Too Large

这篇具有很好参考价值的文章主要介绍了HTTP:400 Request Header Or Cookie Too Large。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题描述

有时候在访问页面时会遇到400 Bad Request(Request Header Or Cookie Too Large)错误,如下图所示:
400 request header or cookie too large,开发问题,# 浏览器问题,http,服务器,前端

二、可能性分析

先了解一下关于400 Bad Request状态码的解释:

由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。

结合Request Header Or Cookie Too Large,可以知道可能是:

由request header过大所引起,request过大,通常是由于cookie中写入了较大的值所引起的。(如果不清楚cookie是什么,点击查看 Cookie的相关知识

三、代码走查

搜索document.cookie,可以看到如下代码:
400 request header or cookie too large,开发问题,# 浏览器问题,http,服务器,前端

重点看上述代码第52行,document.cookie = …

这段代码会被反复运行,并且可能会有不同的 companyId|token的key值出现。这就有可能导致多次运行后cookie太大。

四、问题重现与验证

如何简单的重现问题呢?根据cookie的相关知识,我们可以访问同一域名下的随便一个可访问的页面,然后通过浏览器控制台运行一个循环对document.cookie进行反复赋值(key值不同的cookie),最后刷新页面就可以看到。

for(var i = 0; i<40; i++) {
    document.cookie = "Ij7I"+i+"|token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2twYXBpLWNzLmNranIwMDEuY29tL2FwaS9wYy9sb2dpbi9oYXNRcmNvZGVMb2dpbmVkIiwiaWF0IjoxNjUyNjY1NzEyLCJleHAiOjE2NTUyNTc3MTIsIm5iZiI6MTY1MjY2NTcxMiwianRpIjoiaUxBY2M1TmZrTE0weENFeiIsInN1YiI6bnVsbCwiYyI6ImxqN2wiLCJ1IjoiOHhnNzhqbjkifQ.Q45s4lwTaS5Z1zo94ugt0QRVZNb0HIjvvt7m2GHjtYQ"+"i"
}

最终结果:
400 request header or cookie too large,开发问题,# 浏览器问题,http,服务器,前端

为什么会这样呢?我们来了解一下documet.cookie。

先思考:可否直接使用document.cookie=''来清空cookie?
答案是不可以。原因就是,document.cookie = newCookie 只能对一个cookie进行设置(新增)或更新,它与我们对变量的重新赋值虽然在形式上是一样,但实质结果是不一样的。

解决方案

第一步:修正代码错误,正确删除cookie。

第二步:消除客户端影响。对于已造成影响的客户端,要区分情况处理:

①如果客户端能清理cookie缓存,则进行清理。如果没有工具进行清理或者不便已清理的,则可以提供修复功能或者可以进行修复的页面。

②修改nginx服务器配置文件nginx.conf,增大请求缓冲,根据需要调整 client_header_buffer_sizelarge_client_header_buffers文章来源地址https://www.toymoban.com/news/detail-767126.html

client_header_buffer_size 32k;
large_client_header_buffers 4 32k;

到了这里,关于HTTP:400 Request Header Or Cookie Too Large的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Error parsing HTTP request header java.io.EOFException: null

    问题: 我用postman请求就是正常的,但是用java的程序去请求就会报错这个: 2024-01-17 16:38:52.077 DEBUG [http-nio-8885-exec-1][org.apache.coyote.http11.Http11Processor]182 Error parsing HTTP request header java.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1259) at o

    2024年01月21日
    浏览(44)
  • HTTP Header定制,客户端使用Request,服务器端使用Response

     在服务器端通过request.getHeaders()是无效的,只能使用response.getHeaders()。  

    2024年02月16日
    浏览(55)
  • 如何解决HTTP请求解析错误:o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通Golang》 — Go语言学习之旅! 领域矩阵 : 🌐 猫头虎技术领域矩阵 : 深入探索

    2024年02月21日
    浏览(46)
  • 413 Request Entity Too Large

    字面意思很简单,就是文件太大了 先说解决方法!!! 如果是使用NGINX做代理,NGINX默认最大上传是1M如果超过就无法上传。 可以在配置写入如下: 在最后加上 client_max_body_size 100m; ,记得最后带上分号结束。 本来在本地调试页面时候,因为自己服务器本身带宽就很小,上传

    2024年02月10日
    浏览(40)
  • ES报错:[parent] Data too large, data for [<http_request>] would be larger than limit of XXXX

    当es这个错误的时候 : [parent] Data too large, data for [http_request] would be larger than limit of [23941899878/22.2gb], with { bytes_wanted=23941987633 bytes_limit=23941899878 } 通常原因是 在于fielddata的内存被占用完了,其他索引无法分配更多的内存。 另外,查询语句写的不好,单个请求聚合查询的数据太

    2024年02月09日
    浏览(44)
  • 关于uniapp request全局增加header的问题

    因为小程序需要在接口增加token及openid判断登录状态,而之前做的接口又太多,需要统一添加,思路是统一拦截请求,然后给每个请求的header加上token再请求,可以使用uni.addInterceptor进行request拦截 官方参数说明: 参数名 类型 必填 默认值 说明 平台差异说明 invoke Function 否 拦

    2024年02月16日
    浏览(44)
  • 413 Request Entity Too Large问题解决方法

    最近我们有个小程序需求是现场拍照提取照片中的有效信息,上传图片只能通过现场拍照,由于目前手机像素普遍较高,导致上传接口出现413 Request Entity Too Large,上传文件过大引起nginx代理报错。 针对这个问题,解决方案是: 项目配置文件修改,比如springboot项目中的applic

    2024年02月16日
    浏览(38)
  • 查询ES报错429 circuit_breaking_exception,“reason“:“[parent] Data too large, data for \[<http_request\>\]

    查询ES报错:429 Too Many Requests;circuit_breaking_exception,”reason”:”[parent] Data too large, data for [http_request]“ 问题 :ES查询报错:429 Too Many Requests;circuit_breaking_exception,“reason”:“[parent] Data too large, data for [http_request]” 原因 :ES查询缓存占用内存过大,超过阈值(默认70%),查

    2024年02月12日
    浏览(45)
  • nginx报413 Request Entity Too Large错误解决方案

    原因:使用nginx进行文件操作,该错误表示请求体过大,更改一下nginx的请求体大小就可以了 解决: 在nginx的配置文件中新增: client_max_body_size 1024m; 根据需求设置大小,1024m只是示例; 重新启动 nginx ! 重启方法: 进入sbin目录下启动方式: 配置systemctl的启动方式: * 找不到配置文件的情况

    2024年02月15日
    浏览(35)
  • 解决 nginx 413 Request Entity Too Large(请求实体太大)

    最近把前端部署到nginx上,上传大文件时,报413错误,具体如下 我们可以看到请求的body的大小,在Content-Length后显示,Nginx默认的request body为1M,小于我们上传的大小         找到自己主机的nginx.conf配置文件,打开 在http{}中加入 client_max_body_size 500m; 然后重启nginx /etc/init.d/n

    2024年02月07日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包