解决ApacheTomcat版本泄露,Apache-Coyote1.1⾃定义
Apache-Coyote是什么
coyote 是 tomcat 的 Connector 框架的名字,简单说就是coyote 来处理底层的 socket,并将 http 请求、响应等字节流层⾯的东西,包装成 Request 和 Response 两个类(这两个类是 tomcat 定义的,⽽⾮ servlet 中的ServletRequest和ServletResponse),供容器使⽤;同时,为了能让我们编写的 servlet 能够得到ServletRequest,tomcat 使⽤了 facade 模式,将⽐较底层、低级的 Request 包装成为 ServletRequest(这⼀过程通常发⽣在Wrapper容器⼀级),这也是为很多⼈津津乐道的 tomcat 对设计模式的⼀个巧妙的运⽤,具体过程将会在以后讨论。
另外摘录了⼀些解释资料关于Coyote框架
不论Tomcat的容器设计得如何精妙,本质上Tomcat就是个http服务器,需要从socket中获得HTTP数据流。
coyote(北美的⼀种狼、⼭狗)
coyote是tomcat的Connector框架的名字,coyote来处理底层的socket,并将http请求、响应等字节流层⾯的东西,包装成Request和Response两个类供容器使⽤。
coyote本质上是为tomcat的容器提供了对底层socket连接数据的封装,以Request类的形式,让容器能够访问到底层的数据。
基本环境
CentOS 7,已经先yum安装好了Tomcat
其实CentOS 7 yum仓库源中⾃带的Tomcat 7.0版本安装,此⽅式安装tomcat版本较低,不推荐
要解决的问题:
服务器Tomcat响应头 暴露Server:Apache-Coyote/1.1信息
解决办法:servlet和tomcat的关系
这个Server: Apache-Coyote/1.1内容是在Apache tomcat的请求返回头中,不是Apache httpd。
低版本的tomcat ,⽐如6、7系列,可能需要在tomcat-coyote.jar修改,http11和or
ajp 的Constants.class :
⾼版本的tomcat,⽐如8 9 系列,可以在l中直接配置 server=“wozuishuai"或者server=”":
在Tomcat的conf⽂件夹打开l⽂件,位置:/etc/l
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
在后⾯加上server属性:server=“apache” ##这个名字可以任意取的。
重新访问测试,tomcat版本就不会暴露很详细了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。