我们使用查询字符串中的大量数据发出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个。
发布于 2017-07-31 10:32:25
如果您打算保持API和RESTful的干净,您可以将请求分成两部分。第一个配置将发送到服务器进行计算(POST);第二个配置将收集结果(GET)。
这种方法除了克服浏览器、防火墙、路由器等HTTP的限制外,还具有多种优点。例如,以后可以引入部分结果轮询或取消长时间运行计算的可能性。此外,您保持URL简短和用户可读性.
已经描述了这里的实现细节。
发布于 2017-07-14 23:47:21
在RESTful web服务中,获取检索数据。POST请求在服务器上创建数据,并且没有大小限制,但是服务器通常具有可以更改的默认限制。
如果维护RESTful应用程序不适用于您的情况,则可以使用POST。
需要注意的是,GET请求可以缓存,但是POST请求不能缓存,因此如果您获得了大量(相同的)数据作为回报,则应该使用GET。
发布于 2017-07-31 10:30:52
我想说的是,如果GET请求的长度超过了2000,那么在设计中有什么问题(我找不到一个很好的理由通过GET in base64而不是像您提到的POST来传递图像)。我宁愿在这种情况下使用帖子;也可以搜索2048年的字符限制,这似乎并不适用,请参阅firefox和Chrome,我不会依赖这个关于微软ie,这里有一个更详细的分析的过时信息。
您也可以考虑为您的参数、名称和值实现字符串缩写,但在我看来,可读性更重要。看看这关于如何在javascript中缩短参数的问题。
https://stackoverflow.com/questions/45087701
复制相似问题