Browser 浏览器/服务器如何协同工作以显示html页面?

Browser 浏览器/服务器如何协同工作以显示html页面?,browser,http-headers,response,Browser,Http Headers,Response,我经常听到这个问题 但我只知道如何在很高的层次上回答这个问题 从用户输入URL并点击enter的那一刻起,客户端和服务器端会发生什么,请求/响应是如何工作的?服务器如何与CGI/解释器交互 如果你能告诉我一个有详细信息的URL,或者你能回答的话,这也会很有帮助 当我向人们描述这一点时,我总是觉得他们在寻找细节,而我没有提供足够的细节。 谢谢 规范文档:客户端向服务器发送请求头(通过DNS查找IP) 如果需要,服务器软件(如Apache)会调用CGI并准备响应 它会发回标题和内容 客户端启动通

我经常听到这个问题

但我只知道如何在很高的层次上回答这个问题

从用户输入URL并点击enter的那一刻起,客户端和服务器端会发生什么,请求/响应是如何工作的?服务器如何与CGI/解释器交互

如果你能告诉我一个有详细信息的URL,或者你能回答的话,这也会很有帮助

当我向人们描述这一点时,我总是觉得他们在寻找细节,而我没有提供足够的细节。

谢谢


规范文档:

客户端向服务器发送请求头(通过DNS查找IP)

如果需要,服务器软件(如Apache)会调用CGI并准备响应

它会发回标题和内容

  • 客户端启动通信(通常是HTTP GET请求)
  • 服务器接收请求头并解析其中包含的URL
  • 服务器进行查找,以查看是否有任何URL与硬盘驱动器文件夹中的本地URL匹配。如果Web服务器像Microsoft IIS一样处理虚拟服务器,那么它将在从请求头检索“www.domain.com”部分后确定要搜索的文件夹
  • 若找到了web文档(HTML文件),那个么服务器会将其作为响应+HTTP状态码发送回来(例如,200说:找到了,这个请求进行得很顺利,其中404是“并没有找到那个文件”)
  • 客户端(浏览器)接收响应,现在可以根据需要显示响应。如果它包含一个渲染引擎,那么它将搜索模式(HTML标记或任何语言),然后显示模式
  • 这也称为“无状态”,因为在客户机接收到来自响应流的所有信息后,服务器关闭了与客户机的通信


    因此,服务器无法知道客户机是否仍在连接,也无法知道其是否在稍后提交。许多服务器确实提供了一个会话对象,使用cookies或类似的工具来跟踪发送下一个请求的客户机是否相同,如果是,则允许更“智能”的服务器响应,例如搜索、事务和登录。

    Nice URL。哈哈,如果我问“互联网是怎么工作的?”我会被绞死的。页面可能会让你们对HTTP有更深入的了解。这就是我对它的描述。哈哈。但我需要给出一个完整的屏幕,这还不够详细=/