点一下关注吧!!!非常感谢!!持续更新!!!

🚀 AI篇持续更新中!(长期更新)

目前2025年06月13日更新到:
AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框架 私有部署 测试上手 架构研究,持续打造实用AI工具指南!📐🤖

💻 Java篇正式开启!(300篇)

目前2025年06月11日更新到:
Java-44 深入浅出 Nginx - 底层进程机制 Master Worker 机制原理 常用指令
MyBatis 已完结,Spring 已完结,深入浅出助你打牢基础!

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
目前2025年06月13日更新到:
大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解

请添加图片描述

Tomcat 与 HTTPS 支持

HTTPS 是用来加强数据传输安全的,HTTP超文本传输协议,明文传输是非常不安全的,HTTPS在传输的过程中会对传输的数据进行加密。

SSL协议

基本介绍

TLS(Stransport Layer Security)协议
HTTP协议是互联网应用最广泛的数据传输协议之一,但HTTP本身不具备加密功能,传输的数据为明文,存在被窃听、篡改、伪造的风险。

HTTPS协议则通过TLS(旧称SSL)加密通道,提供:

  • 数据机密性(Confidentiality):确保数据在传输过程中不会被窃听。
  • 数据完整性(Integrity):确保传输过程中数据不会被篡改或破坏。
  • 身份认证(Authentication):客户端和服务端之间可进行身份验证,确认通信双方的真实性。

工作原理

HTTPS在HTTP基础上,引入了一个TLS/SSL加密层。通信步骤如下:

  • 客户端请求连接:客户端向服务器发送HTTPS请求。
  • 服务器响应并发送证书:服务器返回一个包含其公钥的数字证书。
  • 客户端验证证书:客户端校验数字证书是否合法。验证证书上的域名是否与当前访问域名匹配。
  • 协商加密方式并生成会话密钥:客户端生成随机的对称密钥(Session Key),使用服务器证书中的公钥加密后传给服务器。服务器用自己的私钥解密获得会话密钥。
  • 建立安全连接并传输数据:客户端和服务器端使用会话密钥进行数据加密和解密,实现安全通信。

术基础

非对称加密(公钥加密)

  • 使用一对密钥,分别是公开密钥(Public Key)和私密密钥(Private Key)。
  • 公钥用于加密数据,私钥用于解密数据,私钥永远只存储在服务器端。

常用算法:

  • RSA(应用广泛,但速度较慢)
  • ECC(椭圆曲线算法,效率更高)

对称加密

  • HTTPS传输数据的主体使用对称加密技术,即客户端和服务器端拥有相同的密钥用于加密和解密数据。

常用算法:

  • AES(高级加密标准)
  • ChaCha20(性能好,安全性高)

数字签名与证书

数字证书一般由第三方权威机构(Certificate Authority,简称CA)颁发,包含以下内容:

  • 网站拥有者身份信息
  • 公钥
  • 签发机构的信息
  • 签名和有效期

客户端通过CA根证书确认服务器证书的真实性和有效性,从而信任通信的另一方。

TLS握手过程

TLS握手过程是建立HTTPS通信的关键步骤,其具体流程:

  • 客户端发起连接,提出支持的TLS版本与密码套件。
  • 服务器回应自己的证书、公钥、选定的密码套件。
  • 客户端验证证书有效性后,生成随机密钥,用服务器公钥加密发送给服务器。
  • 服务器用私钥解密出会话密钥,完成握手。

优缺点

优点:

  • 数据传输安全,防止中间人攻击(MITM)。
  • 保护用户隐私与敏感数据。
  • 提升用户对网站的信任感。
  • 符合现代浏览器与搜索引擎的要求。

缺点:

  • 部署成本较高(需要申请和更新证书)。
  • TLS握手阶段会增加网络延迟和服务器资源开销。
  • 需要额外配置和维护证书有效性。

应用场景

  • 电子商务(支付类网站)
  • 银行金融业务系统
  • 电子邮件传输(如Gmail)
  • 社交网络、即时通讯服务
  • 各种Web应用、API接口服务

HTTPS与HTTP的主要区别

