gpt4 book ai didi

django - 什么是服务器异步响应?

转载 作者:行者123 更新时间:2023-12-04 13:40:52 26 4
gpt4 key购买 nike

我正在阅读有关实时网络的信息,并且注意到一句话 allow Django to do async responses .到目前为止,我所理解的是,可以通过使用 Ajax 从同一侧发出多个 Http 请求来实现客户端的并行性,但对于服务器来说,这些只是单独的请求,每个请求都在自己的线程中处理。

我如何看待它的工作:

  • 客户端发送两个请求
  • 服务器接收它们并在自己的线程中解决它们,并返回给客户端

  • 什么是异步服务器的概念示例?

    最佳答案

    HTTP 是一种阻塞、同步的协议(protocol)。这意味着客户端必须等待服务器的响应才能继续。服务器阻止客户端做任何事情;因为客户端必须等待响应通过。浏览器收到响应后,断开连接,然后打开另一个连接,并重复该过程,直到获取页面的所有元素以进行显示。

    这是网络的状态,也是 HTTP 协议(protocol)的本质。

    Ajax 只是创建了一个后台进程来执行浏览器会执行的操作——它仍然是阻塞的,但最终效果是用户仍然可以与客户端交互。浏览器正在显示某些内容并且没有被有效地“阻止”。

    “实时”网络允许您拥有一个非阻塞、异步的开放式套接字。
    异步意味着您不必等待响应返回 - 客户端不会被阻塞。您可以发送多个请求,然后当服务器完成它们时,它会回复。您不必“等待”。

    您每天使用的许多东西都是异步的:

  • 任何聊天应用程序 - 例如 IRC、facebook messenger、whatapp 等。
  • 与一个非常健谈的 friend 的电话交谈(通常,你会等着听对方的回应,但有些人只是说话和说话......)。
  • 任何正在流式传输的内容,例如 YouTube。

  • 将其简单地视为“一方不必等待再次开始传输”。

    在 Web 中,实时是通过绕过 HTTP 的限制来实现的。这是 WebSocketsServer sent events (SES)进来。

    第一种是通过 TCP 打开全双工(即可以同时发送和接收) channel 的标准方式。

    第二个(SES)仍然作为 HTML5 的一部分进行标准化,但它允许服务器向客户端推送通知,而不是客户端必须轮询服务器以获取事件。因此,不是您发送检查更新的请求,而是服务器会在有更新时告诉您——比如“不要给我打电话,我会调用你”。

    关于django - 什么是服务器异步响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461325/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com