2016-11-08 81 views
0

我想连接到用户提供的一些“domain.com”主机。我没有像“http://domain.com”这样的完整网址。我不知道“domain.com”是否支持SSL(它可能仅限于HTTP或仅支持HTTP,或者支持两者,因此首选HTTPS)。是否连接到https://domain.comhttp://domain.com找到用于该主机的正确协议的唯一方法?从主机名,有没有办法找到首选协议:HTTP或HTTPS?

理想情况下,我想研究一下domain.com的一些DNS记录,它可以让我找出首选协议,而不是制作两个相当昂贵的网络连接,HTTP和HTTPS(其中之一,如果它尝试连接到无效的端口,可能需要一段时间才能超时)。

我没有直接控制“domain.com”主机,但我可以建议其所有者添加DNS记录或任何其他需要的东西。

一个特定的编程语言在这一点上并不重要,我只是对这个概念感到好奇。

回答

2

我想连接到用户提供的一些“domain.com”主机。我没有像“http://domain.com”这样的完整网址。我不知道“domain.com”是否支持SSL(它可能仅限于HTTP或仅支持HTTP,或者支持两者,因此首选HTTPS)。是否连接到https://domain.comhttp://domain.com找到用于该主机的正确协议的唯一方法?

通常,是的。或者至少是最简单的方法。

域名本身通常只能解析为IP地址。您不知道该IP地址上实际运行的是什么。它可能有一个HTTP服务器,一个HTTPS服务器,一个FTP服务器,SMTP/POP服务器和IMAP服务器等。你只是不知道什么是可用的,直到你真正尝试使用你选择的协议连接到它。

因此,您将不得不尝试分别与HTTP和HTTPS连接,并且无论哪一个成功都是赢家。

理想情况下,我想检查,也许,对于domain.com一些DNS记录,它可以让我找出最佳方案,而不是把两个较为昂贵的网络连接,HTTP和HTTPS

有是一个标准的DNS SRV记录,可能用于提供有关HTTP/HTTPS服务器的存在及其运行的端口号(此类型的使用在Use of SRV records in conjuction with HTTP and URIs已过期)中的信息。

还有一个标准的DNS记录类型,它也可以提供服务名称和描述用于该服务的协议和端口的URI之间的映射。

但是,大多数管理员不会使用SRV/URI记录来描述HTTP/S服务器(例如,Google和Yahoo不会),所以这必须是您向客户请求的额外内容,而不是你可以依靠用户可能给你的所有域名。

其中之一,如果它试图连接到无效端口,可能需要一段时间超时

可以传出连接上实现自己的超时时间,你是不是仅限于操作系统的默认超时。

2

我想连接到实际的站点可能是必需的,以确定哪个端点是典型的

  1. 你只知道,如果当您连接到它和站点达
  2. 你会连接后只知道任何重定向。

看看这两个Python项目 - benbalter/site-inspectordhs-ncats/pshtt。它们使用连接状态,HTTP响应代码和重定向的组合来确定给定域的规范端点。

相关问题