● HTTPS协议使用时需要到电子商务认证授权机构(CA)申请SSL证书
● HTTP默认端口是8080端口,HTTPS默认使用8443端口
● HTTPS则是具有SSL加密的安全性传输协议,对数据传输进行加密,效果上相当于HTTP的升级版本。
● HTTP的连接是无状态的、不安全的,HTTPS是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

HTTPS工作原理

在这里插入图片描述

Tomcat HTTPS

生成证书

首先我们需要生成免密的秘钥证书

keytool -genkey -alias wzkicu -keyalg RSA -keystore wzkicu.keystore

对应的截图如下所示:
在这里插入图片描述
生成结束后,在当前目录下有了keystore文件:
在这里插入图片描述

配置XML

vim /opt/servers/apache-tomcat-9.0.98/conf/server.xml

当中的内容如下所示:
在这里插入图片描述
我们需要修改,Connect的部分:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" schema="https" secure="true" SSLEnabled="true"><SSLHostConfig><Certificate
certificateKeystoreFile="/opt/wzk/wzkicu.keystore" certificateKeystorePassword="123123" type="RSA"
/></SSLHostConfig>
</Connector>

修改之后对应的内容如下所示:
在这里插入图片描述

访问网站

https://server:8443

执行结果如下图所示(由于证书是自签的,所以会提示不安全)
在这里插入图片描述

Tomcat 性能优化

Tomcat的性能优化本质上是围绕这些核心功能进行合理的参数调优,以提高吞吐量、降低延迟,最大程度地利用系统资源。

基本介绍

系统性能的衡量指标,主要是响应时间和吞吐量。
● 响应时间:执行某个操作的耗时
● 吞吐量:系统在给定时间内能够支持的事务数量,单位TPS(Transaction PerSecond 的缩写,也就是事务数/秒,一个事务是指一个客户机向服务发送请求然后服务器做出反映的过程)

Tomcat优化主要从以下方面进行:
● JVM的虚拟机优化(优化内存模型)
● Tomcat自身配置的优化(比如是否使用了共享线程池?IO模型?)

Tomcat优化涉及的关键区域包括:

  • 连接器(Connector)优化
  • 线程池优化
  • JVM内存优化(堆、栈)
  • 垃圾回收(GC)优化
  • 缓存优化(静态资源缓存、类加载器)

参数调整

Java虚拟机的运行优化主要是内存分配和垃圾回收策略的优化:
● 内存直接影响服务的运行效率和吞吐量
● 垃圾回收机制会不同程度的导致程序运行中断(垃圾回收策略不同,垃圾回收次数和回收效率都是不同的)

连接器(Connector)

常用的示例:

<Connector port="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"acceptCount="100"maxConnections="10000"maxThreads="200"minSpareThreads="10"enableLookups="false"compression="on"compressibleMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>
  • maxThreads:最大请求处理线程数,200~500,取决于系统资源
  • minSpareThreads:最小空闲线程数(始终准备好的线程数),10~50
  • acceptCount:等待队列中允许的最大连接数,100~300
  • maxConnections:同时处理的最大连接数(包含等待连接),根据系统与并发需求设定
  • connectionTimeout:连接超时(毫秒),20000(20秒)左右
  • enableLookups:DNS反查开关,false(可提升速度)
  • compression:是否启用GZIP压缩,on
  • compressibleMimeType:允许压缩的内容类型,文本类如text/html、text/css等

APR连接器优化

使用APR连接器(需安装native库)可大幅提升性能,尤其对于高并发和静态资源较多的场景。
如果使用APR连接器(如protocol=“org.apache.coyote.http11.Http11AprProtocol”):

<Connector port="8080"protocol="org.apache.coyote.http11.Http11AprProtocol"connectionTimeout="20000"maxThreads="500"acceptCount="500"maxConnections="20000"enableLookups="false"keepAliveTimeout="15000"/>

Java虚拟机内存相关的参数

在Tomcat启动脚本中优化JVM:

JAVA_OPTS="-server -Xms2G -Xmx2G -Xss512k \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+HeapDumpOnOutOfMemoryError \
-Djava.awt.headless=true"

● server:启动Server,以服务端模式运行(服务端模式建议开启)
● Xms:最小堆内存(建议与Xmx设置相同)
● Xmx:最大堆内存(建议设置为可用内存80%)
● XX:MetaspaceSize:元空间初始值
● XX:MaxMetaspaceSize:元空间最大内存
● XX:NewRatio 年轻代和老年代大小比值,取值为整数,默认为2
● XX:SurvivorRatio Eden区与Survivor区大小的比值,取值为整数,默认为8

