百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

关于本地主机 Localhost (127.0.0.1) 的一些科普小知识

lipiwang 2024-10-21 08:55 12 浏览 0 评论

当您(或您的计算机)呼叫一个 IP 地址时,您通常是在尝试联系互联网上的另一台计算机。 但是,如果您调用 IP 地址 127.0.0.1,那么您正在与 localhost 进行通信 – 原则上是与您自己的计算机进行通信。 但是与自己开始虚拟对话有什么意义呢? 您需要 localhost 做什么以及它是如何工作的?

什么是本地主机?

在解释什么是 localhost 时要说明的第一点是,它始终是您自己的计算机:当您调用 localhost 时,您的计算机正在与自己对话。然而,这是一种浓缩的方法。本地主机并不总是与您的计算机直接识别。在大多数情况下,它有一个单独的 IP 地址,例如 192.168.0.1。在您的个人网络中,这与您在 Internet 上使用的网络不同,通常由 Internet 服务提供商动态分配。当您谈论本地主机时,您指的是在您自己的计算机上使用服务器时。

相反,这意味着该术语仅在网络上下文中使用。 “本地主机”不仅是虚拟服务器的名称,也是它的域名。就像 .test、.example 或 .invalid 一样,.localhost 是为文档和测试目的而保留的顶级域。当您尝试访问域时,会触发环回。如果您在浏览器中访问“http://localhost”,请求将不会通过路由器转发到 Internet,而是保留在您自己的系统中。 localhost 的 IP 地址为 127.0.0.1,它指的是您自己的服务器。

127.0.0.1 – 环回如何工作?

IP 地址在网络内用于相互通信。网络中的每个参与者都有自己的地址。使用该系统时,通过 TCP/IP 发送的数据包能够到达正确的目的地。协议对传输控制协议 (TCP) 和互联网协议 (IP) 是互联网的一些基石。但是,TCP/IP 也用于 Internet 之外的本地网络中。在传输过程中,互联网协议负责允许 IP 地址和子网掩码寻址网络中的用户。

公共 IP 地址(可以通过互联网访问的地址)的分配由一个国际组织监管:互联网名称与数字地址分配机构 (ICANN)。 ICANN 还负责域名或域名系统 (DNS) 的分配。但是,某些地址范围是为特殊目的而保留的,例如从 127.0.0.0 到 127.255.255.255 的范围。没有关于为什么选择该范围的可靠信息,但您可以自由推测。

直到 1990 年代,互联网上的 IP 地址被划分为不同的类别。第一类(A 类)以 0.0.0.0 开始(这个地址也是保留的),以 127.255.255.255 结束。 127 是 A 类网络中的最后一个块。这个重要的职位可能是它被选中的原因。

可以在此地址范围内设置 Localnet。这个范围的特别之处不仅在于它是由 ICANN 保留的,而且它的 IP 地址也不是唯一分配的,这通常是这种情况。但它是如何工作的?

例如,如果您在浏览器中输入 IP 地址(或相应的域名),路由器会将您的请求转发到互联网和正确的服务器。 这意味着如果您输入 172.217.0.0,您将到达 Google 主页。 但是,情况与 127.0.0.1 不同,因为对该地址的请求不会被转发到 Internet。 TCP/IP 从第一个块 (127) 中识别出您不想访问 Internet,而是在呼叫自己。 然后这会触发环回。

事实

相反,该协议不接受发往 127.0.0.1 的外部请求,因为这意味着攻击者可能会试图潜入他们的系统。 据报道,从保留 IP 地址(如 127.0.0.1)出现在互联网上的数据包被称为火星数据包。

创建一个环回设备,以便到您自己的计算机的反向链接正常工作。 这是通过操作系统创建的虚拟接口。 对于 Unix 系统,该界面称为 lo 或 lo0,也可以使用 ifconfig 命令显示。 用于 Windows 的类似命令是 ipconfig。

本地主机是做什么用的?

开发人员使用本地主机来测试程序和 Web 应用程序。网络管理员也可以使用环回来测试网络连接。 localhost 的另一个实际用途是 hosts 文件,您可以在其中使用环回来阻止恶意网站。

  • 用于测试目的

本地主机在 Web 服务器中的主要用途是对需要通过 Internet 进行通信的应用程序进行编程。在开发过程中,重要的是要确定应用程序在可以访问 Internet 后是否真的按预期工作。 Localhosts 的其他功能只有在可以在 Internet 上找到所需文件的情况下才能实现 – 例如,在您的 PC 上打开 HTML 文档或将其加载到服务器上并访问它是有区别的。发布未完成的产品而不进行测试是没有意义的,因此开发人员使用环回来测试它们。他们可以刺激连接,同时避免网络绕道:相反,连接完全保持在他们自己的系统内。

使用 localhost 进行测试的另一个优点是它的速度。当您通过 Internet 发送请求时,需要 100 多毫秒。如果向 localhost 发送 ping,最大传输时间仅为 1 毫秒。通过这项技术,您还可以了解 Internet 协议是否正确实施。要自己测试,只需打开命令提示符 (Windows) 或终端 (Unix/Mac) 并使用 ping 命令。您可以将其发送到域 localhost 或直接发送到 IP 地址。

ping localhost
ping 127.0.0.1

如果您想在您的 PC 上设置您自己的测试服务器以通过 localhost 对其进行寻址,您首先需要安装正确的软件。 通常可以在您自己的计算机上运行任何标准 Web 服务器,但也有专门设计用作 localhost 的特殊软件——例如 XAMPP。

  • 阻止网站

