第9章 Python Web 框架考察点

Python WSGI与web框架常考点

WSGI 常见Web框架

◆什么是WSGI?
◆常用的 Python Web框架Dang/Fask/Tornado对比
◆web框架的组成(淡化框架,加强基础)

什么是WSGI?

什么是WSGI?为什么需要它?
经常使用uwsgi/gunicorn
部署 Django/Flask应用
 
为什么Flask/Django都可以运行在 gunicorn之上?
 
Python Web Server Gateway Interface(pep3333)
◆解决 Python Web Server乱象 mod_python, CGI, FastcGI等
◆描述了 Web Server(gunicorn/uWSGI)如何与web框架(Flask/Django)交互,Web框架如何处理请求
 
 
 
 
 

一个简单的兼容WSGI的web应用

运行web应用

常用的 Python Web框架对比

Django vs Flask vs Tornado
◆ Django:大而全,内置ORM、 Admin等组件,第三方插件较多
◆ Flask:微框架,插件机制,比较灵活
 
cookiecutter-flask
生成统一的项目模板
◆ Tornado:异步支持的微框架和异步网络库

什么是MVC?

MVC:模型(Model),视图(View),控制器(Controller)
解耦数据、展示和操作
 
◆ Model:负责业务对象和数据库的交互(ORM)
◆ VieW:负责与用户的交互展示
◆ Controller:接收请求参数调用模型和视图完成请求
 
 
Object Relational Mapping,对象关系映射
◆用于实现业务对象与数据表中的字段映射
Sqlalchemy
Django ORM
Peewee
 
◆优势:代码更加面向对象,代码量更少,灵活性高,提升开发效率
 
 

Web安全常考点

常见的web安全问题,原理和防范措施。安全意识

◆SQ注入
◆XSS(跨站脚本攻击, Cross-Site Scripting)
◆CSRF(跨站请求伪造, Cross-site request forgery)
 

什么是SQL注入?

SQL注入与防范
◆通过构造特殊的输入参数传入Web应用,导致后端执行了恶意SQL
◆通常由于程序员未对输入进行过滤,直接动态拼接SQL产生
◆可以使用开源工具 sqlmap, SQLninja检测
 
 
 
 
拼接sql 导致
 
 
 
 
解决办法
 

如何防范SQL注入?

Web安全一大原则:永远不要相信用户的任何输入
◆对输入参数做好检査(类型和范围);过滤和转义特殊字符
◆不要直接拼接sql,使用ORM可以大大降低sql注入风险
◆数据库层:做好权限管理配置;不要明文存储敏感信息

什么是XSS?

Xss( Cross Site Scripting),跨站脚本攻击
◆恶意用户将代码植入到提供给其他用户使用的页面中,未经转义的恶意代码输岀到其他用户的浏览器被执行
◆用户浏览页面的时候嵌入页面中的脚本(js)会被执行,攻击用户
◆主要分为两类:反射型(非持久型),存储型(持久型)
 
 
 
 
 
 
 
XSS危害
XSS可以利用js实现很多危害巨大的操作
◆盗用用户 cookie,获取敏感信息
 
 

前后端分离与RESTful常见面试题

什么是前后端分离?什么是 RESTful
◆前后端分离的意义和方式
◆什么是 RESTfUl
◆如何设计 RESTful API
 
 

什么是前后端分离?有哪些优点?

后端只负责提供数据接口,不再渲染模板,前端获取数据并呈现
◆前后端解耦,接口复用(前端和客户端公用接口),减少开发量
◆各司其职,前后端同步开发,提升工作效率。定义好接口规范
◆更有利于调试(mock)、测试和运维部署
不好做SEO
 
 

什么是 RESTful

Representational State Transfer
◆表现层状态转移,由HTTP协议的主要设计者RoyFielding提出
◆资源( Resources),表现层( Representation),状态转化(State Transfer)
◆是一种以资源为中心的web软件架构风格,可以用Ajax和 RESTful web服务构建应用
 
 

RESTful解释

三个名词的解释
◆ Resources(资源):使用URI指向的一个实体
◆ Representation(表现层):资源的表现形式,比如图片、HTML文本
◆ State Transfer(状态转化):GET、POST、PUT、 Delete Http 动词来操作资源,实现资源状态的改变
 

RESTful 的准则

设计概念和准则
◆所有事物抽象为资源(resource),资源对应唯一的标识(identifier)
◆资源通过接口进行操作实现状态转移,操作本身是无状态的
◆对资源的操作不会改变资源的标识
 
把HTTP动词语义和数据库的增删改查结合到一起
 
 

什么是 RESTful API

RESTful 风格的API接口
◆ 通过 Http GET/POST/PUT/DELETE    获取/新建/更新删除 资源
◆ 一般使用JSON格式返回数据
◆ 一般web框架都有相应的插件支持 RESTful API
 
如何设计 RESTful API?
 
 
 
 

Web框架和Web安全思考题

什么是 Https?
中高级考点:HTTP和Https的区别
◆Https和HTTP的区别是什么?
◆你了解什么是对称加密和非对称加密吗?
◆HTPS的通信过程是什么样的?你能否用 Wireshark抓包观察

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

posted @ 2021-02-10 16:39  元贞  阅读(81)  评论(0编辑  收藏  举报