内存设置(Xms和Xmx)应根据机器物理内存与应用负载确定,一般两者设定相同以减少GC频繁调整。选择合适的GC算法可有效减少垃圾回收暂停,提升应用响应性能。

Web应用参数优化

主要是 web.xml 的配置

<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><init-param><param-name>readOnly</param-name><param-value>true</param-value></init-param>
</servlet>
  • listings:是否允许显示目录列表,false
  • readOnly:是否禁止Tomcat锁定静态文件,true

禁用listings可防止目录暴露,提高安全性;readOnly开启后Tomcat不会锁定静态文件,从而提升文件访问性能。

其他优化

  • 连接池(如HikariCP):合理配置数据源连接池以减少连接频繁创建销毁的开销;
  • 负载均衡:通过Nginx或Apache httpd等反向代理实现负载均衡和静态资源处理;
  • 缓存技术:采用Redis、Memcached等缓存热点数据;
  • 操作系统层面优化:如打开系统TCP快速回收、减少TIME_WAIT、优化文件句柄数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84686.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84686.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84686.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day44-硬件学习之arm启动代码

一、跳转指令实现函数调用 LR&#xff08;链接寄存器&#xff09;&#xff1a;保留函数返回地址 1.1 bl指令 跳转指令bl,使LR保存当前函数进入前的下一条指令的地址&#xff0c;使函数调用后可以返回下一条指令的地址&#xff1b; 1.2 bx指令 跳到目标地址&#xff1b; 1.3 栈…

【数据结构】七种常见排序算法

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 欢迎来到排序算法的学习&#xff0c;恭喜你&#xff01;本期内容主要介绍排序算法&#xff0c;一起来探索吧~ &#xf…

Spring AOP 代理模式解析

一、核心概念&#xff1a;代理模式就像房屋中介 想象你要租一套房子&#xff1a; 你&#xff1a;租客&#xff08;业务调用者&#xff09;房东&#xff1a;房主&#xff08;真实业务对象&#xff09;中介&#xff1a;代理对象 传统方式&#xff08;无代理&#xff09; 租客…

智能制造——案例解读16页制造业指标体系搭建指导【附全文阅读】

文档的主要内容可以总结如下&#xff1a; **文档概述**&#xff1a; 本文档详细探讨了企业为何需要指标体系、指标体系的定义、如何搭建指标体系、如何有效拆解和管理指标&#xff0c;并最后提供了制造业指标体系的参考。 **主要内容**&#xff1a; 1. **企业为什么需要指标体系…

Pandas 数据清洗

数据清洗是数据分析过程中至关重要的一环&#xff0c;也是初学者最容易忽视的步骤。本文将详细介绍如何使用Pandas进行数据清洗&#xff0c;涵盖空值处理、日期格式修正、错误数据识别和重复数据删除四大核心内容。 1. Pandas 清洗空值 空值是数据集中最常见的问题之一&#…

C++容器之 forward_list (单向链表)使用说明

目录 1. 语法格式 2. 说明 3. 用法示例 1. 语法格式 描述控制可变长度元素序列的对象。该序列存储为单向(前向)链接的节点列表&#xff0c;每个节点包含一个 Type 类型的成员。 template <class Type, class Allocator allocator<Type>> class forward_lis…

ali 轻量服务器安装nginx

# Ubuntu sudo apt install nginx-light # 精简版 # CentOS sudo yum install nginx #启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl start nginx sudo systemctl enable nginx #验证安装 nginx -v curl -I 127.0.0.1 #常用命令&#xff1a; # 重新加载配…

