http://blog.csdn.net/somat/article/details/158707
一、问题起因
在某项目释放后Bug统计的附件《释放后问题》里有:
问题 |
原因 |
分析 |
备注 |
CSV处理时,如果处理的主题数过多,发生URL参数上限的错误; |
可变长度的参数通过URL方式传递,会造成这种潜在的错误发生。 |
1、属于2次发生问题,开发方面没有及时通过checklist等方式向组员传达相关注意事项; |
1、作为经验添加至CheckList中,加强组内共享、检查的效果; |
通过对模块原有GUI状况确认,进行CSV输出时,输出结果很大的场合,CSV文件的内容不能输出。 |
没有考虑到POST数据量存在128K的大小限制。 |
这属于新问题,以前从未遇见过,也没有进行过大规模的数据量测试 |
已将此类检查列出CheckList中 |
做为一种经验积累,这些问题、原因及解决办法将被列入Checklist,那么:
第一个问题:URL参数上限的提法准确吗?上限是多少?
第二个问题:为什么POST时数据有限制?限制是128K吗?
二、问题分析
1、第一个:
1)URL不存在参数上限的说法。该问题实际是IE对URL有长度限制的问题。
2)HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。[参1]
3)“可变长度的参数通过URL方式传递”实际是说提交表单时使用了GET方法,而不是POST方法。造成这种潜在错误的是使用GET方法提交表单数据。因为GET方法将数据放在URL里传递给服务器处理。
4)注意这个限制是整个URL长度,而不仅仅是你的参数值数据长度。
5)既然是IE对URL长度的限制,那么不管是GET方法还是POST方法都存在这个限制。
(关于FORM的GET和POST方法具体内容请参考相关资料[参2])
建议:
1)了解应用程序所在的环境,如Web应用的浏览器、服务器环境,了解其特定的参数限制情况。
2)提交复杂数据尽量使用POST方法。注意FORM不写method属性时默认是使用GET方法。
结论(写入Checklist):
对使用GET方法提交数据时,在IE环境下,需要考虑URL长度2083字节的限制。
2、第二个:
1)理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制。
2)“POST数据量存在128K的大小限制”不够准确,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。
3)对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。对于需要处理超过100K表单域数据的解决办法,请参考后面的[参3]。
4)由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制[参4]。我们还需要注意:
IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
IIS 6.0默认上传文件的最大大小是4MB。
IIS 6.0默认最大请求头是16KB。
IIS 6.0之前没有这些限制。
建议:
1)弄清楚运行环境的默认设定值有助于你的设计及对出现的问题做快速的解决。
2)应该考虑服务器版本。各个版本的IIS对这些参数的默认设定都不一样,有必要的话,找资料整理出一份对照表。这样开发与测试时都有个参考。
3)IIS 6.0的这些限制实际只是它的默认设定值而已,实际应用环境你可以修改它们。
在WINNT/system32/inetsrv/MetaBase.xml里默认定义了:
AspBufferingLimit="4194304" 对应于上传文件最大大小
AspMaxRequestEntityAllowed="204800" 对应于POST最大数据量
...
结论(写入Checklist):
使用ASP时,需要考虑POST表单每个域一般读取处理时有100KB的限制。充分考虑是否使用Request.Binary。
参考资料:
1、Maximum URL Length Is 2,083 Characters in Internet Explorer
2、Hypertext Transfer Protocol--HTTP/1.1
3、PRB: Error "Request Object, ASP 0107 (0x80004005)" When You Post a Form
4、IIS 6.0 Troubleshooting [Client Requests Error-out or Time-out一节]
相关推荐
1. **下载不受限的JCE政策文件**:你可以从Oracle官方网站或者其他可信赖的来源下载不受限制的JCE政策文件,对应于你的JDK版本。对于JDK 8,你需要下载“Unlimited Strength Jurisdiction Policy Files”。 2. **...
本知识点主要围绕IP分片的必要性以及为什么片中数据长度要求为8字节的整数倍这两个方面进行分析。 首先,我们来了解IP分片的背景。IP协议是一种无连接的协议,它不保证数据包的顺序和完整性,所以需要依靠上层协议...
这个限制主要来源于两个PHP配置参数: 1. **post_max_size**: 这个设置决定了通过HTTP POST方法提交的数据的最大大小。默认情况下,这个值可能是8MB(8,388,608字节),但若小于65KB,则可能会导致65K限制问题。 2...
- 计算期是指从项目开始建设到结束整个周期的时间长度。 78. **项目设备寿命期** - 设备寿命期是指设备从投入使用到报废的时间。 79. **项目固定资产折旧** - 固定资产折旧是指固定资产因使用和老化而减少的...
第一行有两个整数L(1 ≤ L ≤ 10000)和 M(1 ≤ M ≤ 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的...
这些约束可能来源于硬件接口的速率要求、系统的最大延迟限制或其他性能指标。 2. **逻辑综合**:使用逻辑综合工具将行为级或RTL(寄存器传输级)代码转换成门级网表。此过程中,综合工具会根据设定的时序约束优化...
**题目**: 在一项计划中咨询工作预计了三个星期,但这项工作实际完成只用了两个星期,请计算偏差。 - A15% - B33% - C75% - D67% **解析**: 偏差计算公式为:\[ \text{偏差百分比} = \left( \frac{\text{预计时间} ...
这个问题来源于LeetCode,一个在线编程练习平台,常用于测试和提升程序员的算法能力。下面我们将深入探讨这个字符串相加的算法及其关键知识点。 首先,我们要注意到题目对输入字符串的限制: 1. 两个字符串的长度...
控制传输和批量传输是USB通信中的两个重要方面,掌握它们的特点有助于提高设备开发和调试的效率。同时,了解这些细节也有助于开发者更好地优化USB设备的性能和稳定性。 通过本篇文档的学习,读者能够更加熟悉USB...
1. **构建距离矩阵(Distance Matrix)**:对于两个长度不同的序列X和Y,计算所有可能的对应点之间的距离,形成一个矩阵。 2. **边界约束(Boundary Constraints)**:为了防止序列两端的过度拉伸或压缩,通常会在矩阵...
本章节重点介绍了问卷设计和抽样技术两个核心概念。 **第六章 问卷设计** 问卷设计是市场调查中的重要环节,它涉及到一系列精心构造的问题,旨在实现调研目标,收集所需数据。一个优秀的问卷应具备以下标准: 1. ...
蚂蚁在选择路径时会考虑两个因素:信息素浓度和路径的长度。随着时间的推移,信息素会逐渐蒸发,同时蚂蚁在经过某条路径时会留下新的信息素,这样就形成了一个动态优化过程。 在“基于蚁群算法车辆路径问题研究”中...
### 城市公共设施项目贷款重点分析 #### 一、城市公共设施行业开展规划和信贷政策要点 ##### (一)城市公共设施行业发展规划 **1. 公共设施行业概况** 公共设施行业覆盖了城市道路桥梁及配套工程、城市垃圾处理...
2. **遗传算法**:遗传算法是一种启发式搜索方法,灵感来源于自然进化过程。它通过模拟自然界中的遗传和进化机制来求解优化问题。主要步骤包括初始化种群、适应度评估、选择、交叉、变异和替换等。 3. **多目标优化...
2-OPT的名称来源于它每次操作最多反转路径中的两条边。这种策略可以有效地探索附近的解空间,寻找局部最优解。 在提供的压缩包文件中,有两个源代码文件:2opt.c和2opt-pa.c。2opt.c是串行版本的2-OPT算法实现,而2...
在时间序列分析中,两个序列的长度可能不相同,而且它们的对应元素之间的距离也可能随时间而变化。DTW通过创建一个扭曲路径来解决这个问题,这个路径允许序列在时间轴上“拉伸”或“压缩”,从而找到最佳的配对方式...
DNA分析技术主要包括聚合酶链反应(PCR)、限制性片段长度多态性(RFLP)、短串联重复序列(STR)分析和单核苷酸多态性(SNP)分析等方法。PCR是最常用的技术之一,它能够将微量的DNA样本复制成大量的副本,使得后续分析更为...
通过对单元格设置数据类型、大小范围或长度限制,用户可以确保输入的数据是符合预期要求的。例如,在学籍管理中,可以限制学号的长度必须是特定的数字,或者成绩的取值范围必须在0到100之间。这样的设定极大地降低了...
- 实验的理论基础可能来源于数据结构相关的书籍,特别是关于图的存储结构(如邻接表)和图的遍历算法(DFS和BFS)的部分。 通过这个实验,学生不仅巩固了对图的基本概念的理解,还深化了对DFS和BFS算法的实际应用...
总结,无桥Boost-PFC电路的EMI分析是一个涉及多方面知识的复杂过程,包括基本的EMI理论、电路工作原理、分析方法、抑制技术和合规性测试。设计者需要深入了解这些知识点,并结合实践经验来优化电路设计,以达到高...