本地主机也在主机文件中发挥作用。 原则上,该文件是域名系统 (DNS) 的前身:在其中可以将 IP 地址分配给相应的域。 如果在浏览器中输入网址,需要将域名翻译成IP地址。 它曾经是主机文件,但现在您通常会使用全球 DNS。 但是,主机文件仍然存在于大多数操作系统中。 对于 Windows,您可以在 \system32\drivers\etc\hosts 下找到该文件; 对于 macOS 和其他 Unix 系统,它位于 /etc/hosts 下。

如果您自己没有进行任何文件更改,则可能还剩下以下两个条目:

127.0.0.1   localhost
::1         localhost

这确保了 localhost 的名称解析不必通过 Internet 完成。您还可以使用该文件来阻止某些网站。为此,请在列表中输入要阻止的网站,并为域分配 IP 地址 127.0.0.1。如果您(或者可能是恶意脚本)尝试调用锁定的域,浏览器将首先检查主机文件,并在那里找到您的条目。另一种选择是使用域名 0.0.0.0。

然后浏览器会尝试访问服务器上对应的127.0.0.1网站。但是,浏览器不太可能找到它,因为请求的文件将不存在。但是,如果您已经设置了自己的测试服务器,那么浏览器可能会找到 home.html,但这只是您自己的文件。如果您尚未设置自己的测试服务器,则会出现错误消息而不是请求的网站。该技术还可用于关闭整个系统的广告插入。为了不必手动输入每个条目,您可以在 Internet 上找到已完成且定期扩展的主机文件。

相关推荐

软件测试|MySQL CROSS JOIN:交叉连接的详细解析

简介在MySQL数据库中,CROSSJOIN是一种用于生成两个或多个表的笛卡尔积的连接方法。CROSSJOIN不需要任何连接条件,它将左表的每一行与右表的每一行进行组合,从而生成一个包含所...

「MySQL笔记」left join-on-and 与 left join-on-where 的区别

1.摘要关于这两种写法的重要知识点摘要如下:left-join时,即使有相同的查询条件,二者的查询结果集也不同,原因是优先级导致的,on的优先级比where高on-and是进行韦恩运算连接...

MySQL中的JOIN——联合查询的基本语法

MySQL中的JOIN指令用来将两个或多个表中的数据进行联合查询,根据连接条件来匹配记录,从而得到需要的结果集。在MySQL中,常见的JOIN类型包括INNERJOIN、LEFTJOIN和RIGH...

MySQL 中的 CROSS JOIN:强大的连接工具

CROSSJOIN在MySQL里是一种挺特别的连接操作,它能弄出连接表的笛卡尔积。这就是说,要是表A有m行,表B有n行,那ACROSSJOINB的结果就会有m*n...

大厂必问:MySQL 三表 JOIN 操作的解析与性能优化,效率又如何?

大厂必问:MySQL三表JOIN操作的解析与性能优化策略,效率又如何?点击关注,开启技术之旅!大家好,这里是互联网技术学堂,无论你是一名程序员、设计师、还是对技术充满好奇心的普通人,都欢迎你加入...

面试题:MySQL 的 JOIN 查询优化(mysql查询优化方法)

MySQL的JOIN查询优化是提升数据库性能的关键环节。以下是综合多个技术文档的核心优化策略,按优先级和实现难度分类:一、索引优化:性能提升的基础为连接字段建立索引确保参与JOIN的列(通常...

Flink中处理维表关联技术实现路径

在Flink中处理维表关联大体氛围TableSQLLookupJoin和DataStream算子函数,主要技术实现路径:I.FlinkSQL/TableAPI中的Lookup...

深入剖析Zookeeper原理(一)整体设计

1.ZK集群架构设计与特性1.ZK集群架构设计:ZK主要分为三种角色:Leader(领导者):一个Zookeeper集群同一时间只会有一个实际工作的Leader,它会发起并维护与各Follwer及...

多种负载均衡算法及其Java代码实现

首先给大家介绍下什么是负载均衡负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英...

一分钟了解SpringCloud中的ribbon到底是什么,原理是啥?

1.概念ribbon是一款客户端负载均衡器,用于微服务之间的负载均衡。首先,什么是客户端负载均衡?如图,ribbon可以通过注册中心获取服务列表,然后自己执行自己的负载均衡策略来决定要访问哪个微服务,...

Step by Step之腾讯云短信-验证码实践

在商城小程序和前端上线用了一阵子之后,用户提出了体验提升的需求,如忘记密码、绑定用户、快捷注册等,作为业界最佳实践的短信验证码登录、重置密码和注册等功能开发也就提上日程了,本文就以重置密码为例,将验证...

10分钟入门响应式:Springboot整合kafka实现reactive

Springboot引入Reactor已经有一段时间了,笔者潜伏在各种技术群里暗中观察发现,好像scala圈子的同仁们,似乎对响应式更热衷一点。也许是因为他们对fp理解的更深吧,所以领悟起来障碍性更少...

使用java随机生成有个性的用户名,LOL地名+水浒传,合计2808个

*随机生成用户名*取水浒传108好汉名字*取LOL地名26个,组合而成*一共可以生成2808个不同特色的用户名如果你在上网的时候,用户名难取的话,这里有很多可选择的用户名,现提供100个...

深入理解Math.random()的概率分布特性

直接上源码/***Returnsa{@codedouble}valuewithapositivesign,*返回一个带符号的double类型的数字,说人话就是返回一个非负...

编程英文 - 创建/生成/构建 (create/generate/build)

在软件开发中,create、generate和build这三个词经常被用到,它们都与"创造"或"产生"某些东西有关,但在具体使用场景和含义上有所不同。基本含义creat...

取消回复欢迎 发表评论: