gpt4 book ai didi

angularjs - HTTP POST 与 HTTP GET

转载 作者:可可西里 更新时间:2023-11-01 17:34:00 25 4
gpt4 key购买 nike

我想从前端(Angular)到后端进行数据库查询。但是我需要为此发送很多参数。

据我了解,如果我们不进行任何数据库更改,最好使用 GET,因为它使用缓存条目。如果我们需要在服务器/数据库上进行更改,则应使用 POST。

但是如果我想发送很多参数(有些是序列化对象)并且不对服务器端进行更改,那么在这种情况下使用 POST 请求并将所有参数嵌入到 POST 主体中而不是发送一个巨大的 URL 编码是否可以? GET 请求?

最佳答案

首先要解决这个问题:responses to POST requests can be cached ,只要源服务器返回正确的缓存响应 header 。但是,浏览器和代理服务器通常不会对 POST 请求应用缓存。

也就是说,通过适当的编码,您可以在约 2 KB 的查询字符串中存储很多信息,因此 GET 应该是可行的方法。

如果您确定您将超出 GET 请求的限制并且您需要在保持可缓存的情况下采用 POST 方式,您可以引入一种“随机数”,例如使用搜索参数:

  1. 客户端使用搜索参数向 /search 发送 POST。
  2. 服务器将参数存储在某处,例如数据库。
  3. 服务器根据参数生成随机数,例如通过散列搜索参数或行 ID。
  4. 服务器将客户端重定向到该随机数的结果页面:/search/123abc
  5. 客户请求 /search/123abc 搜索结果页面。
  6. 服务器根据随机数执行搜索,并返回可缓存的响应。

这将引入一次额外的 HTTP 往返,但可以跨浏览器和通过代理服务器进行缓存。

关于angularjs - HTTP POST 与 HTTP GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com