Tomcat8080、80、8443、443端口及对应http、https协议详解

近期由于项目需要,将购买的阿里云服务器Windows版换成了linux的CentOS版本,tomcat需要重新配置https协议,再次被server.xml里边的这几个connector搞得欲死欲仙,索性这次多深入写了解下它们的区别,也方便下以后跟我踩一样的坑的同学们。

我们要弄清楚的,是以下四个概念:

一、

在tomcat的配置文件中有以下几个常见端口:

8080和80都是HTTP端口,8443和443为HTTPS端口

8005为远程停服务端口

8009为AJP端口,APACHE能通过AJP协议访问TOMCAT的8009端口。

二、

当网址为http://时,默认端口为80

当网址为https://时,默认端口为443

以上两种都可以省略端口号,可以直接写成http://zzuxh.top/或https://zzuxh.top/,后边跟上我们项目的接口URI。

如果是http的8080端口,或者是https的8443端口,则不能省略,要在域名之后加上端口,如 http://zzuxh.top:8080/ 、 https://zzuxh.top:8443/

但默认情况下我们的server.xml里边只有一个http请求对应的8080端口connector是开启的,剩下的http和https端口:80,443,8443,前两个没有,最后一个被注释了,都需要手动配置启用。

三、

这四个http/https端口, 除了8080之外,都是tomcat固定的,不能改动。也就是说8080是可变的,我们可以把端口号是8080的那个connector,里的port改成别的端口,如8808,9123啥的。

四、

connector是可以多个同时存在的,意思就是我们可以同时把这四个端口的connector都配置了,这样的话,以下四个接口:

http://zzuxh.top/Sell/user/login

https://zzuxh.top/Sell/user/login

http://zzuxh.top:8080/Sell/user/login

https://zzuxh.top:8443/Sell/user/login

是同时有效的!只不过坏处是tomcat一启动会同时占据好多个端口。

 

有人可能会问:在一个connector里:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

这个redirectPort属性又是什么意思呢?它为什么要重定向到8443端口呢?

首先我们要知道,请求的发送方,也就是客户端,可以指定请求的协议是http,还是https。 

既然如此,我们的后台服务器自然也可以指定自己接收哪种协议的请求,比如在springMVC和springboot框架里,我们可以通过设置RequestMapping的属性来确定接收http协议的请求还是https协议的请求,如果我们在一个controller里定义的一个方法,只处理https请求,而不处理http请求,我们就可以设置redirectPort="8443",来将请求转发到8443端口,这个转发是tomcat自己进行的,当http请求找不到对应的处理方法时,如果设置了这个属性,tomcat就会把它转成https请求再试一次。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请保持优秀。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值