【发布时间】:2011-03-22 19:19:02
【问题描述】:
假设我向foosite.com 发出 HTTP 请求,但我实际发送请求的端口是 6103,并且我没有将该端口放在 Host 标头中,例如:
GET /barpage HTTP/1.1
Host: foosite.com
Method: GET
那么 http 服务器是否应该识别出我正在尝试在端口 6103 上与其通信?或者由于它在请求标头中被省略了,我是否在赌服务器是否真的识别到这一点?
我问这个问题是这样说的:我发现浏览器,至少是 firefox + chrome,将端口放在 Host 标头中。但我使用的 Java 应用程序没有。当Host 中没有传递端口时,服务器会回复认为我在端口 80 上。那么我需要对谁进行獾呢?服务器操作员,还是 Java 程序员?
【问题讨论】:
-
6103 是 HTTP 的一个奇怪端口
-
我同意@NullUserException。 HTTP 默认使用端口 80,因此我会与您的 Java 开发人员联系,以确保他们在调用中包含非标准端口。
-
它基本上是用于房地产列表的 API 服务。特别是 RETS rets.org/documentation。为多个上市服务提供 RETS 的公司倾向于将子域或端口从其主域中移除,例如 socalmls.someretscompany.com 或 someretscompany.com:6111。不要问我为什么他们使用端口。我只是在这里工作;)
-
YES,服务器可以使用实际连接的端口号。事实上,为了可重用,服务器必须这样做。否则会出现安全错误(例如:防火墙阻止端口 81,受信任的客户端除外;不受信任的客户端连接到端口 80 并发送主机:1.2.3.4:81)。服务器可以通过多种方式检测端口号——最简单的可能是检查它从哪个监听套接字接受()传入的连接......
标签: http http-headers