如何使用 url 确定站点协议

How to determine the site protocol using url

如何根据 URL 确定(using c++winsock)站点协议,例如(www.google.com)如果协议未知进步?

或者我如何确定网络服务器的 TCP 端口?

我想使用 www. 之后的 link 进行 HTTP get 请求,并且需要确定端口或协议,以便使用 http over tlssimple http .

在您的示例中,www.google.com 是一个域名。
要获得协议,您需要完整的网址,例如 https://www.google.comhttp://www.google.com
在上面的示例中,httphttps 是协议类型。

您还可以使用nmap来确定打开的端口、服务名称和使用的协议

你不能。 决定您将用于联系某些服务器的协议。如果你还没有决定,你就不知道。当然你的电脑不能告诉你它会是什么。

这就像问超市收银员你今天要买什么。他们不知道。 应该告诉他们

可以做的是查看该服务器上的网站是否自动将 HTTP 流量重定向到 HTTPS URI(从而强制执行 SSL),或者以其他方式阻止非 HTTPS 流量。如果那是您想要做的,您可以通过尝试与该域建立 HTTP 连接并查看会发生什么来实现它。

根据您的网络浏览器 make/model/version,当您输入 "www.google.com" 而不指定协议时,这可能就是它正在做的事情:假设 http:// 然后跟随任何带您的远程重定向改为 https://。不过,很快,或者如果您安装了某些扩展程序,默认值将是 https://。不过,我必须再次强调,这仍然是客户端(即浏览器)做出决定,而不是服务器;如果您正在编写自己的浏览器,那么 必须再次选择默认值。