为什么我可以使用http连接到每个https网站

士兵队长

Facebook是一个https网站(https://facebook.com),当我输入http://facebook.com时,它连接没有任何问题,每个https网站都是这种情况吗?

阿蒂

每个HTTPS网站都是这种情况吗?

不。

HTTP(通常是端口80)和HTTPS(通常是端口443)是两个完全独立的服务,通常看起来可以一起工作。

越来越多地,当您导航到时http://example.com,您将连接到服务器,其唯一责任是将您重定向到https://example.com

通常,如果您提供路径,查询字符串等...,那么您将在保持这些状态的情况下被重定向。

例如,导航到http://facebook.com/abcdefg只会将您转到https://facebook.com/abcdefg,而与该页面是否实际存在无关(当前不存在-您最终会得到404

$ curl -v http://facebook.com/abcdefg
*   Trying 157.240.221.35...
* Connected to facebook.com (157.240.221.35) port 80 (#0)
> GET /abcdefg HTTP/1.1
> Host: facebook.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Location: https://facebook.com/abcdefg
< Content-Type: text/html; charset="utf-8"
< X-FB-Debug: 2G7V3yvcTiKIEIYOnCwTSvQD5L6EMm615YxBaz//l1OagX1sknJlyy6Ogl6bHLtm8xyh9oC+C7+I0N3FpTv94g==
< Date: Wed, 13 May 2020 12:04:05 GMT
< Alt-Svc: h3-27=":443"; ma=3600
< Connection: keep-alive
< Content-Length: 0
<
* Connection #0 to host facebook.com left intact

对于facebook,实际上有第二个重定向将您转发到https://www.facebook.com/abcdefg(添加www.前缀)。


还有其他有助于保护网络安全的技术,例如HSTS,它指示浏览器在联系特定站点时始终使用HTTPS ...即使用户尝试使用HTTP,也是如此。

HSTS还通过使用“预加载列表”进行扩展,该预加载列表包括许多顶级域名,并且随浏览器一起提供。这意味着,即使您以前从未访问过站点,也可能会发现浏览器甚至没有尝试使用HTTP。


从历史上看,当HTTPS是新的并且仍然很昂贵时(从“证书花费钱”和处理的角度来看),人们更普遍地向同一站点提供HTTP和HTTPS访问,从而允许用户“决定”他们是否想要加密和身份验证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么没有针对WebSocket的同源策略?为什么我可以连接到ws:// localhost?

我可以使用C#连接到Java API吗?

为什么我可以使用int> +32767进行操作?

为什么我的网站可用于2 URL:当我使用http和https搜索时?

我可以使用mysql或psql控制台连接到Tarantool吗?

我可以使用MediaDevices.getUserMedia()连接到多个Webrtc流的音频输入设备吗?

为什么我可以使用Firefox或WGET访问网站,但不能使用CURL或Ruby

为什么我不能使用mysqli_connect和PHP 7.4连接到MySQL 5.3.36共享服务器,但是在php 7.1下可以使用?

我可以使用什么来唯一标识使用Socket.IO连接到套接字的设备吗?

为什么我无法连接到无线?

为什么我可以使用gFTP将SSH2连接到SFTP服务器?

我可以使用基本路由器将2个ISP连接到LAN吗?

我可以使用GUI连接到Google Cloud VM吗?

用户连接到我的网站时使用的设备(计算机)是什么

为什么我可以使用WinSql连接到MySql,但不能在Eclipse的连接配置文件中连接?

为什么我不能通过HTTPS连接到此站点?

我们可以使用休眠方式连接到LDAP吗

Windows 10:无法使用Internet Explorer连接到HTTPS网站

为什么我无法连接到特定网站?

我们可以使用ssh连接到Web服务器,然后发送http请求并接收http响应吗?

我无法使用Behat连接到我的网站(但可以使用浏览器)

我可以使用什么工具来监听HTTP / HTTPS流量?

我可以使用openvpn连接到VPN,但无法上网

为什么我可以使用/ dev?

是否可以使用JavaScript将documentDB存储连接到我的应用程序?

我可以使用 Amarok 连接到 iTunes 音乐共享吗?

我可以使用 Orange Authentication France 连接到 Live Object 吗?

网站可以使用HTTPS访问,但使用HTTP时无法访问

为什么我的网站在 chrome 中有 HTTPS 而在 safari 中有 HTTP?