【问题标题】:Do the HTTP-Requests resulting out of a HTTP-Response for the origin HTTP-Request have the same IP like origin one由源 HTTP 请求的 HTTP 响应产生的 HTTP 请求是否具有与源 IP 相同的 IP
【发布时间】:2012-11-07 07:43:08
【问题描述】:

标题可能有点混乱,但我不知道如何更容易或不同地解释。我现在正在用 C# 编写本地代理服务器。当浏览器启动并由代理重定向的 HTTP 请求由相应的 Web 服务器响应时,浏览器会启动一堆新的 HTTP 请求,(你能告诉我浏览器是如何知道的,要重新加载什么,以及它是如何工作的吗? ) 图片例如。我需要知道的是:我是否必须为每个重新加载的对象启动一个 DNS 请求,或者是否可以使用第一个 HTTP 请求中的 IP 地址?

你好,托马斯

【问题讨论】:

  • “浏览器启动了一堆新的 HTTP 请求,(你能告诉我浏览器是怎么知道的,要重新加载什么,以及它是如何工作的)” -因为浏览器已经从第一个请求中读取了 HTML 并找到了外部资源,例如 javascript、样式表和图像文件。如果您不知道,您确定要编写代理服务器吗?
  • 我对 HTML 的东西不是很熟悉。但据我所知,当只需要发送和接收数据时,这没什么大不了的。不过还是谢谢!

标签: c# http dns proxy ip


【解决方案1】:

来自Wikipedia

DNS 解析过程通过在响应后将 DNS 请求记录缓存一段时间来减少各个服务器的负载。这需要对副本进行本地记录和后续咨询,而不是在上游发起新请求。解析器缓存 DNS 响应的时间由与每条记录关联的称为生存时间 (TTL) 的值确定。 TTL 由发出权威响应的 DNS 服务器的管理员设置。有效期可能从几秒到几天甚至几周不等。

因此,虽然 TTL 尚未过期,但您可以重复使用已解析的 IP 地址,而无需执行新的 DNS 查找。当 TTL 过期时,您需要执行新的 DNS 查找。

Dns Class 没有公开与 IP 地址关联的 TTL,我不确定它是否缓存了 IP 地址。您可以检查它是否执行缓存,例如,通过使用 Wireshark 查看流量。如果是这样,只需每次调用​​Dns Class 方法。如果没有,请实现您自己的 DNS 客户端或抱怨并每次调用 Dns Class 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2019-07-29
    • 2016-09-28
    • 2013-11-08
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    相关资源
    最近更新 更多