zoukankan      html  css  js  c++  java
  • get和post提交数据的差别

    form表单提交,默认method = “get”,所以你在提交数据的时候,最好将此參数指定为method = “post”,否则你在提交大数据的时候,可能会出现异常:

    十二月 31, 2014 2:32:45 下午 org.apache.coyote.http11.AbstractHttp11Processor process
    信息: Error parsing HTTP request header
    Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

     1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?

    切割URL和数据传输,參数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。

    假设数据是英文字母/数字,原样发送,假设是空格,转换为+。假设是中文/其它字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,当中%XX中的XX为该符号以16进制表示的ASCII。

      POST把提交的数据则放置在是HTTP包的包体中。

      2.”GET方式提交的数据最多仅仅能是1024字节。理论上POST没有限制,可传较大量的数据。IIS4中最大为80KB,IIS5中为100KB”??。

      以上这句是我从其它文章转过来的。事实上这样说是错误的,不准确的:
    (1).首先是”GET方式提交的数据最多仅仅能是1024字节”,由于GET是通过URL提交数据。那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上。URL不存在參数上限的问题,HTTP协议规范没有对URL长度进行限制。

    这个限制是特定的浏览器及server对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其它浏览器。如Netscape、FireFox等,理论上没有长度限制。其限制取决于操作系统的支持。

      注意这是限制是整个URL长度。而不仅仅是你的參数值数据长度。[见參考资料5]

      (2).理论上讲,POST是没有限制大小的,HTTP协议规范也没有进行限制大小,说“POST数据量存在80K/100K的限制大小”是不准确的,POST数据是没有限制的。起限制作用的是server的处理程序的处理能力。

      对于ASP程序,Request对象处理每一个表单域时存在100K的数据长度限制。

    但假设使用Request.BinaryRead则没有这个限制。

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

         1).IIS 6.0默认ASP POST数据量最大为200KB,每一个表单域限制是100KB。


         2).IIS 6.0默认上传文件的最大大小是4MB。
         3).IIS 6.0默认最大请求头是16KB。
       IIS 6.0之前没有这些限制。
    所以上面的80K,100K可能仅仅是默认值而已(注:关于IIS4和IIS5的參数,我还没有确认),但肯定是能够自己设置的。

    由于每一个版本号的IIS对这些參数的默认值都不一样。详细请參考相关的IIS配置文档。

  • 相关阅读:
    python string
    python md5使用例子
    Linux 与 Win32 部分API对照表
    使用Doxygen生成libevent document
    CRC32校验算法以及余式表生成
    SQLServer中查询时显示行号的方法
    C#上传文件图片怎么判断格式
    登录注册 分页存储过程及系统存储过程
    SQL Server 批量插入数据的两种方法
    sqlserver得到行号
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7214421.html
Copyright © 2011-2022 走看看