给定一个主机名,如何为其确定正确的方案?

hostname用户给定 a怎么能用URLright组合 ascheme呢?


更重要的是,您如何确定是否www应该预先添加?


例如: ryanair.com


https://ryanair.com     -> 504 Timeout

https://www.ryanair.com -> 200 OK

http://ryanair.com      -> https://www.ryanair.com

https://ryanair.com     -> https://www.ryanair.com

正确答案ryanair.com应该是https://www.ryanair.com。


有没有人遇到过这个问题?


DIEA
浏览 155回答 2
2回答

慕尼黑5688855

只需使用普通的 HTTP 请求请求 URL,然后查看重定向到的位置。并非所有站点都提供 HTTPS,但几乎所有站点都提供 HTTP(如果 HTTP 碰巧失败,您可能想使用 HTTPS 重试,但这种情况非常罕见)。您不能假设www.存在子域,这是一个完全任意的、没有内在技术意义的遗留约定。

明月笑刀无情

显然,如果不发出 HTTP 请求以查看它们所做的重定向,您就无法知道,直到您遇到 HTTP 200。您应该先尝试 http:// 还是 https://,这取决于您要尝试做什么。如果抓取网站,前者,如果您打算在面向公众的网络服务中使用这些链接,则后者。所以我会这样做:使用 https:// 请求裸域(无 www)如果失败或超时,则使用 http:// 请求裸域如果失败重复上述步骤,但对于 www注意大多数使用 www 的网站将从裸域重定向。仅限 HTTPS 的网站也会从 http:// 重定向到 https://。因此,您可以提出的最安全的请求是 no-www + http://,但我首先假设是 https,因为现在对 Web 进行加密是大势所趋。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python