自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进化的深山猿

不断进化,总能迎来美好生活

  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

原创 对称加密 公开加密 数字签名 数字证书

1对称加密--加解密使用同一秘钥解密和加密用同一个秘钥的方式成为共享秘钥加密;共享秘钥加密必须先将秘钥发给对方,这个时候如果通信被监听,那么秘钥可能落入攻击者手中,同时失去了加密的意义,另外需要安全保管接收到的秘钥。2非对称(公开)秘钥加密--加解密使用不同的秘钥公开密钥使用一对非对称的秘钥,包括一把公开秘钥和一把私有秘钥;发送密文的一方利用公开秘钥对报文加密,接收密文方则用私有秘...

2018-12-30 19:14:27 7027

原创 大量数据带筛选条件的正确分页方案

场景:clickhouse中两千万条记录,需要用查询条件筛选记录,条件命中的条数从几十到几百万不等,然后分页展示筛选到的记录第一种分页做法:先根据筛选条件获取满足条件记录的id,并且对id在sql中排序(避免大量数据内存中排序,很慢、很耗性能),取到分页对应的id;再根据id查询对应的记录,此时如果id对应的记录在库中很离散,那么会再次全表遍历;问题:获取满足条件的所有id会有一次全表扫描,...

2018-12-29 15:27:55 12455

原创 网址输入www.baidu.com后发生的事 ARP

在浏览器中输入www.baidu.com后执行的全部过程:浏览器干活:浏览器对用户输入的网址做初步的格式化检查,只有通过以上检查才会进入下一步。 然后增加协议类型,默认是http,所以浏览器自动补充为http://www.baidu.com应用层干的事:DNS解析,将域名转化为ip。dns解析过程:先从DNS缓存取,然后到本地hosts文件取,如果还没有去DNS服务器查询 应用层...

2018-12-28 21:42:44 6923 1

原创 httpclient Post请求 参数用des加密

需求如下,提供远程调用的借口,参数加密。直接上代码des加密算法代码: package com.ruisitech.bi.util;import java.security.SecureRandom;import java.security.spec.KeySpec;import javax.crypto.Cipher;import javax.crypto.Secret...

2018-12-28 17:04:06 11162

原创 TCP的分段和IP的分片&MTU和MSS之间的关系

为什么需要分片和分段首先我们知道只要使用网络,数据就会在网络上传输,而数据最终都会以帧的形式在网络中传输,以太网和802.3对数据帧的长度都有一个限制,其最大 值分别是1500和1492个字节,所以如果传输的数据大于上面的长度,就会需要进行切割后传输,即分片和分段.首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层。但是对于分片来说,这是经常发生在UDP传输层协议上...

2018-12-26 19:44:25 8853 1

原创 TCP标志位 RST作用、原理、攻击

TCP报头的标志位  TCP报头中一共有六个标志位:URG/ACK/PSH/RST/SYN/FIN。 SYN  TCP三次握手中,如果A是发起端,则A就对服务器发一个SYN报文。表示建立连接。ACK  收到数据或请求后发送响应时发送ACK报文。RST  关闭异常连接FIN  TCP四次挥手时,表示关闭连接  PSH   发送端需要发送一段数据,这个数据需要接收端一收到就进...

2018-12-25 22:20:53 13529 1

原创 tcp和udp对比 适用场景和优化

区分tcp和udp,各适用于什么场景?1) tcp是基于连接的,即发送数据之前需要先建立连接;udp不需要2)tcp是可靠的,有重传\序号\确认机制\滑动窗口等保证顺序和正确;udp不能保证3)tcp是一对一的;udp支持一对一,一对多,多对多4)tcp比较耗费资源(头较大,确认机制等导致),udp则效率更高5)tcp基于流模式,udp数据报模式 ;关于流模式于数据报模式的理解:...

2018-12-25 22:16:57 8880

转载 linux中的查找和替换

一、查找查找命令/pattern<Enter> :向下查找pattern匹配字符串?pattern<Enter>:向上查找pattern匹配字符串使用了查找命令之后,使用如下两个键快速查找:n:按照同一方向继续查找N:按照反方向查找pattern是需要匹配的字符串,例如:/hello<Enter> #查找hello/hello<...

2018-12-25 17:49:12 7939

转载 TCP的滑动窗口机制

TCP的滑动窗口机制       TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗口大小;一种是滑动的窗口。这个窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;同时接收方也维持着一个接收窗口,只...

2018-12-24 21:38:15 24674 3

原创 浅谈TCP/IP四种计时器、慢启动、拥塞避免、快速重传、快速恢复

