09 2019 档案
摘要:常见的web安全问题,原理和防范措施。 SQL注入 XSS(跨站脚本攻击, Cross-Site Scripting) CSRF(跨站请求伪造, Cross-site request forgery) 什么是SQL注入? 通过构造特殊的输入参数传入web应用,导致后端执行了恶意的SQL 通常由于程序
阅读全文
摘要:进程和线程的区别 进程是对运行时程序的封装,是系统资源调度和分配的基本单位 线程是进程的子任务,cpu调度和分配的基本单位,实现进程内并发。 一个进程可以包含多个线程,线程依赖进程存在,并共享进程内存 什么是线程安全 一个线程的修改被另一个线程的修改覆盖掉。 python中哪些操作是线程安全的 一个
阅读全文
摘要:首先是常见状态码 https://www.runoob.com/http/http-status-codes.html GET 和 POST 的区别 Restful语义上一个是获取, 一个是创建。 GET是幂等的, POST是非幂等的。 GET请求参数放到url(明文)里,有长度限制; POST放在
阅读全文
摘要:什么是前后端分离? 什么是REStful? 什么是前后端分离? 优势是什么? 后端只负责提供数据接口,不再渲染模版,前端获取数据并呈现。 前后端解藕,接口复用(前端和客户端公用接口 ), 减少开发量。 前后端各司其职,同步开发,提升工作效率。定义好接口规范。 更方便调试(mock)、测试和运维部署。
阅读全文
摘要:写在前面:以一个python后台的角度来看 1 dns -> 2 tcp握手 -> 3 HTTP请求 -> 4 反向代理nginx -> 5 uwsgi/gunicorn -> 6 web app响应 -> tcp挥手 1: 其实进行dns查询之前会首先查看网址是不是在dns缓存里面, 如果不在dn
阅读全文
摘要:列表推导和生成器(可以节省大量内存)
阅读全文
摘要:所谓mokey patch就是运行时替换 比如gevent库需要修改内置的socket from gevent import monkey; mokey.patch_socket() 这样就把内置的阻塞的 socket替换成非阻塞的socket 看代码
阅读全文
摘要:“如果我们看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来也像鸭子,那么这只鸟就可以被称之为鸭子。” 关注点在于对象的行为, 而非类型(duck typing) 比如file,StringIO, socket对象都支持read/wtite方法(file like object)。 再比如定义了__it
阅读全文