http请求中的名称解析

2024-09-27 00:11:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从dev服务器向公司内部的服务器发出一个简单的http请求。我发现,根据源/目标服务器的不同,我可能会,也可能不会,被迫使用目标服务器的限定名,比如srvdestination.com.company.world,而不仅仅是srvdestination。你知道吗

我可以这样做,但我不明白为什么我的DB连接工作?你知道吗

假设我有srvorigin。现在,要发出http请求,必须使用限定名srvdestination.com.company.world。但是,对于数据库连接,具有非限定名称的连接字符串就足够了psycopg.connect(host='srvdestination', ...)我知道协议是不同的,但是psycopg2如何解析实名呢?你知道吗


Tags: 字符串dev服务器名称com数据库http目标
1条回答
网友
1楼 · 发布于 2024-09-27 00:11:59

首先,这完全取决于操作系统的名称解析子系统是如何配置的。如果您在Unix上(您没有指定),则由/etc/resolv.conf控制。在这里,您可以向操作系统提供一个搜索列表:如果一个名称没有“足够”的点(该数字是可配置的),则添加一个后缀以重试解析。你知道吗

用于执行HTTP请求的库可能不会查询操作系统的名称解析,而是自行执行其DNS解析。在这种情况下,它只能使用您提供的信息(但也可以重用OS/etc/resolv.conf和其中的信息),因此需要使用全名。 相反,psycopg2可以使用操作系统解析机制,因此可以很好地处理“短”名称。你知道吗

两个库都应该有关于如何处理主机名的文档。。。否则你需要研究他们的源代码。我猜psycopg2是默认libpq标准库的包装器,如果我没弄错的话,它是用C编写的,因此肯定使用标准OS解析过程。你知道吗

我可以理解这种差异带来的好奇,但不管怎样,我的建议是在shell和等效程序上键入命令时保持短名称(即使这样也可能有问题),但在程序和配置文件中始终使用FQDN(完全限定域名)。你会避免很多问题。你知道吗

相关问题 更多 >

    热门问题