web 400 bad request原因及解决办法
来源:互联网 发布:ubuntu高级选项怎么用 编辑:程序博客网 时间:2024/05/22 03:06
直入主题。
一、现象
访问web页面,报http 400 bad request,后台服务无日志信息。
请求截图如下所示:
nginx日志如下所示:
二、原因探索
通过测试及日志定位排除了后台程序本身错误的可能性,现将出现问题的可能原因定位在浏览器端请求本身。
请求详细内容如下所示:
对比该页面正确与白屏的请求详细内容发现,两类请求中仅cookie一项不同,如下图所示
对比以上两项,莫非是cookie大小引发了bad request?
百度得知:
GET IT。通过手动模拟cookie大小过大的情况,确实会引发异常。
究其原因,浏览器不允许两个完全相同的key=value段放入cookie中,但是当两个key=value段域名不同时,是可以放入同一cookie的。
上面出错的cookie是把两个完全相同(每个大约4k字节)但是从属不同域的key=value段,放入请求中的cookie中,导致cookie过大,出现400 bad request。
三、cookie使用经验:
1. 尽量让cookie的权限范围小,能子域可见不设为主域
2. 所有页面有效的cookie,失效时间够用就好,别设太长太多,免得每个请求都带一些无用的cookie
附带另外一种400 bad request的情况:点击打开链接
0 0
- web 400 bad request原因及解决办法
- ScrapyJS Splash 400 bad request原因及解决方法
- 网页出现HTTP 400 Bad Request,Size of a request header field exceeds server limit.原因及解决方法
- “400 Bad Request”解决办法及Unity下载文件保存到本地
- SpringMVC Date Bad request 解决办法
- 浏览网页时不停出现400 Bad Request的解决办法
- SpringMVC处理Date成员对象报400 Bad Request解决办法
- request.getParementer()获取不到值的原因及解决办法
- nginx 400 Bad Request
- http 400 Bad Request
- 400 bad request
- NetworkError: 400 Bad Request
- django -- Bad Request (400)
- 400 Bad Request
- ajax 400 bad request
- 400 Bad Request
- Error 400 Bad Request
- 400 (bad request) post
- 工作
- 向Android系统自带的联系人界面添加数据
- 网络编程--python 实现简单的UDP客户端和服务端
- Git log diff config高级进阶
- 过滤链FilterChain,请求与响应--chain.doFilter()代码前后
- web 400 bad request原因及解决办法
- php 制作二维码
- iphone系统架构以及各层提供的主要服务
- ImageSwitcher 使用方法
- Android客户端抓包笔记
- 计算机视觉领域重要资源
- 做大的艺术 - 大型网站的架构设计
- Android 修改系统文件 访问权限
- C语言拾遗:ifndef/define/endif 与 #pragma once