我知道 OSI 模型本质上是如何工作的(并且它们略有不同),但我想知道人们通常认为 javascript 在 OSI 模型的哪一层上运行。
答案1
好吧,你的问题并不像 HeavyD 所说的那样容易被忽视,但他/她有 90% 是正确的。
有一个用于 js 的 Berkley Sockets 实现,叫做套接字输入输出,其调用映射到第 7、4 和 3 层。请参阅我在此处的回答,了解有关套接字调用如何映射到 OSI 层的讨论:连接到网站涉及的 OSI 模型详细步骤是什么?
因此,JavaScript 和任何编程语言一样,并不在任何特定层运行。不过,有些功能和库实现确实映射到 OSI。
OSI 是关于功能和责任的,而不是形式,因此可以说没有一种编程语言出现在堆栈的任何一点(包括 L7);它完全取决于你用该语言做什么,以及它如何与网络堆栈集成。你用任何语言编写的任何代码的 99% 都将始终处于应用程序层。访问网络通常是一件微不足道的事情,只需要少量可重复使用的代码,但你对传输的数据的处理才是任何给定程序的真正核心。例如,AJAX 刷新将调用服务器并请求 JSON 文本。JSON 和 AJAX 很重要,并且发生在应用程序层。然而,相比之下,检索它的实际连接几乎可以忽略不计。