Http 方法约定 - POST 用于获取数据,GET 用于验证电子邮件

Http methods conventions - POST for getting data, GET for verifying email

  1. 有时可能需要查询超过GET长度限制的数据,所以我正在考虑使用POST。查询确实改变了什么,只是根据参数returns数据。

  2. 我正在为 link 使用 GET 以及作为用户电子邮件发送的令牌。它改变状态所以GET不适合但更方便使用。

使用这些解决方案是好的做法吗?

  1. 这不符合 POST 在 HTTP 规范中的意图,但它不会违反任何规则,只要您 return 合适的响应 - 我假设 200 ( OK) - 而不是表示资源创建的。在继续这条路线之前,我建议您考虑是否可以通过将参数信息封装为 URI 中的资源或集合标识符来减少查询字符串的长度。例如,如果您有一个查询 GET http://host/customer?country=UK&name=foo,您可以将其表示为 GET http://host/country/UK/customers/foo.
  2. 任何更改状态的 GET 使用都不是 'Safe',因此违反了 HTTP 规范。

所以,在这两种情况下,我都会说这是不好的做法,但是 (1) 是允许的,前提是您确实无法通过其他方式克服查询字符串限制。

来源:RFC2616 - section 9: Method definitions