zoukankan      html  css  js  c++  java
  • GET方法和POST方法的区别,Get方法到底可传递的字符串的最大长度是多少?

    GET方法和POST方法的区别,Get方法到底可传递的字符串的最大长度是多少?曾经人介绍,如果使用GET方式传输参数,URL的最大长度是256个字节,对此深信不疑.

    但是最近看到一些超长的url,能够在IE下工作,复制下来测算了一下长度,大概是650个字节,这个长度远远超过了256个字节.这时候对以前的说法不由得有些怀疑—-用各大搜索引擎翻了个遍,最后找到最权威的解释—-Maximum URL length is 2,083 characters in Internet Explorer.———Microsoft Internet Explorer的最大统一资源定位符(URL)长度为2,083个字符。

    Internet Explorer的最大路径长度为2,048个字符。此限制适用于POST请求和GET请求URL。

    如果使用GET方法,则最多限制为2,048个字符,减去实际路径中的字符数。

    但是,POST方法不受提交名称/值对的URL大小的限制。这些对在标题中传输,而不是在URL中传输。

    RFC 2616,“超文本传输​​协议 – HTTP / 1.1”,未指定对URL长度的任何要求。

    没错,IE的url最大长度是2083个字节,可以用于GET传递数据的长度是2048个字节,这个数字不小,远超过256这个曾经认为无比正确的数字.

    另外POST方式传递的数据不受这个长度影响,它的值通过浏览器header传输而不是url.

    浏览器

    经过实际测试:

    1、在IE8 下的URL地址总长度为:4076,超过该长度会自动忽略后面的内容;

    2、在firefox 25下的URL地址总长度可以达到:7530,超过该长度会访问错误;

    3、在chrome 29.0.1547.62 的最大总长度达到:7675,超过该长度会访问错误;

    由此可见,在以前的浏览器下,或许URL的最大长度为256是可能的(现在找不到IE6或以前的版本来测试),随着浏览器的更新升级支持的长度也会随着变化。

    服务器

    1、apach

    apache 能接受url长度限制为8 192 字符

    2、IIS

    Microsoft Internet Information Server(IIS)能接受url长度限制为16 384个字符。

    3、Perl HTTP::Daemon

    Perl HTTP::Daemon 至少可以接受url长度限制为8000字符。Perl HTTP::Daemon中限制HTTP request headers的总长度不超过16 384字节(不包括post,file uploads等)。但当url超过8000字符时会返回413错误。
    这个限制可以被修改,在Daemon.pm查找16×1024并更改成更大的值。

    4、ngnix

    可以通过修改配置来改变url请求串的url长度限制。

    client_header_buffer_size 默认值:client_header_buffer_size 1k

    large_client_header_buffers默认值 :large_client_header_buffers 4 4k/8k

    注意事项:

    由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制。
    若要支持IE的话,url长度限制为2083字符,若是中文字符的话只有2083/9=231个字符。
    若是Chrome浏览器支持的最大中文字符只有8182/9=909个。

  • 相关阅读:
    sql语句中where后边的哪些条件会使索引失效 SQL语句优化
    jvm 判断对象死亡
    mysql数据库优化概述详解
    java集合框架详解
    jvm 图形化工具之jconsole
    java io框架详解
    多台Linux之间文件共享
    二 redis的安装启动
    jvm 线上命令工具
    java 线程6种状态的转换
  • 原文地址:https://www.cnblogs.com/Javi/p/11577303.html
Copyright © 2011-2022 走看看