apache Http请求生命周期

x7rlezfr  于 2022-12-30  发布在  Apache
关注(0)|答案(4)|浏览(132)

我最近开始了Web应用程序后端开发人员的工作,我有点卡在理解Http请求的生命周期上。
我的理解是

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

在这之后我迷失了

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

pftdvrlh1#

我认为你对它的理解有点错误。
如果你去www.google.com(不使用任何形式,只是想要的网站),这是什么发生:
1.首先,浏览器需要将www.google.com转换为IP地址(如果它不知道)。如果它知道,此时不会发生任何事情。如果它不知道,它会联系DNS服务器来解析名称。
1.然后,浏览器将打开一个到IP地址www.google.com的TCP连接,并发送一个HTTP GET请求。
第一个月
1.服务器软件将得到这个HTTP请求。它将以某种方式生成一个HTTP响应并通过TCP连接将其发送回去。服务器如何做到这一点取决于服务器软件。例如,你可以在Apache中插入应用程序代码,或者只是让Apache从文件系统返回一个文件。PHP是一个由某些软件调用的应用程序,然后生成发送到浏览器的响应。当响应发送时,在HTTP版本1.0中连接关闭。不过HTTP 1.1可以有持久连接。
1.当浏览器收到响应时,通常会将其呈现在屏幕上。HTTP请求现在已经完成。单击“搜索”将向服务器发送一个新的请求。
GET、PUT、POST、DELETE和其他HTTP请求方法。它们有特殊的含义,你可以在RFC中看到。
Cookies通常用于在多个HTTP请求(称为会话)中标识同一用户,因此这些Cookie称为会话Cookie
您可以使用网络嗅探器工具来调试通信,例如Wireshark . Firefox有一个名为Tamper Data的第三方插件,可以在请求发送到服务器之前更改请求。
HTTP RFC是一个很好的资源,它是如何工作的。

czq61nw1

czq61nw12#

服务器收到浏览器的请求后,将浏览器绑定到主机的某个端口上,在向服务器发送请求时,会附上浏览器的IP地址和端口号,服务器向IP地址和端口号发送响应

zy1mlcev

zy1mlcev3#

这是在各种产品为基础的公司问的流行面试问题之一。
HTTP是一种请求-响应协议。例如,用户代理向服务器发起请求,通常是通过打开与主机上特定端口(默认为端口80)的TCP/IP连接。请求本身包括:
请求线,
一组请求报头和一个实体。
侦听该端口的HTTP服务器等待客户端发送请求消息,收到请求后,服务器发送响应消息,该响应消息包括:
一个状态行、一组响应标头和一个实体。请求或响应中的实体可以简单地看作是负载,它可以是二进制数据。其他项是可读的ASCII字符。响应完成后,浏览器或服务器可能会终止TCP/IP连接,或者浏览器可以发送另一个请求。

b91juud3

b91juud34#

我发现此资源对理解HTTP lifecycle期间所采取的步骤非常有帮助:实际上很有趣,虽然,不知道所有的中间步骤,特别是w/该高速缓存检查时,确定一个URL的IP Address
https://medium.com/@maneesha.wijesinghe1/what-happens-when-you-type-an-url-in-the-browser-and-press-enter-bb0aa2449c1a

相关问题