• get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而 实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行...

    get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而 实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制 是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即 如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。

          post 理论上讲是没有大小限制的,HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般 post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较 大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了。

    展开全文
  • POST提交数据太大

    2018-04-08 14:02:53
    POST数据按道理说是没有大小限制的,只是取决于浏览器或服务器的配置,tomcat的解决方式参考方案2.------------------分割线------------------------场景:之前帮客户做...

    2018.4.8号更新

    其实后来最终的解决方案是修改服务器的配置文件。

    POST数据按道理说是没有大小限制的,只是取决于浏览器或服务器的配置,tomcat的解决方式参考方案2.


    ------------------分割线------------------------

    场景:之前帮客户做接口,等真正上线的时候,才发现客户提交过来的数据超出测试范围。因为客户发过来的数据有几张base64编码格式的照片。整体2.2M。

    解决方案:

    方案1:最初网上查发现也有人出现过类似情况。说是request.getParameter底层是一个map,map集合装不了那么大的字符串,所以map集合崩溃了。用request.getInputStream流读出来就好了。该兄正是通过此种方法解决,于是我就信了。map装不了过大数据。

    用request.getInputStream来接收数据。但是这时候又出现个问题。用request.getInputStream的方式,之前的小数据又接收不到了,传过来的为“”。

    方案2:针对方案1出现的问题,考虑到还是不能放弃request.getParameter。于是我又去查map是不是真的有限制大小。查API好像没有说Map有最大限制什么的。不过通过map.size() 方法时,有这样的注解:返回此映射中的键-值映射关系数。如果该映射包含的元素大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE。于是又觉得map有希望了。后来想是不是跟服务器设置有关系?于是通过网上查找,设置server.xml中Connector中的属性,maxPostSize的值。

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" maxPostSize="5120000"/>
    结果验证果然行得通!设置好之后重启项目,原来的大数据则依旧可以通过request.getParameter来获取。

    关于maxPostSize,tomcat默认是2M,单位为字节。maxPostSize="0"则表示不限制大小。

    he maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than or equal to 0. If not specified, this attribute is set to 2097152 (2 megabytes).


    问题1:解决方案:最终为了防止再出现比服务器设置的更大数据,通过结合方案1和方案2,优先request.getParameter,若获取的值为空,则再通过request.getInputStream的方式获取。


    问题2:这个问题解决好之后,还有个小问题。

    就是通过POST提交过来的数据,用流的方式直接获取的话,需要解码。比如一些空格、换行、汉字等。具体写法:

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
                String line = null;
                StringBuilder sb = new StringBuilder();
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
                String parameterValues = <span style="color:#ff0000;">URLDecoder.decode(sb.toString(), "UTF-8")</span>;
    问题3:通过request.getInputStream的方式获取,由于流只能读取一次,但是我POST过来的参数我要在拦截器里面用到相关参数,在controller控制层也要用到相关参数。所以解决方案就是第一次获取到数据后,存放到session里面,适用完成之后释放session。





    展开全文
  • get和post最大传输

    2017-03-03 21:28:39
    get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而 实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行...

    get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而 实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制 是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即 如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。

          post 理论上讲是没有大小限制的,HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般 post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较 大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了。

    展开全文
  • GET 和 POST可传递的最大值到底是什么? 前日,看到这个问题。没有深入了解。我的常识里面get最大传递的值为256b。post是2m。这是很久以前不知在哪看到的。 HTTP中get 与 post 的区别 get方式值的最大长度。首先...

    GET 和 POST可传递的最大值到底是什么?

    前日,看到这个问题。没有深入了解。我的常识里面get最大传递的值为256b。post是2m。这是很久以前不知在哪看到的。

    HTTP中get 与 post 的区别

    get方式值的最大长度。首先是get方式提交的数据最多只能是1024字节,因为get是通过url提交数据,那么get可提交的数据量就url的长度有直接关系。而实际上,url不存在参数上限的问题,HTTP协议规范没有对url长度进行限制。这个限制是特定的浏览器及服务器对它的限制,其限制是2083字节。对于其他浏览器,如netscape fireFox等,理论上没有长度限制,其限制取决于 操作系统的支持。注意这个是限制是整个url长度,而不仅仅是你的参数值数据的长度。

    get方式提交的数据的大小,http协议并没有硬性限制;而是浏览器及服务器,操作系统有关,

    post:

    理论上讲,post是没有大小限制的,http协议也没有进行大小限制。说post 数据量存在80k/100k的大小限制是不准确的,post数据是没有限制的。起限制做做用哪个的服务器的处理长须的处理能力。

      对于asp程序,request对象处理每个表单域时存在100k的数据长度限制。但如果使用requestbinaryread 则没有这个限制。

     由这个延伸出去,对于iis 6.0 ,微软出于安全考虑,加大了限制。我们还需要注意:

       1. iis 6.0 默认asp post数量大为 200kb,每个表单域限制是100kb。

       2.iis6.0默认上传文件的最大达小是4mb。

       3.iis 6.0 默认最大请求是16kb。

       所以上面的80k,100k可能只是默认值而已。但肯定是可以自己设置的。由于每个版本的iid对这些参数的默认值都不一样,具体参考相关iis配置文档。

     post方式,传输数据最大理论上没有限制,取决于服务器器设置和内存大小。

     

     

     

     

    展开全文
  • web开发里面比较常用的数据传递方式有get post,一直以来我都只知道get传递的数据量要比post传递的数据量要少,所以传递大数据量还是要用post,但是 get post 这两种方式最大能传递多少数据呢?一直没搞清楚。 今天...

    各种web开发语言中,各个页面之间基本都会进行数据的传递,web开发里面比较常用的数据传递方式有get post,一直以来我都只知道get传递的数据量要比post传递的数据量要少,所以传递大数据量还是要用post,但是 get post 这两种方式最大能传递多少数据呢?一直没搞清楚。

    今天由于工作的需要,还必须得把这个问题搞明白一下了,下面就说说GET与POST传递数据的最大长度能够达到多少吧。

    get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。

    post 理论上讲是没有大小限制的,HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了

    展开全文
  • 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制 ...
  • 相信很多人都知道post提交是不限制提交的数据量大小的,这是事实。但是,在实际的开发中还是会遇到post提交大数据量,接收端接收不到的问题。最近我就遇到了这么一个问题,折腾了好久最后没办法,于是求救老大,老大...
  • 比较 GET 与 POST 下面的表格比较了两种 HTTP 方法:GET 和 POST。   GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 书签 可...
  • POST根据php.ini文件配置(默认的是8M) GET大小限制在
  • ajax post 提交大量数据

    2017-07-21 01:32:00
    在做个彩票项目的时候,有个业务是需要一个大型的数组通过ajax把一个大型数组传到后台,网上搜了一大轮,发觉说的都是说这种方式...这里做了个10W长度的数据通过post请求传到后台。<!DOCTYPE html> 大量数据测试 </
  • curl post 传输文件

    2018-05-10 11:10:07
    curl -F "a=1&amp;file=@nohup.out" "http://192.168.0.2/aaaa"nohup.out是一个文件
  • 最近做用struts2做项目的时候,发现一个问题,就是当通过POST方式提交数据量过大,在后台接收不到数据,后来通过查看资料,发现tomcat默认传输最大数据限制为2M,最后的解决办法是设大tomcat的conf下的server.xml中...
  • http协议中并没有对POST/GET传输的字段长度进行限制,在监测传输的时候,报错倘若并没有进入后台系统,而是在tomcat拦截下来并且报错的话,那么就需要tomcat中server.xml文件中的配置,扩大maxHttpHeaderSize和...
  • [align=center]使用HttpClient的post提交数据遇到的有关问题[/align] 使用HttpClient的post方式提交数据,json字符串,数据量大的时候,接收方结果死活接收不到。 查询发现是tomcat的默认配置导致的:tomcat6在...
  • 前台与后台的数据交互,都是通过HTML中Form表单来完成的,form提供了两种数据传输方式,get与post提交。 那么他们两个有什么区别呢? 1、get是从服务器上获取数据post是向服务器传送数据。 2、get是把参数数据...
  • JBoss7.X修改max-post-size在网上百度了好久,都不是7.x修改的方式,自己用半吊子的英文水平在官网上找了找,有自己试了试,终于找到了 首先说一下xml文件的路径 ${JBOSS_HOME}>>>standalone>>>configuration>>>...
  • 前日,看到这个问题了。 没有深入了解。我的常识里面get最大传递的值为256b,post 是2M。...首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长...
1 2 3 4 5 ... 20
收藏数 58,175
精华内容 23,270