这里所讲QUIC是指已成为主流标准的IETF QUIC。希望阅读本文章的朋友,已经是对QUCI和ECH有些许了解,如无,先去学习了解下QUCI和ECH吧。ECH是TlS1.3里的一个扩展功能,用来应付明文SNI存在泄露问题。QUIC支持TLS1.3,那QUIC也支持TLS1.3下的ECH嘛?本博主在网上找这方面说法或证据,但直到现在都没找到。那找不到,就自己动手来证明吧。找些现有支持http3站点
原创 2月前
61阅读
安全加固 1、禁止目录浏览/隐藏版本信息 编辑nginx.conf配置文件,HTTP模块添加如下一行内容,并重启:autoindex off; #禁止目录浏览 server_tokens off; #隐藏版本信息2、限制http请求方法if ($request_method !~ ^(GET|HEAD|POST)$ ) { return444; }3、限制IP访问loc
转载 2024-03-29 11:53:57
274阅读
在Linux系统中,ifconfig和echo是两个非常常用的命令。ifconfig命令用于配置网络接口参数,如IP地址、子网掩码、网关等;echo命令用于输出字符串。这两个命令的灵活运用能够帮助用户更好地管理网络以及进行字符串的处理。 首先,ifconfig命令可以用于查看网络接口的信息,如IP地址、MAC地址、子网掩码等。通过ifconfig命令,用户可以轻松地查看当前系统的网络情况,并及时
原创 2024-04-28 11:14:41
44阅读
​​这边文章​​中提到过虽然 TLS 能够加密整个通信过程,但是在协商的过程中依旧有很多隐私敏感的参数不得不以明文方式传输,其中最为重要且棘手的就是将要访问的域名,即 SNI(Server Name Indication)。同时还有用于告知客户端可用的应用层协议的 ALPN 拓展,泄露这个会导致攻击者知道服务器所支持的服务以及连接的用途。 之所以会暴露如此重要的内容,并不是设计时的失误,
原创 2023-01-08 09:05:16
1613阅读
先看效果这是正常状态下的验证码大小 最近在用jdk8之后的版本做项目 发现之前写的验证码生成器不好使了 发现jdk8之后没有sun.font.FontDesignMetrics这个类了 于是开发了这个2.0版本同时也在1.0基础上进行了优化这里是1.0版本:1.准备字体把字体丢到项目目录下的fonts文件夹里 这里不提供字体下载了 网上找找就有了 没有字体怎么办?打开控制面板 这里的字体随便拷就行
转载 2023-09-29 19:39:18
198阅读
前言最近在做一个项目,某个接口查询数据到返回数据总计需要7000+毫秒,一直在考虑优化的问题,优化也有原来的一家一家查询到一次查询所有的,在查询不同天数。结果是1500+,虽然优化了不少,但是数据结构会变化,前台渲染数据会更加麻烦,暂时也没有更新。所以后来就采用了缓存的机制,查询的数据缓存10小时,虽然第一次查询比较慢,但是以后会好很多。正文1. 关于选型:redis or ehcache在使用缓
转载 2023-05-25 14:06:41
305阅读
需求:在代码中创建HashMap对象,存储相应对象的键——值对,在需要时,通过key,调用相应的对象,减少数据库的访问量实现过程:1、创建HashMap对象:private HashMap<String, MessagesParticipatorInformation> chatParticipator = new HashMap<>();2、给chatParticipat
1.利用HashMap加同步说明:把HashMap当作缓存容器。每缓存一个key的时候,都进行同步。代码:package memory; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class MemorySecond<K, V> implements Computable&
转载 2023-05-29 14:54:21
169阅读
 通过消息队列进行数据同步至 Redis,然后 Java 应用直接去取缓存。这个阶段的优点是:由于是使用的分布式缓存,所以数据更新快。缺点也比较明显:依赖 Redis 的稳定性,一旦 Redis 挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到 DB。第二,三阶段:JavaMap 到 Guava Cache 这个阶段使用进程内缓存作为一级缓存,Redis 作为二级。优点:不受外部系统
@sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存行(Cache Line)。 这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。
转载 2023-07-19 11:31:30
140阅读
这篇文章探索Java缓存的新标准:javax.cache。怎么融入到Java生态系统(Java Ecosystem)这个标准由JSR107所提出,它的作者同样也是标准制定的领导者。JSR107由JSR342提出,已经被包含在Java EE 7中。Java EE7将会在2012年底定稿。但现在在Java SE6或更新的版本和Java EE 6环境中,甚至Spring和另外一些流行的开发环境中,jav
转载 2023-08-24 09:00:45
74阅读
现在软件或者网页的并发量越来越大了,大量请求直接操作数据库会对数据库造成很大的压力,处理大量连接和请求就会需要很长时间,但是实际中百分之80的数据是很少更改的,这样就可以引入缓存来进行读取,减少数据库的压力。  常用的缓存有Redis和memcached,但是有时候一些小场景就可以直接使用Java实现缓存,就可以满足这部分服务的需求。 缓存主要有LRU和FIFO,LR
转载 2023-09-01 11:25:17
38阅读
缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率。下面我实现了一个简单的缓存,步骤如下。 创建缓存对象EntityCache.java public class EntityCache { /** * 保存的数据 */ private Object da
转载 2023-07-12 08:04:20
77阅读
缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。使用HashMap缓存通常的用法就是构建一个内存中使用的Map,在做一个长时间的操作比如计算之前,先在Map中查询一下计算的结果是否存在,如果不存在的话再执行计算操作。我们定义了一个代表计算的接口:该接口定义了一个calculate方
1 添加redis支持在pom.xml中添加Xml代码  org.springframework.bootspring-boot-starter-redis2 redis配置Java代码  package com.wisely.ij.config; import com.fasterxml.jackson.annotation.JsonAutoDetect;
你们好呀,我是wangly。一名不怎么摸鱼的前端小倒霉蛋。这篇文章主要写了一下大部分Admin系统中常见的动态缓存组件,说通俗一点就是TagsBar组件。可以看下@panjiachen大佬Admin项目。集成在一完整项目中的组件或多或少会依赖一些其他的东西,这一次就开始从零实现这个功能吧。源码在底部,每一步都附待思路图哦。效果图开始画了一张很水的图,其实整个过程很简单,进入页面路由后,判断当前路由
#基于JAVA的简易缓存系统 ##背景 几乎任何一个应用,特别是WEB应用,缓存都是非常重要的一块内容,在过去的一段PHP开发中,比较常见的使用缓存的例子如下:1、根据一个key从缓存中取值 2、如果取到值,则直接返回这个值 3、如果没取到值,则根据业务从solr或是db或是某一段业务逻辑中取值,然后再把这个key-value存入缓存 以上步骤在每一个需要的地方都进行一遍。逻辑其实没有问题,代码
转载 2023-07-15 08:45:51
62阅读
阅读spring的源码,其中大部分的使用了缓存,因此想一探究竟缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率。下面我实现了一个简单的缓存,步骤如下。package com.hks.springtest.cache; /** * 创建缓存对象EntityCache.java */ pu
转载 2023-08-14 15:26:04
65阅读
首先应该理解为什么需要缓存。在计算机的组成中,关于存储这一块是分层设计的,访问速度从快到慢主要分为:CPU的L1缓存、CPU的L2缓存、CPU的L3缓存、主内存、SSD硬盘、机械硬盘。其实一开始并没有L1、L2、L3缓存,但CPU访问内存的速度还是慢,在这个过程中CPU只能等,为了优化这一点,在CPU内部加入了这些缓存,主要用于存放内存中的热点数据。举个特例来说,CPU内部的缓存是按缓存行存储的,
编写高效的程序不止在于算法的精巧,还要尽可能贴合计算机的硬件,最大化硬件效益,最佳利用CPU微指令、缓存等。其中缓存的意义可见重要。缓存的主要作用是暂时保存数据,供下次访问时使用。出现背景早期的存储层次只有三层,CPU寄存器、DRAM、磁盘存储。由于寄存器与主存之间的访问时间开销较大,于是就加入了L1缓存(2 ~ 4个时钟周期),后来L1与主存之间差距依旧很大,于是又加入L2和L3。缓存要求缓存
  • 1
  • 2
  • 3
  • 4
  • 5