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

时间:2016-04-07 08:16:03

标签: rest http-post jax-rs http-get http-method

  1. 有时它可能需要超过GET长度限制的查询数据,因此我正在考虑使用POST。查询确实会改变任何内容,只需根据参数返回数据。

  2. 我正在使用GET链接令牌,该令牌作为用户的电子邮件发送。它会改变状态,因此GET不合适但使用起来更方便。

  3. 使用这些解决方案是一种好习惯吗?

1 个答案:

答案 0 :(得分:1)

  1. 这不符合HTTP规范中POST的目的,但如果您返回合适的响应,它不会破坏任何规则 - 我假设200(OK) - 而不是指示创建资源。在沿着这条路线走之前,我建议您考虑是否可以通过将参数信息封装为URI中的资源或集合标识符来减少查询字符串长度。例如,如果您有查询GET http://host/customer?country=UK&name=foo,则可以将其表示为GET http://host/country/UK/customers/foo
  2. 任何改变状态的GET的使用都不是“安全”。因此违反了HTTP规范。
  3. 所以,在这两种情况下,我都会说这是不好的做法,但是(1)是允许的,前提是你真的不能用其他方式克服查询字符串限制。

    来源:RFC2616 - section 9: Method definitions