清泉逐流

做着努力,等待幸福到来
» 最新日志

浏览器如何加载渲染页面

时间 : 2015-11-26 16:27 标签 : 前端 网络

用户输入网址,浏览器向服务器发出请求,服务器返回html文件;

浏览器开始载入全部的html代码,发现<head>标签内有一个

查看全文 »

http的安全方法和幂等性

时间 : 2015-07-07 10:21 标签 :

‍幂等的含义

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个幂等函数.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。

查看全文 »

spring @Qualifier注解

时间 : 2015-05-04 22:56 标签 : Java Spring

@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题。如下:

①可能存在多个UserDao实例

查看全文 »

MySQL探究之null与not null

时间 : 2015-05-04 11:56 标签 : MySQL

相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:

1、我字段类型是not null,为什么我可以插入空值

2、为毛not null的效率比null高

3、判断字段不为空的时候,到底要  select * from table where column <> '' 还是要用 select * from table where column is not null 呢。

带着上面几个疑问,我们来

查看全文 »

利用HTTP 401钓鱼获取用户敏感信息

时间 : 2015-04-29 17:04 标签 : 安全

“401钓鱼漏洞”是一个利用HTTP 401状态进行钓鱼的漏洞,将恶意链接作为图片网址发在论坛帖、博客文章和评论、邮件正文等处,当用户访问时页面自动弹出“登录框”。如果用户不加辨识,会误以为需要再次登录,从而使黑客窃取到账号及密码信息。

据金山安全中心监测,众多黑客正在利用401高危欺诈漏洞发起大规模的钓鱼攻击,每天有数万网民访问到这些攻击站点,可能已有大量用户帐号被盗。猎豹浏览器 、金山毒霸、手机毒霸已对401高危欺诈漏洞进行防御。

<?php if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) { header('WWW-Authenticate: Basic Realm="User Login"'); header("HTTP/1.1 401 Unauthorized"); } else { $use

查看全文 »
» 最新笔记

使用sort对二维数组排序

时间 : 2014-09-30 19:49 分类 : C/C++

#include <iostream> #include <algorithm> using namespace std; struct OP { inline bool operator()( int* e1, int* e2) { if( e1[0] == e2[0] ){ if( e1[1] = e2[1] ){ return e1[2]<e2[2]; } return e1[1]<e2[1]; } return e1[0]<e2[0]; } }op; int main(int argc, char **argv) { int arr[3][3] = {1,2,3, 4,0,1, 2,3,1}; // warning : use dynamic pointer to sort int *arr1[3]; for (int i=0;i<3;i++){

查看全文 »

二维vector的使用和排序

时间 : 2014-09-30 19:48 分类 : C/C++

#include <vector> #include <algorithm> #include <iostream> using namespace std; // Binary function that accepts two elements in the range as arguments, // and returns a value convertible to bool. The value returned indicates // whether the element passed as first argument is considered to go // before the second in the specific strict weak ordering it defines. // The function shall not modify any of its arguments. // This can either be a function pointer or a function object. struct SORT{ inline bool operator

查看全文 »

Binary tree

时间 : 2014-09-10 20:13 分类 : C/C++

#include <iostream> #include <fstream> #include <vector> using namespace std; template <typename T> struct BNode{ BNode *l; BNode *r; T data; }; template <typename T> class BTree{ public: static const int PRE_ORDER = 1; static const int POST_ORDER = 2; static const int IN_ORDER = 3; BTree(); ~BTree(); void SetEmptyValue(T value){ m_empty_value = value; } void Create(vector<T> &seq, const int order

查看全文 »

Binary search tree

时间 : 2014-09-10 20:12 分类 : C/C++

#include <iostream> #include <fstream> #include <deque> using namespace std; template <typename T> struct BNode{ BNode *l; BNode *r; T data; }; template <typename T> class BSTree{ public: static const int PRE_ORDER = 1; static const int POST_ORDER = 1; static const int IN_ORDER = 1; BSTree(); ~BSTree(); bool Insert(T data); bool Delete(T data); BNode<T> *Find(T data); void Dest

查看全文 »

Map usage

时间 : 2014-09-09 20:13 分类 : C/C++

map<char, int> map_test; for(int i=0; i<10; i++){ char key = rand() % 26 + 'A'; int value = rand() % 100; map_test[key] = value; } // find delete map<char, int>::interacot it; it = map_test.find('B'); if( map_test.end() != it ){ // Found } // Delete map_test.delete(<interactor>); // Interactor for(map<char, int>::iterator it=map_test.begin(); it!=map_test.end(); it++){ // Key it->first; // Value it->second; } // Sort // Map sorted by key automatically, you cann't s

查看全文 »
» 日志标签