零、总结

文章数据来源于网络,可能存在变动,但是原理是一样的。

  1. HTTP 协议 未规定 GET 和POST的长度限制
  2. GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度
  3. 不同的浏览器和WEB服务器,限制的最大长度不一样
  4. 要支持IE,则最大长度为2083byte,若只支持Chrome,则最大长度 8182byte

一、误解

大家都知道http 中 存在 GET 和 POST 这两种最常用的请求方式。(PUT,DELETE不在本文讨论范围之内)

误解:HTTP 协议下的 Get 请求参数长度是有大小限制的,最大不能超过XX,而 Post 是无限制的。

1、首先即使有长度限制,也是限制的是整个 URI 长度而不仅仅是你的参数值数据长度

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

**以下内容摘自 《关于 HTTP GET/POST 请求参数长度最大值的一个理解误区》, 文章时间为 2013年的。可能以当前最新的浏览器有出入 **

The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations might not properly support these lengths.

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

The limit is in MSIE and Safari about 2KB, in Opera about 4KB and in Firefox about 8KB, (255 bytes if we count very old browsers) . We may thus assume that 8KB is the maximum possible length and that 2KB is a more affordable length to rely on at the server side and that 255 bytes is the safest length to assume that the entire URL will come in.
If the limit is exceeded in either the browser or the server, most will just truncate the characters outside the limit without any warning. Some servers however may send a HTTP 414 error. If you need to send large data, then better use POST instead of GET. Its limit is much higher, but more dependent on the server used than the client. Usually up to around 2GB is allowed by the average webserver. This is also configureable somewhere in the server settings. The average server will display a server-specific error/exception when the POST limit is exceeded, usually as HTTP 500 error.

IE 和 Safari 浏览器 限制 2k
Opera 限制4k
Firefox 限制 8k(非常老的版本 256byte)

如果超出了最大长度,大部分的服务器直接截断,也有一些服务器会报414错误。


HTTP 1.1 defines Status Code 414 Request-URI Too Long for the cases where a server-defined limit is reached. You can see further details on RFC 2616. For the case of client-defined limits, there is no sense on the server returning something, because the server won't receive the request at all.

详细可以看 RFC2616

The server is refusing to service the request because the Request-URI is longer than the server is willing to interpret. This rare condition is only likely to occur when a client has improperly converted a POST request to a GET request with long query information, when the client has descended into a URI "black hole" of redirection (e.g., a redirected URI prefix that points to a suffix of itself), or when the server is under attack by a client attempting to exploit security holes present in some servers using fixed-length buffers for reading or manipulating the Request-URI.


二、各个浏览器和web服务器的最大长度总结

在网上查询之后,浏览器和服务器对url长度都有限制,现总结如下。

浏览器

1、IE

IE浏览器(Microsoft Internet Explorer) 对url长度限制是2083(2K+53),超过这个限制,则自动截断(若是form提交则提交按钮不起作用)。

2、firefox

firefox(火狐浏览器)的url长度限制为 65 536字符,但实际上有效的URL最大长度不少于100,000个字符。

3、chrome

chrome(谷歌)的url长度限制超过8182个字符返回本文开头时列出的错误。

4、Safari

Safari的url长度限制至少为 80 000 字符。

5、Opera

Opera 浏览器的url长度限制为190 000 字符。Opera 9 地址栏中输入190 000字符时依然能正常编辑。

服务器

1、Apache

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

2、IIS

Microsoft Internet Information Server(IIS)能接受url长度限制为16 384个字符。
这个是可以通过修改的(IIS7)
configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryStringsetting.<requestLimits maxQueryString="length"/>

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个。

