网络报表传参,参数名称长度有什么限制么

补充问题:

网络报表下钻四层,采用get方式传参,第一层定义的参数$p,下钻传到第二层可以用到,下钻到第三层第四层时(第二层里面没有名称为参数p的控件),可以使用第一层定义的参数p么,还需要重新定义么,参数的贯通机制是怎样的的

FineReport xiaomage001 发布于 2021-3-29 20:41 (编辑于 2021-3-30 09:46)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
snrtuemcLv8专家互助
发布于2021-3-30 08:29(编辑于 2021-3-30 08:37)

参考http://blog.sina.com.cn/s/blog_6c68e42d0102yk38.html

传参本省没有长度限制,是浏览器对URL长度有限制

1.    在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的。

IE浏览器对URL的最大限制为2083个字符,

对于Firefox浏览器URL的长度限制为65,536个字符,

Safari (Browser)URL最大长度限制为 80,000个字符。

Opera (Browser)URL最大长度限制为190,000个字符。

Google (chrome)url最大长度限制为8182个字符

Apache (tomcat Server)能接受最大url长度为8,192个字符,但我的测试数据是8,182,10个字符,差别不在,数据具体符合。

Microsoft Internet Information Server(IIS)能接受最大url的长度为16,384个字符。

为了让所有的用户都能正常浏览,我们的URL最好不要超过IE的最大长度限制(2038个字符),当然,如果URL不直接提供给用户,而是提供给程序调用,侧这时的长度就只受Web服务器影响了。

注:对于中文的传递,最终会为urlencode后的编码形式进行传递,如果浏览器的编码为UTF8的话,一个汉字最终编码后的字符长度为9个字符。

因此如果使用的 GET 方法,最大长度等于URL最大长度减去实际路径中的字符数。

2.    POST方法长度限制

理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。

如:在Tomcat下取消POST大小的限制(Tomcat默认2M);

打开tomcat目录下的conf目录,打开server.xml 文件,修改maxPostSize="0" (设为0是取消POST的大小限制)

另外HTTP 协议从未规定 GET/POST 的请求长度限制是多少。

 日常我们所说的请求长度限制是由浏览器和 web 服务器决定和设置的,各种浏览器和 web 服务器的设定均不一样,这依赖于各个浏览器厂家的规定或者可以根据 web 服务器的处理能力来设定。 

GET VS POST:

1、多数浏览器对于POST采用两阶段发送数据的,先发送请求头,再发送请求体,即使参数再少再短,也会被分成两个步骤来发送(相对于GET),也就是第一步发送header数据,第二步再发送body部分。HTTP是应用层的协议,而在传输层有些情况TCP会出现两次连结的过程,HTTP协议本身不保存状态信息,一次请求一次响应。对于TCP而言,通信次数越多反而靠性越低,能在一次连结中传输完需要的消息是最可靠的,尽量使用GET请求来减少网络耗时。如果通信时间增加,这段时间客户端与服务器端一直保持连接状态,在服务器侧负载可能会增加,可靠性会下降。 post 两次发包,get 一次发包的全过程。

2、GET请求能够被cache,GET请求能够被保存在浏览器的浏览历史里面(密码等重要数据GET提交,别人查看历史记录,就可以直接看到这些私密数据)POST不进行缓存。

3、GET参数是带在URL后面,传统IE中URL的最大可用长度为2048字符,其他浏览器对URL长度限制实现上有所不同。POST请求无长度限制(目前理论上是这样的)。

4、GET提交的数据大小,不同浏览器的限制不同,一般在2k-8K之间,POST提交数据比较大,大小靠服务器的设定值限制,而且某些数据只能用 POST 方法「携带」,比如 file。

5、全部用POST不是十分合理,最好先把请求按功能和场景分下类,对数据请求频繁,数据不敏感且数据量在普通浏览器最小限定的2k范围内,这样的情况使用GET。其他地方使用POST。

6、GET 的本质是「得」,而 POST 的本质是「给」。而且,GET 是「幂等」的,在这一点上,GET 被认为是「安全的」。但实际上 server 端也可以用作资源更新,但是这种用法违反了约定,容易造成 CSRF(跨站请求伪造)。

最佳回答
0
zsh331Lv8专家互助
发布于2021-3-29 21:44
参数名称长度?理论上肯定是有限制,但谁没事去测具体允许的长度值~一般情况下,长度肯定是够用的!
最佳回答
0
xiaomage001Lv6初级互助
发布于2021-3-30 09:41

补充问题:

报表四层钻取,传参采用get方法,第三层可以使用第一层传的参数么?第一层传的参数可以贯穿三层或者四层么

  • snrtuemc snrtuemc 参考https://help.fanruan.com/finereport/doc-view-914.html?source=4##5
    2021-03-30 10:03 
  • xiaomage001 xiaomage001(提问者) 回复 snrtuemc 如果第一层的参数要穿到第四层,必须要点继承或者重新定义么,还是第一层定义的参数默认可以在第三层或者第四层使用呢
    2021-03-30 10:13 
  • snrtuemc snrtuemc 回复 xiaomage001(提问者) 如果勾选继承,那么每个都有同一个参数名,就不需要通过url传参了,不然就每次都URL传参下
    2021-03-30 10:15 
  • 1关注人数
  • 669浏览人数
  • 最后回答于:2021-3-30 09:46
    请选择关闭问题的原因
    确定 取消
    返回顶部