`
文章列表
      最近网站做推广,预期访问量将会增加20倍左右(原来PV在10亿左右),其中大部分是静态页面,也有ajax动态请求。我们采取了如下策略。 机器扩容到原来的2倍 所有静态内容都加上CDN缓存 所有的动态请求都利用缓存 ...

也谈一谈XSS

XSS攻击是一个很老的话题了,通常都认为是比较好防范的,但是却很容易忽视,所以今天又来总结下。 关于攻击的总类以及概念不做过多解读了,网上基本一大把,我这里总结下防御方案。XSS攻击是很危险,并且很容易出现,浏览器也做了安全限制,防止跨域访问数据,但是我们都知道jsonp可以饶过这些限制,所以就有了session劫持。  第一层防御: 在服务端对提交的数据包含URL,header,做一个安全检查过滤,百分之90的攻击可以避免了。这是保护的第一道屏障。 第二层防御:也叫被动防御,包括服务器本身的网络环境的安全,要保证服务器本身是安全的,不会被注入脚本代码、 第三层防御: 这一层防御 ...

并发包源码分析 -- AQS

    博客分类:
  • java
 
Java 的concurrent 包给我们的并发编程提供了更灵活高效的方案,开发人员可以很方便的利用API利用线程池去处理多任务。最近对concurrent包进行了比较细致的分析,最核心的基础莫过于AQS(AbstractQueuedSynchronizer)。下面看看来自官方的摘要。   Provides a framework for implementing blocking locks and related synchronizers (semaphores, events, etc) that rely on first-in-first-out (FIFO) wait qu ...
ByteBuffer 提供了两种方式创建缓冲区,一个是在heap内分配即DirectBuffer,一个是在heap外分配。一个比较普遍的说法是,heap外分配的内存不太好把控,JVM不会回收其内存。然而事实上真的如此吗?我做了一个实验,我写了一个NIO服务端程序不断读取客户端发送过来的内容,然后回写到客户端。回写的时候用了DirectBuffer, 并且开辟的内存故意设的比较大128M。请看如下服务器代码片段。   /** * 处理读取客户端发来的信息 的事件 * @param key * @throws IOException ...
Mysql 的执行计划中有项不起眼但同时很让人产生误解的东西,其中有一项就是Extra, 这一列放在了最后,并且意思是额外的辅助信息,似乎是最不起眼的一个项。   Column JSON Name Meaning
       最近转去了做互联网开发,看到了最大的不同就是后台代码算法比较多,模块服务化,很多逻辑都写在了后台代码中,比如各种计算甚至连诸如分组排序这种SQL最擅长的功能。        到底逻辑是应该写在后台程序中 ...
众所周知,Oracle的Partition可以为大表查询降低IO开销从而带来显著的性能提升,对于一个事务表,我们通常用时间戳来进行分区。理论上来说,表的大小可以基本无限制的延伸,但是前提是需要要启动一个定时任务去新增加分区从而让所有时间的记录都能划分到某个时间段的区域,一直觉得这样挺繁琐的,Oracle就应该具备这样一个可以动态增加分区的功能,好在在新版本的12c增加了 Interval-Partition.   下面的例子说明CUSTOMER表以月份为单位进行从01/01/2013开始分区。月份增加了就会自动创建分区,Cool!   CREATE TABLE CUSTOMER ...
先来看看在事务应用中可能出现的各种问题. 丢失更新(lost update)是一个经典的数据库问题。实际上,所有多用户计算机环境都存在这个问题。简单地说,出现下面的情况时(按以下所列的顺序),就会发生丢失更新: (1) 会话 ...
最近在看java设计模式,想对OO的服用原则稍微终结下. OO的复用设计原则有 :OCP,DIP,LSP,ISP,CARP,LoD。 充分利用这些原则可以提高软件的复用性 1.开闭原则 OCP(Open-Closed Princple):很简单,一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。如果从另外一个角度来讲就是"对可变性的封装原则(Principle of Encapsulation of Variation 或者EVP )" EVP 意味着两点: (1)一种可变性不应当散落在代码的很多角落里,应该设计 ...
Global site tag (gtag.js) - Google Analytics