HTTP GET请求,查询字符串中包含许多项

Ale*_*lls 1 url get http query-string web

我们使用查询字符串中包含大量数据的HTTP GET请求来表示要检索的集合的所有ID。

关于网址中查询字符串长度的限制,谷歌快速搜索显示:

RFC 3986也声明没有限制,但是由于DNS限制,主机名限制为255个字符(第2.3.3节)。Microsoft说,Internet Explorer中URL的最大长度为2,083个字符,URL的路径部分最多不超过2,048个字符。2009年5月1日

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

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

Bor*_*lev 5

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

除了克服浏览器,防火墙,路由器等上的HTTP GET的限制外,此方法还具有多个优点。例如,您以后可以引入部分结果轮询,或者可以取消长时间运行的计算。此外,您还应使URL简短并易于用户阅读。

实现细节已在此处描述。


归档时间:

查看次数:

1955 次

最近记录:

8 年,1 月 前