2017年4月1日

Django 学习之---缓存系统

摘要: 一、浏览器缓存机制 Cache-control策略(重点关注) Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Ex 阅读全文

posted @ 2017-04-01 15:41 RobotZhu 阅读(9505) 评论(0) 推荐(0) 编辑

Python 正则表达式

摘要: 一、python正则表达式包含在 ‘re’模块中 1、导入re模块:import re 2、re.match函数 re.match 从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 1 match = re.match('www', 'www.runoob 阅读全文

posted @ 2017-04-01 15:21 RobotZhu 阅读(291) 评论(0) 推荐(0) 编辑

CSRF攻击与防御

摘要: 前言: 先了解第一方和第三方cookie概念 Cookie是一个域服务器存储在浏览器中的一小段数据块,只能被这个域访问,谁设置则谁访问。 第一方Cookie:比如,访问www.a.com这个网站,这个网站设置了一个Cookie,这个Cookie也只能被www.a.com这个域下的网页读取。 第三方C 阅读全文

posted @ 2017-04-01 15:15 RobotZhu 阅读(261) 评论(0) 推荐(0) 编辑

XSS攻击与防御

摘要: 一、XSS攻击原理: XSS攻击是利用网站的漏洞,例如用户输入之类的post数据到服务器,服务器正常保存,输出到客户端,利用用户端和服务端代码漏洞,没有检测机制,输入恶意代码给服务器,服务器返回之后,客户端执行了这个恶意代码。 简单的来说就是:想尽一切办法,让客户端执行我的js代码 举例: 网页源码 阅读全文

posted @ 2017-04-01 15:11 RobotZhu 阅读(258) 评论(0) 推荐(0) 编辑

Linux 学习笔记之 --- epoll 事件模型详解

摘要: epoll 主要采用对已就绪的 fd 进行轮询操作 一、epoll 触发方式 epoll支持 ET 和 LT 两种触发方式 ET(边缘触发):Nginx 就是采用 ET 触发方式,只支持 no-block 方式,当一个 fd 缓冲区就绪的时候,只会发送一次事件触发, 而不会管缓冲区的数据是否已经被读 阅读全文

posted @ 2017-04-01 15:06 RobotZhu 阅读(4282) 评论(0) 推荐(1) 编辑

Linux 学习笔记之 --- select 与 poll 事件模型详解

摘要: select 与 poll 工作原理: 1、select 主要是采用轮询的方式来实现对就绪的 fd 处理: 2、poll 和 select 基本相同,主要不同在于 poll 没有对 fd 数量限制 工作模型: 工作流程: 1、用户态创建了网络 IO 连接,假设一个 socket 连接就是一个 fd 阅读全文

posted @ 2017-04-01 15:03 RobotZhu 阅读(561) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之二---Tornado启动和请求处理流程

摘要: Tornado 服务器启动流程 因为Tornado 里使用了很多传类的方式,也就是delegate,之所以要这么做,其实和 iOS 开发那样,也很多的 delegate, 如此来实现高度解耦,但是比较绕,所以建议: 1、先浏览一遍启动流程,再看源码 2、在看一遍请求到来时的处理流程,再看源码 备注: 阅读全文

posted @ 2017-04-01 14:29 RobotZhu 阅读(1202) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之五--- IOLoop 对象

摘要: IOLoop主要工作 1、将TCPServer 注册到 IOLoop 的事件记到 _handlers 字段,同时注册 READ 和 ERROR 事件到 epoll 2、IOLoop 启动一个大循环,负责轮询epoll中是否已经有就绪的事件,如果有就执行对应的回调 以下为源码分析,省略部分源码,只取主 阅读全文

posted @ 2017-04-01 14:20 RobotZhu 阅读(1351) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之四--- HTTPServer 与 TCPServer 对象

摘要: 主要工作: 服务器启动的时候做的事: 1、把包含了各种配置信息的 application 对象封装到了 HttpServer 对象的 request_callback 字段中,等待被调用 2、TCPServer 通过 listen 方法启动端口监听, 封装_handle_connection回调函数 阅读全文

posted @ 2017-04-01 14:17 RobotZhu 阅读(1651) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之六---异步编程的几种实现方式

摘要: 方式一:通过线程池或者进程池 导入库futures是python3自带的库,如果是python2,需要pip安装future这个库 备注:进程池和线程池写法相同 1 from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecu 阅读全文

posted @ 2017-04-01 14:14 RobotZhu 阅读(2823) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之三--- Application 对象

摘要: Application 对象主要工作: 服务器启动时: 1、在新建一个app的时候,根据设置好的 URL 和回调函数 Handler 封装成URLSpec 对象 服务器运行时: 2、在请求到来,将 HTTPServer 封装好的HTTPRequest 传入_RequestDispatcher对象,_ 阅读全文

posted @ 2017-04-01 13:57 RobotZhu 阅读(612) 评论(0) 推荐(0) 编辑

Tornado 高并发源码分析之一---启动一个web服务

摘要: 前言: 启动一个tornado 服务器基本代码 1 class HomeHandler(tornado.web.RequestHandler): #创建 RequesHandler 对象,处理接收到的 http 请求 2 def get(self): 3 entries = self.db.quer 阅读全文

posted @ 2017-04-01 13:50 RobotZhu 阅读(994) 评论(0) 推荐(0) 编辑

导航