代码之家  ›  专栏  ›  技术社区  ›  bugsyb

在不超过标头限制的情况下在GET请求中发送扩展筛选器的最佳实践

  •  -1
  • bugsyb  · 技术社区  · 1 年前

    我正在开发一个应用程序,该应用程序允许用户按位置进行筛选。为了做到这一点,我将城市过滤器添加到查询参数中。例如,如果有人选择 California 我会用base64对它进行编码,然后将过滤器添加到我的查询参数中。以下是经过编码的过滤器对象:

    [{city: "San Francisco", state: "California", country: "USA"}, {...}, {...}]
    

    以下是编码后的请求:

    http://localhost:3001/api/v1/companies?offset=0&limit=50&locs=W3siY2l0eSI6IkFsYW1lZGEiLCJzdGF0ZSI6IkNhbGlmb3JuaWEiLCJjb3VudHJ5IjoiVW5pdGVkIFN0YXRlcyJ9LHsiY2l0eSI6IkFuYWhlaW0iLCJzdGF0ZSI6IkNhbGlm...
    

    然而,在经过一定数量的过滤器后,我会遇到标头限制(即,我无法将更多信息放入请求标头)。

    处理此问题的最佳实践方式是什么?我应该发送一个 POST 相反,请求,还是对此表示反对?

    enter image description here

    仅供参考用户可以点击进入一个州并选择/取消选择特定的城市。例如,有人可以点击 加利福尼亚 并取消选中 San Francisco Los Angeles .

    1 回复  |  直到 1 年前
        1
  •  0
  •   Evert    1 年前

    请求URI不被视为标头,但您仍可能遇到限制。通常建议保持在2048字节以下。

    如果超出此范围,请切换到其他HTTP方法( QUERY , POST )并使用请求主体。 查询 更适合于读取操作,浏览器支持,但并非所有服务器都支持。 岗位 是一个不错的第二选择。