6
我该如何处理HTTP GET查询字符串的长度限制,并且仍然希望成为RESTful?
如http://www.boutell.com/newfaq/misc/urllength.html中所述,HTTP查询字符串的长度有限。它可能受客户端(Firefox,IE等),服务器(Apache,IIS等)或网络设备(应用防火墙等)的限制。 今天,我用搜索表来面对这个问题。我们开发了一个包含很多字段的搜索表单,该表单作为GET请求发送到服务器,因此我可以将结果页面添加为书签。 我们的字段太多,查询字符串的长度为1100个字节,而防火墙则丢弃了超过1024个字节的HTTP GET请求。我们的系统管理员建议我们改用POST,因此没有限制。 当然,POST可以工作,但是我真的觉得搜索是GET而不是POST。因此,我想我将检查我们的字段名称,以确保查询字符串不会太长,如果不能,我将务实并使用POST。 但是RESTful服务的设计是否存在缺陷?如果GET请求的长度有限,该如何将大型对象发送到RESTful Web服务?举例来说,如果我有一个程序,使基于文件的计算,我想提供一个RESTful Web服务这样的:http://compute.com?content=<base64 file>。这将不起作用,因为查询字符串没有无限的长度。 我有点困惑