2011-01-27 62 views
27

我最近开始了我作为web应用程序后端开发人员的工作。我有点卡在了解Http请求的生命周期。http请求生命周期

我明白了什么是

  • 每个HTTP请求第一次接触它解决请求的URL域名到IP地址的DNS服务器。
  • 获取Web服务器IP地址请求后,转发给它(通过PUT请求)。像apache这样的web服务器处理这个请求并将其转发给必须处理这个请求的应用程序。

在此之后,我与

  • 丢失如何响应应用程序发送给谁要求,并会Apcache参与这个用户?
  • 我可以通过一些调试工具在浏览器中看到整个流程吗?
  • 有人可以参考一些链接深入了解这一点吗?
+0

添加一个链接:[2.2万维网:HTTP](http://jpkc.ncwu.edu.cn/jsjwl/net/kurose/apps/http.htm) – 2013-09-29 09:21:35

+0

上面的样子现在已经死了,增加了新的一个我发现[Web协议](https://www3.ntu.edu.sg/home/ehchua/programming/#webapp) – 2016-01-02 07:31:02

回答

67

我想你对你的理解有点不对。

如果你到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 request methods。它们具有您可以在RFC中看到的特殊含义。

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

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

HTTP RFC是它如何工作的一个很好的来源。

希望它有帮助。

+0

如何在客户端响应被适当地发送到正确的窗口/标签/应用,其具有提出请求 – Poorna 2012-01-02 17:27:42

1

而服务器接收来自浏览器的请求时,浏览器将被绑定到在浏览器的主机,IP地址和端口号一些端口将与发送到服务器的请求被附接。服务器发送的性反应的IP地址和端口号

2

这是在不同的产品基于公司询问流行的面试问题之一。

HTTP是一种请求 - 响应协议。例如,用户代理通常通过打开与主机上特定端口(默认为端口80)的TCP/IP连接来向服务器发起请求。请求本身包含:

的请求线,

一组请求头的,并 的实体。

的HTTP服务器侦听该端口等待客户端发送的请求消息。在收到请求后,服务器发送的响应包括:

状态行, 一组响应标头,以及 一个实体。 在请求或响应中的实体可以被认为是简单地作为有效载荷,其可以是二进制数据。其他项目是可读的ASCII字符。响应完成后,浏览器或服务器可能会终止TCP/IP连接,或者浏览器可能会发送另一个请求。