持续计时器解决的问题:A给B发送数据,如果B告诉A自己的缓冲区已满,于是A停止发送数据,等待一段时间后,B的缓冲区出现了富余,于是给A发送报文告诉rwnd大小为400,但是这个报文不幸丢失了,于是就出现A等待B的通知,B等待A发送数据的死锁状态,为了处理这种问题,TCP引入了持续计时器。持续计时器:当A收到B的零窗口通知时,就启用该计时器,时间到则发送一个字节的探测报文,对方会在此时回应自...

2018-12-24 20:09:01 7152 2

原创 http之 半包 粘包

短连接:连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。长连接:连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。长连接指建立SOCKET连接后不管...

2018-12-24 18:11:35 9604 1

原创 insert into***** on duplicate key update的使用

 问题是这样的:业务上有这样的需求,A、B 两个用户,如果互相关注,则成为好友。设计上是有两张表,一个是 like 表,一个是 friend 表,like 表有 user_id、liker_id 两个字段,我设置为复合唯一索引即 uk_user_id_liker_id。语句执行逻辑是这样的: 以 A 关注 B 为例: 第一步,先查询对方有没有关注自己(B 有没有关注 A)...

2018-12-24 15:43:02 7867 4

原创 http tcp,协议4和7层架构

先看下协议的四层架构:应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等传输层:两种协议提供的功能不同。tcp:提供应用程序间的通信。其功能包括:一、格式化信息流,即分包加密等;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。udp:把称作数据的分组以数据报的格式从一个主机发送到另一个主机,但并不保证该数...

2018-12-23 17:04:56 9901

