自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皖南笑笑生的博客

竹亦得风,夭然而笑。邮箱地址:[email protected]

  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 详解Java Quartz Job Scheduling

详解了Java Quartz Job Scheduling,包括核心框架中的Sheduler、Job和Trigger,数据存储JobStore,监听器JobListener、TriggerListener和SchedulerListener,Quartz RMI远程调用,Quartz集群原理和应用等

2018-09-06 23:24:44 10459 2

原创 基于Selenium和ChromeDriver的自动化页面性能测试

由于最近工作一直很紧张,拖了很久才在五一假期将Selenium实现自动化页面性能测试的代码实现部分补上,希望今后自己能更勤勉,多一些知识产出。 Selenium WebDriver(以下简称SW)提供了一套用于Web应用程序的自动化测试工具。SW按其应用场景不同可以分为(1)基于HtmlUnit的无界面实现,并非驱动真实浏览器进行测试;(2)模拟真实输入,对多浏览器的支持和测试,包括Firefo...

2018-04-30 17:23:02 90671 8

原创 CentOS 7.x环境下搭建: Headless chrome + Selenium + ChromeDriver 实现自动化测试

笔者所在公司希望使用Selenium进行高性能的自动化测试。出于稳定性考虑,我们选择linux环境,而不是Windows环境。同时为了追求测试效率,去UI化,所以选择了Chrome的Headless方案。 在环境搭建上,没有成熟的文档和方案支持,遇到了一些问题,花了不少精力,终于完成。因此记录下来希望对大家有所帮助。1、环境说明2、最新版本Google-Chrome安装2.1 指定上...

2018-03-13 23:01:37 22378 21

原创 POST请求慎用301 Moved Permanently

在全站启用HTTPS的过程中,遇到一个坑,在此做下记录。在全站支持HTTPS以后,用户可能还会使用http访问,所以很多建议使用301 Moved Permanently+HSTS( Strict Transport Security Policy)的方式要求用户跳转到HTTPS后再访问。然而,对于有POST请求的域名是不适合用301 Moved Permanently的

2017-12-04 18:29:08 96420 1

原创 解决Nginx 400 Bad Request问题的一些思路

400 Bad Request是一种HTTP错误状态码。HTTP/1.1对400 Bad Request的定义主要是:1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。 在这段时间笔者遇到了好几次生产问题Nginx报400异常,且原因细究下来各不相同,有些甚至在网上没有搜到类似案例。遂产生了兴趣,做了本次梳理,希望会对大家有一定帮助!...

2017-12-04 12:22:06 209650 2

原创 深入理解Java虚拟机笔记1: OOM实战

通过代码模拟Java虚拟机规范中描述的各个运行时区域内存溢出的场景。1. Java堆溢出2. 虚拟机栈和本地方法栈溢出2.1 StackOverflowError2.2 栈OutOfMemoryError3. 方法区和运行时常量池溢出3.1 运行时常量池溢出3.2 方法区溢出4. 本机直接内存溢出小结1. Java堆溢出首先,虚拟机启动参数配置如下:...

2017-09-01 15:59:12 706

原创 对301重定向到HTTPS前遭遇中间人攻击的分析

由于不能改变用户的输入习惯,很多网站在实现全站HTTPS后,选择通过配置强制301的方式让用户的http请求重定向到https,以保障网站的安全性。然而,在用户发起http请求的时候,仍然存在有中间人攻击的风险,这种方案并非是绝对安全的。下面就结合我们最近亲历的一次中间人攻击,来深入分析下这种劫持行为。

2017-05-23 21:40:42 5300

原创 电商网站HTTPS实践之路(四)——灰度上线篇

对于电商而言,不能因为技术的升级就轻易影响了线上业务,毕竟最宝贵的是用户流量。当我们一鼓作气完成了系统的HTTPS改造和优化后,上线过程则是小心翼翼逐步完成的,毕竟这么大的调整动作牵一发而动全身。从HTTP过渡到全站HTTPS,没有发生一次严重事故,究其原因是我们始终遵守三个原则,即降级原则、灰度原则和开闭原则。 1. 灰度发布2. 开关控制3. 性能监控1. 灰度发布...

2017-05-17 14:56:25 2647

原创 电商网站HTTPS实践之路(三)——性能优化篇

