首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有查询字符串中多项的HTTP请求

问具有查询字符串中多项的HTTP请求
EN

Stack Overflow用户
提问于 2017-07-13 17:45:57
回答 4查看 4.2K关注 0票数 1

我们使用查询字符串中的大量数据发出HTTP请求,表示要检索的集合的所有ids。

关于url中查询字符串长度的限制,google快速搜索如下:

RFC 3986还声明没有限制,但表示由于DNS限制,主机名仅限于255个字符(第2.3.3节)。微软表示,Internet中URL的最大长度为2,083个字符,URL.May 1,2009的路径部分中不超过2,048个字符

如果我们不使用IE,我是否应该担心可能超过查询字符串长度的限制?我确信,我在我的Node.js Express服务器上看到了超出限制的情况,特别是当我在GET请求的查询字符串中包含一个表示图像的base64字符串时。

解决这个问题的好方法是什么?我们应该只使用HTTP请求吗?当然,为了避免这个问题,我们不想把请求分解成1000个。

EN

回答 4

Stack Overflow用户

发布于 2017-07-31 10:32:25

如果您打算保持API和RESTful的干净,您可以将请求分成两部分。第一个配置将发送到服务器进行计算(POST);第二个配置将收集结果(GET)。

这种方法除了克服浏览器、防火墙、路由器等HTTP的限制外,还具有多种优点。例如,以后可以引入部分结果轮询或取消长时间运行计算的可能性。此外,您保持URL简短和用户可读性.

已经描述了这里的实现细节。

票数 5
EN

Stack Overflow用户

发布于 2017-07-14 23:47:21

在RESTful web服务中,获取检索数据。POST请求在服务器上创建数据,并且没有大小限制,但是服务器通常具有可以更改的默认限制。

如果维护RESTful应用程序不适用于您的情况,则可以使用POST。

需要注意的是,GET请求可以缓存,但是POST请求不能缓存,因此如果您获得了大量(相同的)数据作为回报,则应该使用GET。

票数 2
EN

Stack Overflow用户

发布于 2017-07-31 10:30:52

我想说的是,如果GET请求的长度超过了2000,那么在设计中有什么问题(我找不到一个很好的理由通过GET in base64而不是像您提到的POST来传递图像)。我宁愿在这种情况下使用帖子;也可以搜索2048年的字符限制,这似乎并不适用,请参阅firefox和Chrome,我不会依赖这个关于微软ie,这里有一个更详细的分析的过时信息。

您也可以考虑为您的参数、名称和值实现字符串缩写,但在我看来,可读性更重要。看看这关于如何在javascript中缩短参数的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45087701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档