原创 tcp的报文序号,三次握手和四次挥手

 下面是TCP报文格式图: 上图中有几个字段需要重点介绍下:(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:       (A)URG:紧急指针(u...

2018-12-23 16:24:23 11395

原创 http到https,混合加密方式,SPDY和HTTP2.0

http到https,https解决什么问题报文为明文传输,存在被窃听的风险--ssl提供报文加密机制无法判定通信方的身份,可能遭遇伪装--ssl的证书机制,需要请求方和服务端拥有相同的公钥证书无法验证报文的完整性,可能已经被篡改--ssl的数字签名机制,MD5和SHA-1等散列值校验的方法https本质上是将http通信接口部分使用ssl和tls协议替代,即原本http和tcp层直接...

2018-12-23 14:54:03 7989

原创 JavaScript在JSP页面加载与执行顺序

 首先看下js在在jsp页面中可能的情况jsp中的代码如下:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><script type="text/javascript"> console.log("it is b

2018-12-21 22:19:34 9028

原创 Innodb中count的理解,count(*)存储使用缓存或者事务

首先需要声明,下面的内容主要是基于innodb;myIsam中会单独存储count(*)的值,因此会直接返回,效率最高。innodb为什么不单独存储count(*)的值这是因为innodb支持事务和mvcc,同一个时刻,存在多个事务,然后每个事务都有插入或者删除操作,那么这个count(*)的值就没有办法维护了。其实我的观点是innodb完全可以将mvcc用于count(*)的值维护,这样...

2018-12-21 19:39:25 9463

原创 ajax请求进入error的原因分析

先给出ajax完整的调用和获取错误信息的方式function queryData(searchPageNum){ __showLoading(); var json =getQueryParameter(searchPageNum); $.ajax({ type: "POST", url: "../userFilter/query...

2018-12-15 14:05:37 46825 2

原创 tomcat的下的日志区分,log4j按照指定格式打印日志

1tomcat的下的日志区分tomcat是项目发布经常用到的工具,如果系统有问题,报了异常,这个时候定位异常原因,日志就很重要了,但是有时候可能区分不了日志系统各个日志的内容。下面是tomcat的日志系统对应内容:tomcat每次启动时,自动在logs目录下生产以下日志文件,按照日期自动备份一是运行中的日志catalina.out,它主要记录运行的一些信息,尤其是一些异常错误日志信息。...

2018-12-15 11:25:26 7432

原创 mysql索引的原理和底层结构

索引的底层结构使用的B+树和hash,但是我们一般推荐使用B+树,原因可能很少有人知道。为什么索引的实现是B+树,而不是散列表,二叉树,B-等B+B-相对于二叉树:首先需要明确索引也是需要存储到磁盘的,然后B+-树相对于二叉树,最明显存在两点区别1 二叉树深度较深,而深度越大,就说明指针的移动越多,需要读取的节点越多,这样就会导致磁盘IO是寻道时间多,IO次数增多耗时2 B+-...

2018-12-13 17:17:22 7376

原创 mysql的MyISAM和InnoDB对比,底层索引结构

先整体概述下 InnoDB MyISAM 事务 支持 不支持,回滚将造成不完全回滚,不具有原子性 mvcc 支持,辅助事务,可用于全库备份 不支持,全库备份需要使用全局锁 锁 默认行锁,也支持表锁 仅支持表锁 外键 支持 不支持外键 delete操作 一行一行的删除 ...

2018-12-13 14:09:54 7186 1

原创 mysql order/group by过程解析,排序与索引,联合索引中的范围查询,大量数据带条件的分页

一条SQL的执行实际上可以分为三步。1.得到数据 利用 where 条件2.处理数据3.返回处理后的数据比如语句: select city,name,age from t where city='杭州' order by name limit 1000,100; 第一步:根据where条件和统计信息生成执行计划,得到数据。第二步:将得到的数据排序。当...

2018-12-12 14:47:21 10244 2

原创 mysql索引创建规则、联合与一般索引、执行计划、索引选择,索引重建与下推

数据库索引怎么建,什么时候用到索引优缺点:为主键外建where子句建立索引可以加速数据库查询,但是索引占用内存,同时update和insert的时候需要同步修改;索引的实现通常使用其变种B+树。建立索引方式:create index 索引名 on 表名(列名);细节问题:)如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命性的结果下降,每次查找一条特定的数据...

2018-12-12 14:00:30 7438

原创 Spring中Transactional注解的使用详解和实例

Spring中Transactional注解的使用: @Transactional(propagation=Propagation.REQUIRED,rollbackFor = Exception.class) 已经有事务则直接加入,没有事务则新建事务;遇到异常则回滚1)定义事物传播行为介绍:  @Transactional(propagation=Propagation.REQ...

2018-12-12 11:13:54 12140 1

原创 mysql事务、隔离级别、长事务的处理、mvcc

事物的概念:4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 1) 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。redoLog实现 2)一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。undoLog实现 3)隔离性(iso...

2018-12-12 11:09:20 7117 1

原创 java实现excel下载功能实例

其实需求很简单,就是点击按钮后,向后台传入查询条件,然后根据查询条件获取满足条件的记录通过excel下载。方案一:使用ajax方式不可以原因导出excel算是文件下载了,后台需要向前台(浏览器)写文件流,而ajax请求获取的数据的都是字符串(此点当时在调试页面的时候,Response响应中满是乱码的字符串文本),它没法解决后台返回的文件流,但是浏览器可以。换句话说 ajax貌似实现不了文件...

2018-12-11 14:48:44 19325

原创 location.href遇到的400错误,url传值导致+/等特殊字符丢失

其实需求很简单,就是点击按钮后,向后台传入查询条件,然后根据查询条件获取满足条件的记录通过excel下载。方案一:使用ajax方式不可以原因导出excel算是文件下载了,后台需要向前台(浏览器)写文件流,而ajax请求获取的数据的都是字符串(此点当时在调试页面的时候,Response响应中满是乱码的字符串文本),它没法解决后台返回的文件流,但是浏览器可以。换句话说 ajax貌似实现不了文件...

2018-12-11 14:38:12 13169

原创 web.xml中的配置,servlet,filter,listener的作用和原理

首先介绍servlet,filter和listen的原理:servlet可以说是动态页面的基石,现在很多开发都是基于spring等各种框架,所以对servlet的了解可能少点,下面先用简单的例子,说明下servlet的作用MyFirstServlet.javaclass MyFirstServlet implements Servlet{   //该函数用于初始化servelet...

2018-12-08 21:46:11 16577

原创 mysql日志系统和事务的理解

本文主要讲的是日志系统,以及日志系统和事务的关系。事务的特性(acid)Atomic:原子性,指的是事务是一个不可再分割的单位,要么全部成功,要么全部失败Consistency:一致性,在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。Isolation:隔离性,事务之间的操作互不影响,通过锁实现Durability:持久性,事务一旦提交,其结果就是稳定的,即使发生了...

2018-12-06 10:15:03 6314 1

原创 java回调机制用的理解与实例

生活场景如下:Wang写数学题,有一道比较难,需要问Li,Li也不会,要先回家一趟问问老爸怎么做,这个时候有wang如下三种选择:1)一直等待Li回来,期间啥也不干同步方式2) 等等再过来看Li回来没,异步future方式3)wang把电话留下来,让LI回来时打电话给自己。异步callback方式其中联系方式 就是回调函数,也就是其他人在完成任务后会调用的函数而留下联系方式...

2018-12-02 17:19:35 7040 1

转载 java 强 软 弱 虚引用的理解正确使用

1、强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如:Object o=new Object(); // 强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式来弱化引...

2018-12-02 12:52:01 7120

bootstrap-tagsinput-master.zip

tagsinput相关的组件,包括必须的js和css文件;解压后在dist文件夹下,放到自己的项目中就可以使用了

2019-08-14

select2-4.0.8.zip

select2相关的组件,包括必须的js和css文件;解压后在dist文件夹下,放到自己的项目中就可以使用了

2019-08-14

复选下拉框

下拉复选框需要的相关组件,详细可以在https://developer.snapappointments.com/bootstrap-select/里面下载

2018-10-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除