通过分析TLS握手过程的细节我们会发现HTTPS比HTTP会增加多个RTT网络传输时间,既增加了服务端开销,又拖慢了客户端响应时间。因此,性能优化是必不可少的工作。很多文章都集中在服务端的性能优化上,但对于电商行业而言,大部分的用户流量源于App,因此客户端的性能优化配合服务端才能使收益最大化。1. HTTPS带来的负担1.1 增加的传输延时1.2 服务端额外开销2. 服务端性能...

2017-05-17 14:55:50 7370 3

原创 电商网站HTTPS实践之路(二)——系统改造篇

首先是要让系统支持HTTPS。 需要有接入层来统一处理TLS握手。页面资源的替换也存在一些坑。对于不同的域证书选择上也要注意,最好的方式是提前整理好域列表绑定成一张支持多域名和泛域名的证书。大多数互联网公司的CDN资源都是租用的,CDN上证书如何来处理。最后,HTTPS的测试策略如何实施,来保证页面不会出现Mix content阻塞和net: ERR_INSECURE_RESPONSE错误。...

2017-05-17 14:55:01 4079 1

原创 电商网站HTTPS实践之路(一)——概述篇

写在开篇前的话:全站HTTPS已经是互联网企业发展的大势所趋。继淘宝、京东等电商完成全站HTTPS化后,笔者负责领导了公司的全站HTTPS工作。在整个过程中,笔者深刻体会到对于一个大型网站而言,全站HTTPS绝对是一个挑战巨大且需要严谨对待的工作。不幸的是,网络知识库中并未有针对电商型网站的任何改造经验与文档供我们参考。爬坑的过程是异常残忍的,遇到了一次次血淋淋的教训,因此笔者决定将整个方案分享出...

2017-05-17 14:54:04 3188

原创 HTTP 2.0 原理详细分析

HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基础上形成的下一代互联网通信协议。HTTP/2 的目的是通过支持请求与响应的多路复用来较少延迟,通过压缩HTTPS首部字段将协议开销降低,同时增加请求优先级和服务器端推送的支持。 本文目的是学习HTTP 2.0的原理并研究其通信的详细细节...

2017-04-05 17:25:00 26476 4

原创 tcp_tw_recycle参数引发的系统问题

前一段时间在做全站HTTPS的部署时,遇到了一个很有趣的与Linux内核相关的问题,本人对内核没有研究,记录下来作为学习笔记。1. 问题背景前段时间为了应对苹果的ATS策略,完成了全站服务端的HTTPS部署。为了减少负载均衡设备的开销,我们开启的是F5的四层模式Perfomance(Layer4),即只处理四层TCP连接,过来后直接做NAT转发到后端Web Server。 然而诡异的...

2017-03-31 16:37:04 28221 2

原创 移动数据通信网络工作原理(SGSN&GGSN)

最近公司在做移动网络的优化和治理工作,借这个机会,好好学习了下移动网络底层传输的工作原理,并将结果分享出来。1 移动网络的演进2 GPRS/UMTS网络架构2.1 无线接入网RAN2.2 无线核心网CN2.3 GTP隧道协议3. 无线核心网工作原理3.1 分组业务会话连接建立3.2 分组会话传输3.3 分组会话结束4. 移动网络优化建议4.1 APP节约用...

2016-10-08 19:34:58 29850 6

原创 Nginx开启Gzip详解

最近生产上发生了一些问题,原先所有的静态资源文件都是经过gzip压缩的,然而这几天突然都没有压缩了,经过一顿排查,发现是Nginx的配置有问题,借此机会详细了解了Nginx的Gzip配置。1. Nginx开启Gzip1.1 配置说明1.2 参数详解gzip ongzip_buffersgzip_comp_levelgzip_disablegzip_min_lengthgzi...

2016-09-30 10:54:38 26645 6

原创 Nginx实现HTTP/2——原理、实践与数据分析

HTTP/2(Hypertext Transfer Protocol Version 2)无疑是下一代互联网加速技术的基石与方向,自诞生以来经历了00~17 共 18 版草案,目前,已经拥有了明确的RFC标准:RFC 7540和RFC 7541。 目前支持 HTTP/2 的浏览器有 Chrome 41+、Firefox 36+、Safari 9+、Windows 10 上的 IE 11 和 Ed...

2016-09-19 15:04:09 7550

翻译 译文——OkHttp, 安卓和Java应用的HTTP&HTTP2.0客户端

OkHttp是一个HTTP的客户端,能够有效地完成:1. 使用HTTP 2.0协议传输,所有请求使用同一个域名,共享一个socket。2. 如果HTTP2.0 不可用,通过连接池可以减少请求延迟3. 透明的GZIP压缩减少了包下载的大小4. 响应缓存避免了网络重复请求

