1
Latin 2019-11-01 15:58:21 +08:00
|
2
codehz 2019-11-01 17:45:49 +08:00
当然是为了安全啊)
你直接用 native socket 的话,怎么做鉴权,如何防止一键扫描内网呢) |
5
Nitroethane 2019-11-01 17:58:52 +08:00
浏览器引入沙盒的原因就是为了各种限制网页端的能力,如果网页支持调用 socket 系统调用,那跟万恶的 activex 有啥区别
|
6
Nitroethane 2019-11-01 18:00:18 +08:00
表述可能稍微有点问题,不是很清楚 activex 能不能用 socket 系统调用,不过大致意思就是这样
|
7
singerll 2019-11-01 18:02:28 +08:00 via Android
因为 浏览器是基于 HTTP 的标准客户端
|
8
sujin190 2019-11-01 18:05:20 +08:00
有了 socket 还有啥不能干的,想想看某天百度哪个产品经理脑洞大开,百度一下,来个悄悄拍的私照啊什么的直接帮你发布在微博,嗯,你就上热搜了,是不是太过刺激了一点
|
9
learnshare 2019-11-01 18:06:56 +08:00
浏览器是一个沙盒执行环境,目的就是为了隔离系统环境,提供统一的运行环境
|
10
codehz 2019-11-01 18:07:58 +08:00
|
11
passerbytiny 2019-11-01 18:13:14 +08:00
你首先要分清楚:Network Socket 跟 Internet Socket 是相似的两码事; Socket 是数据通信机制或通信协议而不是系统 API ;串口上的 Socket、TCP 上的 Socket、WebSocket ( Http 上的 Socket ),其核心都是 Socket。
然后,浏览器不能通过操作系统的 API 发起直接基于 TCP 的 Socket,是各大浏览器厂商遵循 W3C、ECMA 规范的结果。如果浏览器厂商不想遵循规范,它完全可以编制一套 API 让网页直接发起基于 TCP 的 Socket 连接。W3C、ECMA 规范只允许 WebSocket 而不允许 TCP Socket,原因就多了去了,不光是安全,让前端更容易开发也是一个重要的原因。 |
12
HarryQu OP |