HTTP客户端错误状态码--4XX
客户端错误:4XX
- 1. 请求"过大"的错误
- 1.1 414 - URI Too Long
- 1.2 431 - Request Header Fields Too Large
- 1.3 413 - PayLoad Too large
1. 请求"过大"的错误
http里请求过大的错误码可以分为三种:
- 请求的url太长,超过了服务器设置的最大长度
- 请求的头部过大, 头部数量过多或单个头部的大小过大
- 请求体的数据过大
1.1 414 - URI Too Long
响应码414 URI Too Long
表示客户端所请求的URI超过了服务器允许的范围
以下是造成这种错误的几种常见的原因
- 当客户端误将POST请求当做GET请求时, 会带上一个较长的查询字符串
- 当客户端坠入重定向黑洞,比如,指向自身后缀的重定向URL前缀
- 当客户端对服务器进行攻击,试图寻找潜在的漏洞时
通常情况下,服务器从socket中读取HTTP报文时,第一件事就是判断请求行长度是否超过自身所允许的范围,这里的请求行=请求方法+请求uri+http版本,以django
自带简单服务器为例, 源码位于:django.core.server. basehttp.WSGIRequestHandler
里,
def handle(self):"""Copy of WSGIRequestHandler.handle() but with different ServerHandler"""self.raw_requestline = self.rfile.readline(65537)if len(self.raw_requestline) > 65536:self.requestline = ''self.request_version = ''self.command = ''self.send_error(414)returnif not self.parse_request(): # An error code has been sent, just exitreturnhandler = ServerHandler(self.rfile, self.wfile, self.get_stderr(), self.get_environ())handler.request_handler = self # backpointer for logginghandler.run(self.server.get_app())
很明显,hander方法的第一行就是用65537的长度去读取请求行,如果请求行的长度大于65537,就报414错误,我修改源码,将这个长度设置为10,然后用postman请求我写的一个demo应用中的接口,看看是不是报414
1.2 431 - Request Header Fields Too Large
1.3 413 - PayLoad Too large
HTTP客户端错误状态码--4XX相关推荐
- http协议常见错误状态码(400,404,500等).
HTTP 是 一 个 在 计 算 机 世 界 里 专 门 在 两 点 之 间 传 输文 字 . 图 片 . 音 频 . 视 频 等 超 文 本 数 据 的 约 定 和 规 范 RFC 规 定 HTTP ...
- HTTP常见的错误状态码
HTTP常见的错误状态码 200:正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200. 201:表示资源被正确的创建.比如说,我们 POST 用户名.密码正确创建了一个用户就可以 ...
- HTTP请求错误状态码大全status code: 404
这个是更加全面的HTTP请求错误状态码大全链接地址:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,下面只是常出现的部分. 1xx(临时响 ...
- boost::asio异步模式的C/S客户端源码实现
异步模式的服务器源码 //g++ -g async_tcp_server.cpp -o async_tcp_server -lboost_system //#include <iostream& ...
- zookeeper 客户端_zookeeper进阶-客户端源码详解
流程图 先看一下客户端源码的流程图 总体流程 总体流程 开启SendThread线程 开启EventThread 总结 下面根据源码讲解,大家整合源码和流程图一起看最好,本篇内容比较多建议收藏起来看. ...
- 运维-nginx +php 错误状态码说明
常用 nginx 错误码: 正常: 200 正常访问 301 永久跳转访问 302 临时跳转访问 常见错误状态码: 400 ,经常有服务器自己调用 自己的情况 用报400,如高防调用高防,或者lv ...
- grpc-go客户端源码分析
grpc-go客户端源码分析 代码讲解基于v1.37.0版本. 和grpc-go服务端源码分析一样,我们先看一段示例代码, const (address = "localhost:50051 ...
- OAuth2.0授权协议与客户端授权码模式详解
本文来重点讲解下OAuth2.0授权协议与客户端授权码模式 文章目录 什么是OAuth协议 交互过程 客户端授权模式 授权码模式 简化模式 密码模式 客户端模式 接入公司内部系统 后台管理系统 前台业 ...
- HTTP常见的错误状态码(404、401、500、503等)
一些常见的错误状态码 一些常见的状态码为: 一些常见的状态码为: 200 - 服务器成功返回网页 400异常 (错误请求) 服务器不理解请求的语法. 401(未授权).请求要求身份验证. 对于需要登录 ...
最新文章
- ts连接mysql数据库_各种数据库的连接方法
- 密码篇——对称加密—3DES
- 初探GNN-文本表示学习
- RxSwift之UI控件UISlider与UIStepper扩展的使用
- 关于C++中的 多态 问题
- mysql in select 子句_在MySQL select语句IN子句中按值顺序排序?
- java实现将汉字转为拼音并包含音调
- 产品经理们终极面试宝典
- 如何计算页面的浏览率
- PAT甲级-1118 Birds in Forest (25 分)
- PyTorch-LSTM时间序列预测中如何预测真正的未来值
- c++ Lake Counting
- 虹科-将人工智能引入电子组装检测
- rhel7 http实例
- 第十一届吴文俊人工智能科学技术奖颁奖盛典召开,66个项目成果摘得中国智能科学技术奖励最高殊荣
- [讲座论坛] 应对气候变化的中国视角
- 《声呐图像处理》---霍冠英
- mysql 中文模糊查询_解决mysql中文模糊查询问题的方法
- 同花顺Python量化交易接口有什么功能?
- 基于BP神经网络预测日本麻将立直听牌
热门文章
- C++ NAN 异常处理
- Android热更新研究与实现
- iconfont 图标转为字体_iconfont 转换为图标字体
- AI带来的不应该只有焦虑!加油,我们
- C# 特性 System.ComponentModel 命名空间属性方法大全,System.ComponentModel 命名空间的特性...
- 使用MapStruct的@Mapper(componentModel = “spring“, unmappedTargetPolicy = ReportingPolicy.IGNORE)注解 不能重载
- 阿尔·里斯-市场营销的22条法则(22条商规)-22
- DTSD79-W1型三相四线电子式多功能电能表驱动通讯
- MFA强制对齐音频和音素的用法
- 基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资料)