Http请求生命周期

Poo*_*rna 35 apache http httpwebrequest

我最近开始担任Web应用程序后端开发人员.我有点不了解Http请求的生命周期.

我的理解是

  • 每个Http请求首先联系DNS服务器,该服务器将请求URL域解析为IP地址.
  • 在获取Web服务器之后,IP地址请求被转发给它(通过PUT请求).像apache这样的网络服务器处理这个请求并将其转发给必须处理此问题的应用程序.

在此之后,我迷失了

  • 应用程序如何将响应发送给请求它的用户,Apcache是​​否会参与其中?
  • 我可以使用一些调试工具在浏览器中查看整个流程吗?
  • 有人可以参考一些链接来深入理解这一点吗?

foe*_*ens 87

我认为你对它的理解有点不对劲.

如果你去www.google.com(不使用任何表格,只想要网站),这就是:

  1. 首先,浏览器需要将www.google.com转换为IP地址,如果它还不知道的话.如果它知道,此时没有任何反应.如果它不知道它,它会联系DNS服务器来解析名称.
  2. 然后,浏览器将打开与www.google.com的IP地址的TCP连接,并发送HTTP GET请求.在这个例子中它将是
    GET / HTTP/1.1
    Host: www.google.com
  3. 服务器软件将获得此HTTP请求.它会以某种方式生成HTTP响应并通过TCP连接发回.服务器如何做到这一点取决于服务器软件.例如,您可以在Apache中插入应用程序代码,或者只是让Apache从文件系统返回一个文件.PHP是由某些软件调用的应用程序,然后生成发送到浏览器的响应.发送响应时,在HTTP版本1.0中,连接将关闭.HTTP 1.1可以具有持久连接.
  4. 当浏览器获得响应时,它通常会在屏幕上呈现它.HTTP请求现在已完成.单击"搜索"将向服务器发送新请求.

GET,PUT,POST,DELETE等是HTTP请求方法.它们具有特殊含义,您可以在RFC中看到它们.

Cookie通常用于跨多个HTTP请求标识同一用户,称为会话.因此,这些cookie称为会话cookie

您可以使用网络嗅探器工具调试通信,例如Wireshark.Firefox有一个名为Tamper Data的第三方插件,可以在将请求发送到服务器之前更改请求.

HTTP RFC是如何工作的良好来源.

希望能帮助到你.

  • 链接我创建的另一个广泛指南......也许它有帮助:https://github.com/hardikvasa/http-connection-lifecycle (3认同)