在设计基于HTTP的协议时应该记住哪些事项?

时间:2009-09-25 10:28:29

标签: http servlets protocols

我听说http是设计自己的协议的好方法。虽然我可以设计一个二进制协议,但我更愿意遵循HTTP标准来设计我的协议。 基本上应用程序的流程是客户端向服务器发送一些参数字符串的请求,服务器将响应字符串发送给应用程序。在连接线程终止之前,此过程会持续多次。

我正在使用java servlets来实现上述目标。 客户端应该如何发送HTTP参数,以便在服务器上轻松解析。

Get /a HTTP/1.1
Host: localhost

??? what comes here

3 个答案:

答案 0 :(得分:3)

  

???什么来这里

因为这是GET请求,所以没有。

我建议使用查询字符串参数,然后使用ServletRequest.getParameterNames(),getParameterValues(),getParameterMap()等访问它们。

因此,您的请求行将采用以下形式:

GET /a?x=1&y=1 HTTP/1.1

由于这是传递参数数据的标准方式,因此其他客户端(如Web浏览器)将能够轻松使用您的服务。

这假定操作不会对服务器造成副作用。如果确实如此,那么您应该使用POST,PUT或DELETE请求,具体取决于操作的确切性质。

HTTP Made Really Easy是一份非常有用的文档,因为至少在最初阶段,HTTP Spec可能有点令人生畏。

答案 1 :(得分:2)

为什么不将您的协议基于something that already exists,例如SOAP?

答案 2 :(得分:1)

您正在设计的是数据交换格式,而不是协议

所以问题是,你真的想要发送什么样的数据?要回答这个问题,您需要考虑谁在接收它。如果是你自己,那就保持简单。