HTTP Status 400

http Status 400 - Bbad request 网站网页经常报 HTTP 400 错误,清缓存后就好了的原因 当网站更新后,服务器的资源或数据格式改变,而本地缓存和 Cookie 未同步更新,再次访问时,浏览器携带的旧数据导致服务器无法正确处理请求,从而返回 400 错误。当网站更新后,服务器的资源或数据格式发生改变,而本地缓存和 Cookie 仍未更新,再次访问时,浏览器携带的旧数据让服务器困惑,导致请求失败。对于 POST 请求,若发送的数据格式与服务器期望的不匹配(如 JSON 格式错误或表单数据未正确编码),服务器将无法解读,最终返回 400 错误。'使用了错误的缓存数据,导致 400 错误。 阅读详情

出现HTTP Status 400大多是因为,jsp的form表单提交的字段类型和后台接收字段类型不匹配造成的(例如,form中为String,后台接收为Date)

Java与Http协议

引言                                         
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。HTTP协议的主要特点是:
[html]  view plain  copy
  1. 1.支持客户/服务器模式。  
  2. 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,通信速度很快。  
  3. 3.灵活:HTTP允许传输任意类型的数据对象。类型由Content-Type加以标记。  
  4. 4.无连接:即每次连接只处理一个请求,处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。  
  5. 5.无状态:无状态是指协议对于事务处理没有记忆能力。   
http1.0协议默认的是非持久连接, HTTP1.1默认的连接方式为持久连接。
非持久连接: 每次服务器发出一个对象后,相应的TCP连接就被关闭,也就是说每个连接都没有持续到可用于传送其他对象。每个TCP连接只用于传输一个请求消息和一个响应消息。

持久连接:服务器在发出响应后让TCP连接继续打开着。同一对客户/服务器之间的后续请求和响应可以通过这个连接发送。HTTP/1.1的默认模式使用带流水线的持久连接。

一、HTTP协议详解之请求

