当我在 Web 浏览器中访问 localhost:8080 时到底发生了什么?(Apache Tomcat)

sof*_*eng 11 windows tomcat port localhost

我的职业生涯一直在从事所有本地应用程序编程(C++ 应用程序等等)。然而,我现在正努力涉足网络世界。我正在使用 Eclipse (Mars) 和 Apache Tomcat 8.0.23 来尝试设置一个环境,我可以在其中试验和学习服务器端编程(JSP、PHP 等)。我已经设置好了,所以当我打字时

localhost:8080
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,它指向正确的 tomcat 页面。我知道这可能很简单,但在这里让我大吃一惊。

当我输入 localhost 时到底发生了什么?

如果不是互联网,tomcat 页面从哪里来?我很确定数据来自服务器,多亏了 Tomcat,它在我的 PC 上,但是我的浏览器怎么知道在哪里可以找到来自 localhost:8080 的信息?

我假设 8080 是一个端口或其他东西,但我也不确定,如果它是一个端口,我不确定这意味着什么。

基本上我所知道的(我认为......)关于服务器端 Web 开发是,在纯 html/css Web 开发中,所有工作都是在下载完所有内容后在本地完成的,但是对于服务器,一些工作(在某些分隔符内)会转到服务器并以不同的形式返回到 html 中(很像将数据发送到 C++ 中的函数并返回不同的数据),然后再次在本地绘制到页面。

Kei*_*lds 9

当我将 Web 浏览器定向到 localhost:8080 时到底发生了什么?

  1. 您导致您的网络浏览器要求您的操作系统解析主机名localhost。操作系统通常会将主机名解析localhost127.0.0.1,您的环回接口。

  2. 任何主机名或 IP 地址后跟 a:和端口号,例如:8080告诉浏览器连接到该 TCP 端口,而不是默认的 Web 服务器端口 80。

    就像http://localhost:80/, http://localhost/, http://127.0.0.1/:80, 和http://127.0.0.1/每个都连接到相同的服务器和端口一样http://localhost:8080/http://127.0.0.1:8080/也连接到相同的 IP 地址但在 TCP 端口 8080 上

附加说明:在 HTTP/1.1 中,即使 Web 浏览器连接到相同的 IP 地址和端口,对于许多 Web 服务器,localhost 和 127.0.0.1 之间也存在细微差别。根据地址栏中的内容,您的浏览器将发送包含其中之一Host: localhost或其中Host: 127.0.0.1之一的请求标头字段。正确配置 Web 服务器后,浏览器的 Host 标头字段允许单个 Web 服务器侦听单个 IP 地址端口,并为解析为相同 IP 地址的许多不同域提供不同的网页。

操作系统通常如何解析像 localhost 这样的主机名?

  1. 在 Unix 系统或类 Unix 的操作系统(如 Linux 或 Freebsd)上,该文件是 /etc/hosts,并且可能包含如下几行:

    127.0.0.1   localhost
    ::1     localhost ip6-localhost ip6-loopback
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在 Windows 上,该文件c:\windows\system32\drivers\etc\hosts通常具有类似的行:

    127.0.0.1   localhost
    
    Run Code Online (Sandbox Code Playgroud)

附加说明:如果您愿意,可以在 hosts 文件中添加如下几行:

127.0.0.1     localhost
127.0.0.1     developer.yourdomain.com
# Deny Browser Request For These Sites
127.0.0.2     www.spam.advertisements.com
127.0.0.2     super.ads.com
# Block These Sites
127.0.0.3     www.dont.go.here.com
127.0.0.3     nsfw.stuff.com 
Run Code Online (Sandbox Code Playgroud)
  • http://developer.yourdomain.com:8080/浏览器地址栏中的统一资源定位器 (URL) 指示 Web 浏览器与本地环回地址 127.0.0.1 的端口 8080 建立 TCP 连接。

  • 此外,根据rfc1700 page 4,127.0.0.0/8范围内的任何地址也是环回地址。因此,在您的计算机上运行的正确配置的网络服务器可以拒绝端口 127.0.0.2 上的所有请求,同时为 127.0.0.3 上的连接提供通用的“您不应该去这里。站点被阻止”消息。

tomcat 页面来自哪里?

Apache Tomcat 是一个服务器,它侦听端口并运行 Java 程序来生成要发送到浏览器的内容。