http get 传参最大长度介绍相关推荐

  1. vue 组件之间传值 父转子,子传父,同级别之间的传参,跨级别传参

    写这篇文章之前,我对vue组件之间的传值,还是只知道一些基础的传值方式.虽然工作中勉强能够应对,但是想要行云流水感觉还是心有余而力不足,所以在此,我想总结一下vue组件之间的一些传值方式供大家参考,同 ...

  2. php 小程序页面传参,介绍小程序中传递参数的实现方法

    这篇文章主要介绍了微信小程序 参数传递详解的相关资料,需要的朋友可以参考下 微信小程序的推出,无疑将会在移动互联网行业里再次掀起风浪. 有人会质疑小程序会不会火, 会不会火我不知道, 看微信的用户量即 ...

  3. Udesk即时通讯网页插件专用链接传参介绍

    作者:张振琦 在<Udesk即时通讯(IM)网页插件入门>中说到了即时通讯的专用链接,也演示了浏览器直接访问和网页iframe加载的效果.本篇来介绍一下,专用链接支持的参数,通过给专用链接 ...

  4. delphi中的函数传参如何传枚举参数_shell脚本的函数介绍使用和工作常用案例。建议收藏...

    #前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例. #简介 1.函数也具有别名类似的功能 2.函数是把程序里多次调用相同的代码部分定义成一份,然后给这份代码 ...

  5. umijs介绍及基本用法、配置式路由、约定式路由、路由传参等

    umiJS Umi 是蚂蚁金服的底层前端框架 中文可发音为乌米,是可扩展的企业级前端应用框架.Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备.同时有强大的插件扩展各种功能. ...

  6. formdata传参java用对象怎么接受_Java基础4

    Java方法详解 何谓方法 方法的定义及调用 方法的重载 命令行传参 可变参数 递归 何谓方法? System.out.println(),那么它是什么呢? //System"类" ...

  7. 【php7扩展开发四】函数的参数 ,引用传参 ,返回值

    函数参数解析 之前我们定义的函数没有接收任何参数,那么扩展定义的内部函数如何读取参数呢?用户自定义函数在编译时会为每个参数创建一个zend_arg_info结构,这个结构用来记录参数的名称.是否引用传 ...

  8. Flask mysql 模版传参_Flask渲染Jinja2模板和传参

    ### Flask渲染Jinja2模板和传参: 1. 如何渲染模板: * 模板放在`templates`文件夹下 * 从`flask`中导入`render_template`函数. * 在视图函数中, ...

  9. class传参 python_Python 初学者必备的常用内置函数

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

最新文章

  1. 配置ubuntu - tftp server服务器步骤
  2. 一个简单的例子看java线程机制
  3. 【转】Spring mvc 统一异常处理和静态文件的配置
  4. php的$_FILES如何生成以及如何与上传文件对象产生联系
  5. js中推断浏览器类型
  6. python查微信好友是否删除自己_Python + Appium 自动化操作微信查找自己是否被删除...
  7. mysql数据库ip地址_MySQL数据库存储IP地址的方法
  8. 倒计时2天,WebRTCon 2018有哪些有趣有料分享与活动?
  9. 使用RabbitMQ进行消息传递
  10. vs2010帮助文件安装完全攻略
  11. Springboot集成ES启动报错
  12. C语言1094题目,基于visual Studio2013解决C语言竞赛题之1094纵横图
  13. 第六周作业----测试自动化工具
  14. 图像主观质量评价 评分_视频质量评价算法 之 客观评价的性能指标
  15. 实战 | 如何使用微搭低代码实现公差申请应用
  16. J2Cache缓存的使用
  17. 升入高中,如何规划数学竞赛
  18. 64马8赛道取前4问题
  19. 使用这个vue snippets,提高百倍开发效率
  20. AC自动机 从入门到模板

热门文章

  1. 5G NR — RAN 的技术演进方向
  2. Kong APIGW — Plugins — Traffic Control
  3. IPv6 — 地址配置方式
  4. 统计与分布之高斯分布
  5. Keil问题及其解决
  6. 如何将OpenCV中的Mat类绑定为OpenGL中的纹理
  7. 微信小程序转百度小程序修改
  8. 文件上传漏洞及解决办法
  9. PHP学习笔记6:面向对象的PHP
  10. linux下通过yum安装svn及配置