【设计模式】4.代理模式

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 代理模式 1. 第一版 class SchoolGirl:def __init__(self):self._name Nonepropertydef name(self):return self._namename.setterdef name(self, valu…

基于微信小程序的美食点餐订餐系统

文章目录 1. 项目概述2. 项目思维导图3. 系统架构特点4. 核心模块实现代码1. 登录注册2. 首页模块实现4. 分类模块实现5. 购物车模块实现6. 订单模块实现 5. 注意事项6. 项目效果截图7. 关于作者其它项目视频教程介绍 1. 项目概述 在移动互联网时代&#xff0c;餐饮行业数字化…

[neo4j]介绍4个开源的知识图谱项目

项目主要介绍几个开源项目&#xff1a; QASystemOnMedicalKG&#xff1a;医疗知识图谱问答 https://github.com/liuhuanyong/QASystemOnMedicalKG Agriculture_KnowledgeGraph&#xff1a;农业知识图谱 Financial-Knowledge-Graphs&#xff1a;小型金融知识图谱 stock-know…

20倍光学镜头怎么实现20+20倍数实现

1. 硬件选择 球机摄像头 选择40倍光学变焦的摄像头 &#xff1a;确保摄像头具有足够的变焦能力&#xff0c;同时考虑摄像头的分辨率、帧率、夜视功能等。 内置云台 &#xff1a;许多高端摄像头已经内置了云台功能&#xff0c;如果是这样&#xff0c;可以简化机械设计和电机控制…

Axios 在 Vue3 项目中的使用:从安装到组件中的使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

【Python打卡Day50】预训练模型与CBAM注意力@浙大疏锦行

现在我们思考下&#xff0c;是否可以对于预训练模型增加模块来优化其效果&#xff0c;这里我们会遇到一个问题: 预训练模型的结构和权重是固定的&#xff0c;如果修改其中的模型结构&#xff0c;是否会大幅影响其性能。其次是训练的时候如何训练才可以更好的避免破坏原有的特征…

ONLYOFFICE Jira 集成应用程序 4.0.0 发布,含新的文件格式支持等多个重大更新!

ONLYOFFICE 与 Jira 集成的重大更新现已发布&#xff01;使用 ONLYOFFICE Docs 在 Jira Software 中处理各种办公文档&#xff0c;从 4.0.0 版本开始&#xff0c;ONLYOFFICE 连接器允许您编辑 PDF 文件和表单、直接从编辑器创建新文件、可视化用户头像、在 Jira 平台内处理新文…

安装区块链相关Geth(基于CentOS7)

注&#xff1a;由于版本冲突问题&#xff0c;请严格按如下介绍版本进行安装 安装所需资料&#xff1a;通过网盘分享的文件&#xff1a;区块链_CSDN 链接: https://pan.baidu.com/s/1dn5xcLtwwFy90xhOWKiWyA?pwdzgzs 提取码: zgzs --来自百度网盘超级会员v6的分享 一、安装运…

系统分析师——计算机系统基础

系统分析师——计算机系统基础 引言 作为系统分析师学习的第一节课&#xff0c;计算机系统基础部分构建了整个知识体系的核心框架。本文将围绕计算机系统的层次结构、硬件组成、软件分类以及关键技术点进行详细总结&#xff0c;为后续深入学习奠定基础。 本节学习内容如下图&…

JS常用设计模式汇总

1、基于类的单例模式 // PageManager.js class PageManager {constructor(config) {if (!PageManager.instance) {this.config config;this.initialized false;PageManager.instance this;this.init();}return PageManager.instance;}init() {if (this.initialized) return…

迈向软件开发 T 型人才之路:构建多元能力体系

在软件开发的广袤天地里&#xff0c;T 型人才备受瞩目。这类人才犹如具备强大能量的 “多面手”&#xff0c;既有深入专精的技术能力&#xff0c;又有广泛多元的知识与技能储备&#xff0c;能够从容应对复杂多变的项目需求&#xff0c;引领行业创新发展。于当今社会而言&#x…

SALMONN-omni论文阅读

论文链接 项目链接 名词理解&#xff1a; backchanneling&#xff1a; 指的是听话人在不打断说话人的情况下&#xff0c;用简短的语气词或动作表示“我在听”“我理解了”的反馈。 常见示例包括&#xff1a; “嗯哼”&#xff08;“uh-huh”&#xff09; “对的”&#xff08…

区块链:什么是DeFi?

DeFi&#xff08;去中心化金融&#xff0c;Decentralized Finance&#xff09; 是一种基于区块链技术的金融生态系统&#xff0c;旨在通过去中心化的方式提供传统金融服务&#xff08;如借贷、交易、储蓄等&#xff09;&#xff0c;无需依赖银行、经纪商等中介机构。DeFi主要构…