我遇到以下问题。 www.abc.com:10181 - 无法访问网页 https:\www.abc.com:10181 - 能够访问网页
我需要手动输入“https://”,否则将无法查看网页。
谢谢。
答案1
Web 浏览器假定您需要 HTTP 连接。据说,Web 浏览器的默认地址方案是“http://”,如果您没有明确指定,则始终会将其添加到前面。即使只是“domain.name:443”(带有明确的 https 端口,但没有方案前缀)也会假定为 HTTP。尝试 google.com:443 并查看其工作原理。
如果您通过 URL 方案前缀“https://”手动指定,Web 浏览器才会启动 HTTPS 连接。
协议不匹配时如何出现“连接重置”是另一个问题。
HTTPS 服务器希望在原始端口上收到 TLS ClientHello,而不是 HTTP 请求。如果 HTTP 请求到达启用 HTTPS 的端口,则该请求将被视为格式错误的 TLS ClientHello,服务器将终止连接。
另一方面,Web 浏览器则以 HTTP 协议来思考。从 HTTP 协议的角度来看,此连接重置是意外且不正确的。Web 浏览器所能做的就是说服务器意外关闭了连接。
我认为,在这种情况下自动切换到 HTTPS 是不可行的,因为它会误导用户,实际上可能会损害安全性。为什么必须是 HTTPS,为什么不是 FTP、GOPHER、IRC、IMAP 或任何其他协议?
最后,一切都按预期运行。如果您希望在默认或非默认端口上使用 HTTPS,则必须始终在开头指定“https://”。