2016-08-18 12:59:22 4709

原创 Nginx+lua实践:简单的接口聚合实例

Nginx是高性能的HTTP和反向代理服务器。目前已经普遍应用到各大互联网公司,国内基于Nginx又分别改造推出了Tengix和Openresty,笔者所在的公司也在逐步推广Nginx作为业务系统的接入层,同时使用lua开发脚本,将业务逻辑前置来减轻后端服务器的压力(Nginx的并发能力非常强,很适合处理轻量级业务)。 接口聚合是很多业务系统需要实现的功能,可以前置到Nginx上做,聚合的目的一...

2016-08-12 11:26:41 9824

原创 生产环境浏览器Strict MIME TYPE Checking问题解决

X-Content-Type-Options: nosniff 与 不规范的响应类型 造成的影响

2016-08-10 16:32:05 61357 1

原创 Redis(2)- 基本数据结构和操作

Redis的一个特点就是处理基本字符串,还支持多种数据结构,包括Hash,List,Set,SortedSet。本章主要介绍Redis的数据结构和基本操作,并给出一些典型的使用场景。感谢《Redis 命令参考》中文版对本文的指导!1. 字符串String基本结构基本语法使用场景-统计用户上线天数2. 列表List基本结构基本语法使用场景-事件提醒3. 哈希表Ha...

2016-07-01 17:15:30 1173

原创 Redis(1)- Redis概述和安装

Redis(Remote Dictionary Server)是目前电商行业比较通用的主要数据缓存手段。各家基本上是在其基础上做了优化和扩展,增加了一些新的特性,生成满足自身业务需求数据缓存组件。追根溯源,Redis自身有哪些特性呢?基本操作和高级特性又有哪些?在什么场景下我们该考虑使用Redis呢?带着这些问题,今天笔者认真学习了一遍Redis组件,并梳理成Redis学习笔记系列。本章主要做...

2016-07-01 11:17:37 782

原创 Java编程思想学习笔记4 - 序列化技术

今天来学习下Java序列化和反序列化技术,笔者对《Java编程思想》中的内容,结合网上各位前辈的帖子进行了整理和补充,包括:序列化概述Java原生序列化技术Hessian序列化技术JSON序列化技术Java XML序列化技术笔者将Hession、Json、XML都归为是一种序列化技术(序列化的本质是“轻量级持久化”,而Hession、Json、XML都属于这个范畴,Hessia...

2016-06-24 16:21:24 2260

原创 Java编程思想学习笔记3 - NIO

本章内容承接“Java编程思想 - 18.1 - 字节流和字符流”。JDK 1.4引入了新的Java IO类库java.nio.*旨在提高IO速度。笔者愚钝,认为NIO是Java编程思想第18章中最难理解的部分,Eckel在这部分内容的安排上也让人难以抓到重点,笔者总结主要有以下内容:Java NIO概述:NIO与IO的区别缓冲器Buffer通道Channel选择器Selector...

2016-06-15 19:24:21 1858

原创 Java编程思想学习笔记2 - 字节流和字符流

《Thinking in Java》第18章的内容是相当丰富精彩的,也在网络学习参考了很多前辈们的笔记,个人由于能力有限(毕竟和大神Bruce Eckel的能力相差甚远),将这一章的内容分三个部分来写,希望能够慢慢品味和领悟Java IO的精粹: 第一部分、字节流和字符流,可以认为是传统的Java IO; 第二部分、新IO,指JDK 1.4引入的java.nio.*类库; 第三部分、Java...

2016-06-14 19:11:42 2198

原创 Java编程思想学习笔记1 - 内部类

内部类简单来说就是定义在一个类内部的类。一直很难理解为什么要使用内部类,对内部类的理解始终停留在表明。今天详细学习了Java内部类的机制,总结下内部类的使用。归纳大纲如下: 1. 内部类的基础结构 2. 内部类的优点和使用场景 3. 内部类的分类 4. 内部类的继承 若有不正之处,请批评指教,共同成长!请尊重作者劳动成果,转载请标明原文链接1. 内部类的基础结构2....

2016-06-12 16:19:41 873 2

中间人攻击抓包

对301重定向到HTTPS前遭遇中间人攻击的抓包分析

2017-05-23

Maven开发实战(第3版)

Maven开发实战,国内比较靠谱的学习maven材料

2015-08-17

空空如也

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

TA关注的人

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