Http请求和操作系统

时间:2021-01-25 04:44:19

标签: java http networking operating-system

当我们从更高级别的程序(如 java、python)进行 http 调用时,在操作系统中执行的步骤是什么。进行 http 调用涉及哪些所有组件?

据我所知,从客户端机器到服务器将建立一个阻塞的网络连接,一旦服务器响应,就会产生一个中断,以通知调用线程。

但对我来说,很少有事情仍然是黑箱

  1. 就操作系统交互而言,http 调用与 RPC 调用有何不同
  2. 连接重用是操作系统或应用程序代码的属性。假设有 2 个客户端在 1 台客户端计算机上运行,​​它们能否重用现有连接?
  3. 一旦来自服务器的响应可供使用,如何通知应用线程。
  4. 编程语言如何处理这个问题有什么区别吗?让我们说 java vs python vs go。

1 个答案:

答案 0 :(得分:1)

<块引用>

就操作系统交互而言,http 调用与 RPC 调用有何不同

它们不是,因为就操作系统而言,两者都只是 TCP/IP 连接。

<块引用>

连接重用是操作系统或应用程序代码的属性。假设有 2 个客户端在 1 台客户端机器上运行,它们能否重用现有连接?

应用程序代码控制重用。

<块引用>

一旦来自服务器的响应可供使用,如何通知应用线程。

操作系统方法调用返回。除非操作系统支持异步调用。答案取决于操作系统和应用程序调用的 API 方法。

<块引用>

编程语言如何处理这个问题有什么不同吗?让我们说 java vs python vs go。

是的。我的意思是,他们几乎做同样的事情,即根据规范实现协议,但他们有自己的代码来做这件事。