是通过TCP还是UDP接收HTTP请求?

时间:2015-07-01 13:27:24

标签: java http java-ee

Java是否有办法知道HTTPTCP以上是否收到了UDP请求?

2 个答案:

答案 0 :(得分:5)

来自RFC2616

的引用
  

HTTP通信通常通过TCP / IP连接进行。该      默认端口是TCP 80 [19],但可以使用其他端口。这样做      不排除在任何其他协议之上实现HTTP      在互联网上或其他网络上。 HTTP仅假定可靠      传输;可以使用任何提供此类保证的协议;      HTTP / 1.1请求和响应结构的映射到      有关议定书的运输数据单位不在范围内      本规范。

我想说这可以消除默认的UDP。其他可靠形式的协议仍然是可能的

答案 1 :(得分:1)

正如@ceekek所说,RFC告诉HTTP只使用可靠的传输,因此这意味着无法使用UDP。但是有人可能会尝试在UDP之上构建一些其他协议,或者可能根本不使用TCP / IP堆栈。 但是当你的问题是关于Java的时候,答案就是 - 这就是所使用的Java库和框架。实际上我知道的所有库,比如HtmlUnit http://htmlunit.sourceforge.net,都会隐藏这些信息。因此,您只在不知道有关地下交通的详细信息的情况下处理HTTP。但从理论上讲,某些图书馆可能会为您显示此信息。

但实际上我没有看到为什么这可能对你有意义(99.999999%HTTP将使用TCP)。如果你告诉我们你为什么问这个奇怪的问题,那么也许我们会更具体地回答你。