[java]  view plain  copy
  1. //请求行  
  2. POST /reg.jsp HTTP/ (CRLF)         
  3.   
  4. //消息报头  
  5. Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/* (CRLF)  
  6. Accept-Language:zh-cn (CRLF)  
  7. Accept-Encoding:gzip,deflate (CRLF)  
  8. If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)  
  9. If-None-Match:W/"80b1a4c018f3c41:8317" (CRLF)  
  10. User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)  
  11. Host:www.guet.edu.cn (CRLF)  
  12. Connection:Keep-Alive (CRLF)  
  13. (CRLF)  
  14.   
  15. //请求正文  
  16. user=jeffrey&pwd=1234   
以上是http请求的三部:请求行、消息报头、请求正文。
请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF其中 Method表示请求方法(如POST、GET、PUT、DELETE等);Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行。

二、HTTP协议详解之响应篇

[html]  view plain  copy
  1. //状态行  
  2. HTTP/1.1 200 OK (CRLF)  
  3.   
  4. //消息报头  
  5. Cache-Control: private, max-age=30  
  6. Content-Type: text/html; charset=utf-8  
  7. Content-Encoding: gzip  
  8. Expires: Mon, 25 May 2009 03:20:33 GMT  
  9. Last-Modified: Mon, 25 May 2009 03:20:03 GMT  
  10. Vary: Accept-Encoding  
  11. Server: Microsoft-IIS/7.0  
  12. X-AspNet-Version: 2.0.50727  
  13. X-Powered-By: ASP.NET  
  14. Date: Mon, 25 May 2009 03:20:02 GMT  
  15. Content-Length: 12173  
  16.   
  17. //响应正文  
  18. 略  
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
常见状态代码、状态描述、说明:

[html]  view plain  copy
  1. 200 OK      //客户端请求成功  
  2. 400 Bad Request  //客户端请求有语法错误,不能被服务器所理解  
  3. 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用   
  4. 403 Forbidden  //服务器收到请求,但是拒绝提供服务  
  5. 404 Not Found  //请求资源不存在,eg:输入了错误的URL  
  6. 500 Internal Server Error //服务器发生不可预期的错误  
  7. 503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常  

三、HTTP协议详解之消息报头

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行;对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。
1、请求报头
请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。
常用的请求报头
[html]  view plain  copy
  1. Accept请求报头域用于指定客户端接受哪些类型的信息。  
  2. Accept-Charset请求报头域用于指定客户端接受的字符集。  
  3. Accept-Encoding请求报头域类似于Accept,但是它是用于指定可接受的内容编码。  
  4. Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。  
  5. Authorization请求报头域主要用于证明客户端有权查看某个资源。  
Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
2、响应报头
响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。
常用的响应报头
[html]  view plain  copy
  1. Location响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。  
  2. Server响应报头域包含了服务器用来处理请求的软件信息  
3. 实体报头
请求和响应消息都可以传送一个实体。
常用的实体报头
[html]  view plain  copy
  1. Content-Encoding指示已经被应用到实体正文的附加内容的编码。  
  2. Content-Language实体报头域描述了资源所用的自然语言。  
  3. Content-Length实体报头域用于指明实体正文的长度,以字节方式存储的十进制数字来表示。  
  4. Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。  
  5. Last-Modified实体报头域用于指示资源的最后修改日期和时间。  
  6. Expires实体报头域给出响应过期的日期和时间。  

四、补充

1、HTTP协议Content Lenth限制漏洞导致拒绝服务攻击
使用POST方法时,可以设置ContentLenth来定义需要传送的数据长度,例如ContentLenth:999999999,在传送完成前,内 存不会释放,攻击者可以利用这个缺陷,连续向WEB服务器发送垃圾数据直至WEB服务器内存耗尽。这种攻击方法基本不会留下痕迹。
2、为了提高用户使用浏览器时的性能,现代浏览器还支持并发的访问方式,浏览一个网页时同时建立多个连接,以迅速获得一个网页上的多个图标,这样能更快速完成整个网页的传输。HTTP1.1中提供了这种持续连接的方式,而下一代HTTP协议:HTTP-NG更增加了有关会话控制、丰富的内容协商等方式的支持,来提供更高效率的连接。

五.Java利用HTTP协议实现联网和下载

Url的请求连接(Get方式)

[html]  view plain  copy
  1. String currentUrl=“http://www.myWeb.com/login.jsp?userName='Devin'&passWord='mypassword'”; //URL ?后面的内容为HTTP请求的正文  
  2. URL url = new URL(currentUrl);  
  3.    
  4. HttpURLConnection httpurlconnection = url.openConnection();  
  5. //下面的设置对应HTTP请求中的消息报头  
  6. httpurlconnection.setRequestProperty("User-Agent",CommonValues.User_Agent);  
  7. httpurlconnection.setRequestProperty("Accept",CommonValues.Accept);  
  8. httpurlconnection.setRequestProperty("Accept-Charset",CommonValues.Accept_Charset);  
  9. httpurlconnection.setRequestProperty("Accept-Language",CommonValues.Accept_Language);  
  10. httpurlconnection.setRequestProperty("Connection",CommonValues.Connection);  
  11. httpurlconnection.setRequestProperty("Keep-Alive",CommonValues.Keep_Alive);  
  12. httpurlconnection.setConnectTimeout(CommonValues.ConnectionTimeOut);  
  13. httpurlconnection.setReadTimeout(CommonValues.ReadTimeOut);  
  14.                
  15. httpurlconnection.connect();  
  16.               
  17. int responsecode = httpurlconnection.getResponseCode();  
  18.                
  19. if(responsecode == HttpURLConnection.HTTP_OK) //对应HTTP响应中状态行的响应码  
  20. {  
  21.   //操作请求流,这里对应HTTP响应中的响应正文  
  22. }  
  23.                
  24. if (httpurlconnection != null)   
  25. {  
  26.    httpurlconnection.disconnect();  
  27. }  

nginx 报错 HTTP Status 400 – Bad Request 阅读详情

相关推荐

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 574

HTTP Status 400 (HTTP400状态码)

异常信息记录_2019-11-16 HTTP Status 400 – 错误的请求 > ==Type== Status Report > ==描述== 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。 > Apache Tomcat/8.5.46 > 出现400,首先需要想到的是前端页面传来的数据类型与后...

程心诚意_程序媛 13万+

X3850x6 6241 fireware固件升级

登录联想https://datacentersupport.lenovo.com/cn/zc网站,选择system x,x3850 x6,type选择6241 选择驱动及应用程序,BIOS/UEFI 选择lnvgy_fw_uefi_a9e156a-4.90_anyos_32-64.uxz 文件,点击下载 选择IMM2, 下载lnvgy_fw_imm2_tcoo58b-5.80_anyos_noarch.uxz ps:3837和3839会跳转到ibm网站下载 笔记本直连.

zds00virtue的博客 5457

完美解决HTTP 400错误:“status“: 400, “error“: “Bad Request“

本文深入解析了HTTP 400错误的常见原因,展示如何调试和解决这个问题,并结合实际代码示例进行说明。关键点总结:1. **检查URL、方法、头信息、请求格式,包括JSON格式**。2. **确保请求体内容和服务器期望的格式一致**。3. **使用调试工具(cURL, Postman)手动测试,逐步排除错误**。4. **增加日志和异常处理,以获取更具体的错误信息**。通过系统化的调试和逐一排查,你将能够有效解决大多数的400错误问题。希望本文对你解决实际问题有所帮助。

科技改变人类,技术成就未来 3万+

嵌入式开源项目哪里找

对比产生的伤害是经验思考积累下的差距,知道自己不知道什么然后前进去追寻。

quanquanxiaobu的博客 3955

【ROS2】Arduino系列之机器人底盘实现

介绍ros中提供的一个已经封装了的模块: ros_arduino_bridge,该模块由下位机驱动和上位机控制两部分组成,通过该模块可以更为快捷、方便的实现自己的机器人平台

guilin 1486

HTTP Status 400错误解决方法

HTTP Status 400( Bad Request: The server cannot or will not process the request due to .....大致翻译过来就是:这个请求是非法的,导致服务器不接受该请求。这几天在写Android 网络层的请求时遇到的异常,这个时候前端的不要慌,如果传参没有问题那一般就是后台的背锅了。原因及对应的解决方法:1、参数类型不对应。...

义小攻的博客 13万+

构建基于知识图谱的金融风险关联网络可视化系统

知识图谱是一种用于表示实体及其关系的图形结构,能够将分散的数据组织成易于理解和查询的形式。语义性:通过实体和关系的描述,赋予数据语义。结构化:以图的形式组织数据,便于计算机处理。动态性:支持实时更新,能够反映数据的最新状态。风险关联网络是指将金融风险事件、实体及其关系以图形形式表示的网络。关联性:能够展示风险事件之间的相互影响。动态性:能够实时反映风险变化。可视化:便于金融从业者直观理解风险分布。可视化系统是指通过图形界面展示数据或信息的系统。提供直观的数据显示。帮助用户快速理解复杂数据。

AI天才研究院 1061

解析HTTP错误码400 Bad Request及其常见原因与解决方法

在进行web开发过程中,我们经常会遇到各种HTTP错误码。HTTP错误码用于表示服务器对请求的响应状态,帮助我们定位和解决问题。本文将重点解析HTTP错误码400 Bad Request,探讨其常见原因和解决方法。

博客 25万+

使用字体解密技术爬取懂车帝二手车数据

本文介绍了一种针对懂车帝二手车平台的字体加密数据采集方案。通过抓包分析,识别出关键API接口并解析了字体加密机制,成功实现了价格等敏感数据的解密。方案采用requests库发送POST请求获取JSON数据,利用fontTools解析字体映射关系,建立加密字符到真实数字的转换算法。程序支持多页采集,提取车辆名称、价格、年份等12个维度的信息,并自动保存为Excel格式。技术亮点包括动态字体解析、健壮的数据处理和分页优化,为二手车市场分析提供了可靠的数据支持。文中特别强调数据采集的合法合规性,建议仅用于学术研究

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1313

逻辑判断1-逻辑基础知识

判断推理学习笔记

小y的学习笔记 2136

HTTP Status 400 – Bad Request

前言 关于这个错误,多数情况下是前端传的数据格式和后端的不一致导致,但是也有少数情况是我们后端自己的配置出错,这个博文说的就是后端出错的情况,我说的这种情况还有可能伴随着405错误,什么什么not allowed,如果你找网上的问题解决了405之后紧接着就出现了400这个问题,可能就是这个博文所说的问题 问题详情 访问静态网页比如html等,明明没有json格式之类的格式错误,但是就是报错 解...

筱白痴的博客 4万+

【图像超分】论文复现:CVPR 2024 | 轻量化超分 | 窗口注意力改进 | CAMixerSR的Pytorch源码复现,跑通源码,获得指标和超分结果,计算复杂度,架构梳理拆解,逐行注释!

本文介绍了超分辨率重建方法CAMixerSR的代码实现与运行指南。文章亮点包括:完整跑通源码获取PSNR/SSIM指标和可视化结果;详细解析模型架构与关键代码注释,帮助快速复现基线模型。实验部分提供了测试配置文件和训练设置说明,支持2K/4K/8K大图像超分和x2/x4轻量化超分。环境依赖PyTorch和BasicSR框架,数据集包含DIV2K等常用基准。测试结果与论文指标一致,可视化输出保存至指定目录。训练配置可自定义数据集路径、GPU数量等参数。该实现突出了CAMixerSR在降低W-MSA复杂度方面的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 439

HTTP Status400的原因

出现HTTP Status 400大多是因为,jsp的form表单提交的字段类型和后台接收字段类型不匹配造成的  比如后台接收为blob 前台为String

步战兵的专栏 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【spring】HTTP Status 400

使用springMVC3框架时,可能会遇到这个问题,请求后台没有任何响应,页面显示 解决方案: 导致整个问题的原因是前端传入的参数与后端controller方法中的参数不一致导致,本项目中报400,是因为前端传入的参数类型与后端参数类型不一致。 ...

coolcoffee168的专栏 3478

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

http status 400

今天在jsp页面的表单提交后台进行操作时提示400,在后台代码中加入断点也没反应 找了一大圈圈也不知道怎么回事 原因:在页面的表单中表单name对应的是实体类,提交后装入request的实体类中,由于实体类的属性类型与表单提交的类型不同,所以报错,并没有进入到方法体中。   以后做前后端传值:要记得  数据库类型  实体类属性类型  前端传值类型 三者要统一     以下摘抄:htt...

sarida的博客 1903

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HTTP Status 400的排错步骤 与HTTP Status 404的排错步骤

一、前言:一个问题有暗含两个错误:400和404 二、HTTP Status 400 这是在跳转修改的界面出现,跳不过去说明路径相关有问题 上面 400的解决了,然后运行404又出来了 三、HTTP Status 404 看到资源问题,就去看下导包没有,还有就是 Project Strcut的web路径是否争取,这一看连Index都没有进去。 一定要与你所在的文件夹下才行。 Controller层忘记将Contro...

qq_40262372的博客 3041

http status 400,http 400,400 错误

转载:http://blog.youkuaiyun.com/xu_zh_h/article/details/2294233 4 请求失败4xx4xx应答定义了特定服务器响应的请求失败的情况。客户端不应当在不更改请求的情况下重新尝试同一个请求。(例如,增加合适的认证信息)。不过,同一个请求交给不同服务器也许就会成功。4.1 400 Bad Request请求中的语法错误。Reason-Ph...

diaoshaoche9857的博客 530

HTTP Status 400 的解决方法

HTTP Status 400 的解决方法欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入...

qq_43368436的博客 1万+

Controller的HTTP Status 400错误问题

SpringMVC使用JSON做请求数据和@RequestBody直接存入Java实体类对象出现400问题 错误代码如下: <!doctype html> HTTP Status 400 – Bad Request HTTP Status 400 – Bad Request Type Status Report Description The server can...

weixin_43881282的博客 1556

http status 400 bad request

http 请求,路径参数没有进行urlEncoded,出现报错。先把 0-127 号 ASCII 字符全部扫一遍。严格遵循RFC 7230和RFC 3986规范。更注重兼容性而非严格遵循RFC规范。|{}[]"\都属于特殊字符串。对URL字符的检查相对宽松。更注重安全性和标准符合性。HTTP 请求行解析入口。默认允许更多特殊字符。对特殊字符有严格限制。

stay hungry ! stay foolish! 659

nacos报错HTTP Status 400 – Bad Request

nacos,通过节点注册服务报错HTTP Status 400 – Bad Request

Angevin的博客 2258
上一篇: jdbc连接
下一篇: spring配置datasource三种方式 数据库连接
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值