本周早些时候,我不得不做一些感觉违反语义的事情。让我解释一下。
我正在创建一个简单的AJAX客户端应用程序,它是向具有给定数量参数的服务发出请求。由于整个应用程序基本上是只读的,我认为使用HTTP GET是可行的方法。我必须传递的一些参数很简单(例如排序顺序或页码)。
但是,其中一个必需参数可能是可变长度的,这让我很担心。由于我在GET请求的查询字符串中编码了所有参数,因此在我看来,这放置了一个不必要的upper limit of (roughly) 2000 characters for the request URL。无论如何,我不喜欢看到500个字符长的请求URL。
因此,由于POST请求没有这样的限制,我决定切换。但这感觉不对。我的印象是POST表示数据的修改 - 但我将它用于简单的只读请求。
有更好的方法吗?要执行GET,有多个参数?我听说过一种方法 - 你自己执行参数的初步POST,然后执行GET。但是,这种技术还有很多不足之处。
但是看一下这个具体案例, HTTP请求方法的真正语义和局限是什么?为什么GET不支持任何类型的参数有效载荷?使用URL中的查询字符串对我来说几乎感觉像是黑客。
答案 0 :(得分:14)
关于这个问题的几点: