2016-11-08 85 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響應代碼和重定向的組合來確定給定域的規範端點。

相關問題