在设计基于HTTP的协议时,应该记住什么?

在设计基于HTTP的协议时,应该记住什么?,http,servlets,protocols,Http,Servlets,Protocols,我听说http是设计我自己的协议的好方法。虽然我可以设计一个二进制协议,但我更愿意遵循HTTP标准来设计我的协议。 基本上,应用程序的流程是客户端通过请求向服务器发送一些参数字符串,服务器向应用程序发送响应字符串。在连接线程终止之前,此过程将继续几次 我正在使用Javaservlet实现上述功能。 客户端应该如何发送HTTP参数,以便在服务器上轻松解析 Get /a HTTP/1.1 Host: localhost ??? what comes here ???这里来了什么 因为这是一个GE

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

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

Get /a HTTP/1.1
Host: localhost

??? what comes here
???这里来了什么

因为这是一个GET请求,所以什么都没有

我建议使用querystring参数,然后可以使用ServletRequest.getParameterNames()、getParameterValues()、getParameterMap()等访问它们

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

GET /a?x=1&y=1 HTTP/1.1
由于这是传递参数数据的标准方式,其他客户端(如web浏览器)将能够轻松使用您的服务

这假定该操作不会对服务器造成副作用。如果确实如此,则应根据操作的确切性质使用POST、PUT或DELETE请求

是一个有用的文档,因为,至少在最初,这个文档可能有点让人望而生畏

???这里来了什么

因为这是一个GET请求,所以什么都没有

我建议使用querystring参数,然后可以使用ServletRequest.getParameterNames()、getParameterValues()、getParameterMap()等访问它们

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

GET /a?x=1&y=1 HTTP/1.1
由于这是传递参数数据的标准方式,其他客户端(如web浏览器)将能够轻松使用您的服务

这假定该操作不会对服务器造成副作用。如果确实如此,则应根据操作的确切性质使用POST、PUT或DELETE请求


是一个有用的文档,因为,至少在最初,可能有点令人畏惧。

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


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

你设计的是数据交换格式,而不是协议


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

为什么不以SOAP为例来建立协议?

为什么不以SOAP为例来建立协议?

参数可能是长字符串,因此这是一个很好的选择,可以指出使用get我不发送任何数据。也许我会在post请求的内容部分发送数据。是的——你是对的,很长的URL通常不是一个好主意,而且你可以发布的数据量没有限制,所以这可能是一个更好的方法。值得记住的是,如果您以查询字符串格式发布数据,并使用application/x-www-form-urlencoded的内容类型头,您仍然可以使用servlet API来访问参数。参数可能是长字符串,因此这将是一个很好的选项,用于指出使用get我不发送任何数据。也许我会在post请求的内容部分发送数据。是的——你是对的,很长的URL通常不是一个好主意,而且你可以发布的数据量没有限制,所以这可能是一个更好的方法。值得记住的是,如果您以查询字符串格式发布数据,并使用application/x-www-form-urlencoded的内容类型头,您仍然可以使用servlet API访问参数。web服务是否具有固有的性能开销。我想使用rest web服务作为附加功能来公开该功能,但基于我的协议构建一个快速客户端应用程序。XML对我来说显然是一种缓慢、松散的格式——但我不是web服务专家,也许其他人可以回答这个问题?web服务是否有固有的性能开销。我想使用rest web服务作为附加功能公开该功能,但基于我的协议构建一个快速客户端应用程序。对我来说,XML显然是一种缓慢、松散的格式——但我不是web服务方面的专家,也许其他人可以回答这个问题?我想知道使用HTTP的数据交换格式的标准;实际上有数百种标准,但没有真正的标准(因为单一的标准没有意义;不同的生产者/消费者有不同类型的数据)。你想和谁集成?cool mine现在是一个从头开始的应用程序。因此,我可能会为post请求的内容编写一条xml消息。顺便说一句,我想对一些请求-响应序列(即会话)重用同一线程。使用HTTP/1.1似乎合理,对吗?我想知道使用HTTP的数据交换格式的标准。人们通常使用XML格式;实际上有数百种标准,但没有真正的标准(因为单一的标准没有意义;不同的生产者/消费者有不同类型的数据)。你想和谁集成?cool mine现在是一个从头开始的应用程序。因此,我可能会为post请求的内容编写一条xml消息。顺便说一句,我想对一些请求-响应序列(即会话)重用同一线程。使用HTTP/1.1似乎合理,对吗?