【发布时间】:2016-02-12 19:57:19
【问题描述】:
我正在尝试连接到 Java 中的 URL 以查看它们是否有效,并且我想知道我是否需要连接到 HTTPS(端口 443?)或者是否只连接到 HTTP(端口 80)就足够了。
HTTPS 网站连接到 HTTP 是否有效?有什么我应该注意的防火墙不允许我这样做吗?
谢谢。
【问题讨论】:
我正在尝试连接到 Java 中的 URL 以查看它们是否有效,并且我想知道我是否需要连接到 HTTPS(端口 443?)或者是否只连接到 HTTP(端口 80)就足够了。
HTTPS 网站连接到 HTTP 是否有效?有什么我应该注意的防火墙不允许我这样做吗?
谢谢。
【问题讨论】:
如果您想检查 URL 是否“有效”,我想您想知道它们是否以 200 状态代码响应 GET 请求。
如果您想知道它们是否都有效,您需要分别检查 http 和 https。它们是两种不同的协议,服务器以不同的方式处理它们。一些服务器通过两种协议镜像相同的内容,但其中许多重定向 HTTP -> HTTPS 等。
也不是每个服务器都支持 SSL 连接,因此 HTTPS 可能不可用。
【讨论】:
既然你改写了你的问题,我会据此更新我的答案。 继续你的例子: 检查端口 80 上的 URL 完全独立于检查端口 443 上的 url。也许端口 80 导致与端口 443 相同的内容。也许端口 80 导致最终用户内容,而端口 443 导致管理员登录。 也许 apache 在 80 端口上运行,而 nginx 在 443 端口上运行。
因此,要获取所有内容,您需要扫描两个端口。此外,有时要准备好寻找两种不同类型的内容,它们彼此之间没有任何关系。诚然,这种情况很少发生,但它可能会发生。
关于防火墙:
如果 Web 服务打算公开,防火墙会很高兴地允许您连接到该服务。如果一个网络服务是私有的,你仍然可以连接到它,防火墙管理员犯了一个错误:)
HTH
【讨论】: