本地主机:8080 是什么意思?

42
本地主机/网页(localhost/web)和本地主机端口8080/网页(localhost:8080/web)之间有什么区别?

6
如果URL中未指定端口,则用户代理将假定一个默认端口。对于HTTP URL,默认端口通常为80,对于HTTPS URL,默认端口通常为443。 - eckes
6个回答

54

TCP/IP连接总是建立在一个IP地址上(您可以将IP地址视为特定计算机的地址,尽管并非总是如此)该地址上的一个特定(逻辑而非物理的)端口。

通常,一个端口被绑定到目标计算机上的特定进程或“服务”。一些端口号是标准化的,例如80用于http,25用于smtp等。由于这种标准化,您通常不需要在Web地址中输入端口号。

因此,如果您说类似于http://www.stackoverflow.com这样的话,部分“stackoverflow.com”将解析为一个IP地址(在我的情况下为64.34.119.12),因为我的浏览器知道标准,它会尝试连接到该地址上的端口80。因此,这与http://www.stackoverflow.com:80相同。

但是,并没有什么可以阻止进程在另一个端口(如12434、4711或8080)上监听http请求。通常(就像在您的情况下),这是为了调试目的而使用的,以免与已在同一台计算机上监听端口80的其他进程(如IIS)混淆。

2021年的注释:当我写这篇文章时,我使用端口80作为示例,因为即使OP没有指定协议,http也是那个时候常用的Web请求标准,而80是http的标准端口。现在,几乎所有东西都在https上运行,其标准端口是443。


6
我明白了。所以8080大多是用于调试/测试的惯例...但使用80端口会如何干扰其他进程呢?80端口不是一直被同时访问着吗?谢谢。 - whamsicore
6
端口80可以被多个客户端访问,但只能有一个进程“接听”并处理这些请求。我不是100%确定,但如果您尝试监听已由其他进程打开的端口,则可能会出现错误。 - TToni
8
你一定会失败。调用bind()将失败,并在不同平台上具有类似的语义。请注意,虽然可以在不同的接口上监听相同的端口(例如,如果你的接口具有IP地址192.168.1.123和127.0.0.1,则可以让不同的进程分别在192.168.1.123:80和127.0.0.1:80上监听而没有问题)。 - Piskvor left the building
请注意,在Windows系统中,您可以使用多个进程在单个端口/ IP上侦听http请求 - 有点像。这是因为有一个名为“http.sys”的内核驱动程序,它允许您为进程注册URL并相应地分配请求。因此,从TCP / IP堆栈的角度来看,仍然有一个接收器,但现在是Windows内核。有关更多详细信息,请参见https://www.codeproject.com/Articles/437733/Demystify-http-sys-with-HttpSysManager。 - TToni

17

localhost/web 相当于 localhost:80/web 或者 127.0.0.1:80/web

localhost:8080/web 相当于 localhost:8080/web 或者 127.0.0.1:8080/web


2
我的主机地址是127.1.2.3,哈!实际上,所有以“127.”开头的地址都会解析为本地主机。 - TToni

4

localhost:8080 指的是你明确地指定了端口 8080。


2

http://localhost:8080/web: localhost(主机名)是主机服务器的名称或IP地址,例如Glassfish、Tomcat。 8080(端口)是主机服务器监听请求的端口地址。

http://localhost/web: localhost(主机名)是主机服务器的名称或IP地址,例如Glassfish、Tomcat。 主机服务器监听默认端口80。


2

http: //localhost:8080/web

这里:

  • localhost(主机名)是主机服务器的名称或IP地址,例如Glassfish,Tomcat。
  • 8080(端口)是主机服务器监听请求的端口地址。

http ://localhost/web

这里:

  • localhost(主机名)是主机服务器的名称或IP地址,例如Glassfish,Tomcat。
  • 主机服务器监听默认端口80

2

HTTP使用端口80,因此当您输入地址时,您的Internet浏览器会自动使用该端口 - 除非您指定另一个端口。现在,在计算机上运行Web服务器时,您需要以某种方式访问该服务器 - 并且由于端口80已经忙碌,因此您需要使用不同的端口才能成功连接到它。虽然任何开放的端口都可以使用,但通常这样的服务器配置为使用端口8080,因此在访问服务器时,您输入:

http://(协议) localhost(您的计算机) :8080(端口8080) /(指向服务器公共文件夹根目录的路径)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接