IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 服务器配置篇 ━━ IIS7使用https上传发生413错误,响应提示:未显示页面因为请求实体过大 -> 正文阅读

[网络协议]服务器配置篇 ━━ IIS7使用https上传发生413错误,响应提示:未显示页面因为请求实体过大

使用windows自建证书搭建网站,本地127.0.0.1上传正常,但外网上传仅限几十K的文件,若超出大小则提示:
错误:413;响应:“未显示页面,因为请求实体过大。

一度以为是防火墙的问题,排查未果。今终于解决问题,整理如下:

一、原理

官方说明:Client cannot renegotiate request and returns an HTTP 413 error

  • 如果 Web 服务器、网站或站点的单个目录或文件上启用了客户端证书,则客户端在上载较大的文件时可能会看到 HTTP 413 错误。

  • 如果客户端向运行 IIS 6.0(7.0) 的 Web 服务器发送一个较长的 HTTP 请求(如 POST 请求),则 IIS 工作进程可能会收到足以解析请求标头的数据,但不会收到整个请求实体正文。当 IIS 工作进程检测到需要客户端证书以向客户端返回数据时,IIS 尝试重新协商客户端连接。不过,客户端无法重新协商连接,因为它正在等待向 IIS 发送请求中的其余数据。

  • 如果请求客户端重新协商,则必须使用 SSL 预加载功能预加载请求实体正文。SSL 预加载功能将使用用于 ISAPI 扩展的 UploadReadAheadSize 配置数据库属性的值。但是,如果 UploadReadAheadSize 小于内容长度,则返回 HTTP 413 错误,并关闭连接以防止出现死锁。(在以下情况下出现“死锁”:客户端正在等待发送请求实体,而服务器等待完成重新协商,重新协商要求客户端能够发送数据,可是这是无法完成的。)

  • 解决方案是确保没有禁止客户端发送整个实体正文。为此,应将 UploadReadAheadSize 的值更改为大于内容长度的值和最大请求实体主体限制更改为大于文件大小。

二、解决方案

1. 配置UploadReadAheadSize

官方解决方案:IIS7 Tweet #1 : Setting UploadReadAheadSize

  • 使用 Appcmd.exe 命令来修改限制,Appcmd.exe 位于 %WinDir%\System32\Inetsrv
appcmd.exe set config  -section:system.webServer/serverRuntime /uploadReadAheadSize:"49152"  /commit:apphost
  • uploadReadAheadSize 的值逐渐改大来做测试,比如可以98304 -> 196608 -> 393216
    在这里插入图片描述

2. 配置MaxRequestEntityAllowed

  • 在IIS 功能视图 中双击 ASP 模块,打开 限制属性 ,将最后一项 最大请求实体主体限制[maxRequestEntityAllowed]改为你需要的值(例如 1073741824, 1GB)。
  • 同时,请注意如果你上传的文件较大,请考虑 脚本超时[scriptTimeOut] 是否需要更改, 默认是00:01:30,可改成了00:05:30。

在这里插入图片描述

3.修改开发语言自身的限制

比如php,在php.ini中重新配置上传限制,因与本文关系不大,各种开发语言的上传限制不再赘述。

max_execution_time = 300
max_input_time = 600
post_max_size = 8M
upload_max_filesize = 50M
max_file_uploads = 20

三、参考

  1. 安全篇 ━━ windows2008自建证书、IIS配置https服务器及浏览器报错处理
  2. 关于如何设置IIS7的配置,请参考 Configuration Reference <configuration>
  3. csdn学习参考IIS7 https 发生413错误 未显示页面,因为请求实体过大
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:33:32  更:2021-09-26 10:36:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/11 2:11:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码