【问题标题】:How does the URL I type in lead to the eventual content I see in my browser?我输入的 URL 如何指向我在浏览器中看到的最终内容?
【发布时间】:2016-01-20 18:49:15
【问题描述】:

我试图弄清楚这些是如何协同工作的,互联网上到处都是零碎的信息。

这是我(认为)我知道的:

1) 当您在浏览器中输入一个在域名服务器 (DNS) 中查找的 url 时,您会收到一个 IP 地址。

2) 您的计算机随后会按照此 IP 地址访问某处的服务器。

3) 服务器上有名称服务器,可将您引导至服务器中所需的特定内容。 -> 这一步我不清楚。

4) 有了这些信息,您的请求就会被接收,服务器会将网站内容转发给您。

这是正确的吗?我有什么问题?过去一周我进行了很多搜索,但我认为我缺少的是对所有这些细节如何联系在一起的宏观解释。

小问题:

a) 域名服务器如何知道我想要前往哪个站点?

b) 像 GoDaddy 这样的网站如何拥有自己的网址?为什么我必须向他们支付年费,为什么我不能直接购买网址?

我正在寻找有关所有这些东西如何协同工作的连贯性解释。谢谢!

【问题讨论】:

    标签: url dns server hosting ip-address


    【解决方案1】:

    当我将 URL 放入浏览器时如何加载内容?

    关于这个主题有一些非常好的文档可用,每个步骤都有自己的逻辑和算法,我在这里给你介绍一下。

    第1步:DNS Lookup:域名转换为IP地址,在这个过程中,URL中的域名用于通过在多个名为name servers的服务器上查找记录来查找相关服务器机器的IP地址。

    第 2 步:服务请求:一旦知道 IP 地址,作为取决于协议的服务请求以数据包的形式创建并使用 IP 地址发送到服务器机器。如果是浏览器,通常是HTTP request;在其他情况下,它可能是别的东西。

    第 3 步:请求处理:根据服务请求和底层协议,请求由一个软件程序处理,该软件程序通常位于上一步中发现其地址的服务器机器上。根据在服务器程序上编程的逻辑,它会在 HTTP 的情况下返回适当的响应,称为HTTP Response

    第 4 步:响应处理:在此步骤中,您的请求程序在您的情况下,浏览器接收上一步中提到的响应,并按照协议中的定义呈现并显示它,如果是 HTTP,则 HTTP 正文是提取并渲染,用 HTML 编写。

    域名服务器如何知道我想要前往哪个站点

    URL 具有非常明确的格式,浏览器使用该格式查找主机名/域名,然后使用该主机名/域名查找关联的 IP 地址;名称服务器运行不同的算法来找出正确的服务器机器 IP。

    详细了解 DNS 解析here

    像 GoDaddy 这样的网站如何拥有网址?为什么我必须向他们支付年费,为什么我不能直接购买网址?

    域名是需要管理和监管的资源,已完成ICANN 他们有一个叫做注册中心的东西,注册商(如 GoDaddy)从中获取域名并为您预订;您支付的费用由 ICANN 和注册商分摊。

    Registrar 为您做了很多工作,例如设置name server 提供托管等。

    从技术上讲,您可以创建自己的域名,但它不会是免费的,因为您需要创建一个名称服务器,需要将其复制到其他服务器,这样您就可以拥有您想要的任何名称(也可以独特);一个简单的方法是在linux中编辑本地主机文件,它位于/etc/hosts,在windows中它位于C:\Windows\System32\drivers\etc\hosts,但它在互联网上没有好处,因为它不会被其他服务器接受。

    【讨论】:

      【解决方案2】:

      (对这个过程的精确和详细的描述可能会花费太多的空间和时间来编写,我相信你可以在某个地方谷歌它)。因此,虽然非常简化,但您对正在发生的事情有很好的了解,但需要进行一些澄清(同样,我会有些不精确):

      第 2 步:您的计算机确实遵循第 1 步中收到的 IP 地址,但设置到该 IP 地址的请求通常包含一个重要信息,称为“主机标头”,即您在浏览器中键入的实际名称.

      第 3 步:这里不涉及名称服务器,软件(/硬件)通常称为“网络服务器”(例如 Apache、IIS、nginx 等...)。一台网络服务器可以为一个或多个不同的站点提供服务。如果有多个,网络服务器将使用“主机标头”将您定向到您想要的特定内容。

      ICAAN“拥有”域名,而注册过程涉及技术和管理工作,因此您需要向注册商付费。

      【讨论】:

        猜你喜欢
        • 2013-09-01
        • 2014-07-15
        • 1970-01-01
        • 2013-08-28
        • 1970-01-01
        • 1970-01-01
        • 2011-04-19
        • 2021-10-04
        • 1970-01-01
        相关资源
        最近更新 更多