标签:服务器 web框架 特点 传输层 设置 att panda nagle sql
Numpy 提供了很多高级的数学方法
Requests http库
Scrapy 一个快速、高层次的屏幕抓取和web抓取框架
Scapy 数据包探测和分析库
redis 速度快、支持丰富的数据类型、支持事务、支持持久化的数据库
pymysql python自带的数据库
pandas 基于Numpy的一种工具,提供了大量快速便捷处理数据的函数和方法。
bs4 作用:能够快速方便简单的提取网页中指定的内容,给我一个网页字符串,然后使用它的接口将网页字符串生成一个对象,然后通过这个对象的方法来提取数据
selenium 是web应用程序的测试工具
Django、Flask、Tornado(天生异步)
Django:
forms:主要功能是检验字段的功能,校验表单中的键值对的功能(form.Form)
auth:用户认证组件 from django.contrib import auth
中间件:做一些处理
modelForm:多个form表单
orm:
缓存:将常用的数据保存到内存中
信号:会触发回调函数
序列化:Ajax会返回json数据,需要序列化
cookie:浏览器每次发送请求带着cookie,服务器进行认证 response.set_cookie()设置cookie,response为HttPResponse实例化的对象
session:是基于cookie实现的会话跟踪技术
Flask:
script:通过命令行的形式来操作flask
SQLalchemy: 是一个操作关系型数据库的ORM工具。
Migrate:基于alembic进行的一个封装,并集成到flask中,而所有的迁移操作其实都是alembic做的,它能跟踪模块的变化,并将变化映射到数据库中。
jinjia2:模板语言
开发调试缓存
内存缓存
文件缓存
数据库缓存
Memcache缓存(使用python-memcache模块)
Memcache缓存(使用pylibmc模块)
经常使用文件缓存和Memcache缓存
相同: wsgi、路由、视图、模板(后三个web框架都有)
不同: Flask小而精,
Django大而全,主要慢在 Django ORM 与数据库的交互上
6、跨域解决的方案?
跨域造成的原因:由于浏览器的同源策略,会阻止不同协议,不同端口,不同域名、二级域名造成的
解决方法:
JSONP:同源策略不会阻止脚本标签的src(script标签),利用这一特点来解决。注意:JSONP只能是GET请求。(回调函数返回JSON字符串)
CORS:服务器设置Access-Control-Allow-Origin
HTTP响应头之后,浏览器将会允许跨域请求(添加响应头)
我们线上不存在跨域,我们都部署到了同一个域名下
7、什么情况会产生跨域?
协议、端口、域名、二级域名不同
8、什么是反射?应用场景?
反射:通过字符串的形式,去模块中寻找指定函数,并执行。是一种基于字符串的事件驱动。
四个内置函数:getattr、hasattr、setattr、delattr
应用场景:CBV,Django中间件引入,Flask上下文
9、什么是粘包?
粘包:因为有缓存的存在,当客户端发送的数据短小,时间间隔短时,会合在一起发送给服务端,服务端不知道如何拆分造成的数据混乱。
当发送的数据过大时也会被拆开发送。
其实是客户端有Nagle算法,有合包、拆包机制。只有TCP才会发生。
使用struct来解决粘包问题
TCP:是全双工,面向连接的,面向字节流的,速度慢,三次握手,四次挥手,可靠的,点到点连接
UDP:是无连接的,面向数据报的,速度快,不可靠,UDP支持一对一,一对多,多对一和多对多的交互通信
三次握手:必须是客户端先发起连接请求,然后服务端返回确认连接请求,最后客户端给服务端发确认请求,握手成功。
四次挥手:客户端和服务端都可以先发断开请求,假如客户端先发断开请求,服务端发送确认断开请求,再把没法完的数据发送完,客户端发出确认断开连接。
应用层:http、https、ftp
表示层
会话层
传输层:TCP/UDP
网络层:ip
数据链路层:arp
物理层
超文本传输协议,基于TCP协议的,明文传输,无状态、无连接,
数据传输遵循的规范:数据传输格式(请求头,响应体)
无状态短连接
端口:80
HTTP协议永远都是客户端发起请求,服务器回送响应。
Accept:浏览器可以接受的MIME类型。
Accept-Encoding:浏览器申明自己可接收的编码方法。
User-Agent:告诉HTTP服务器,客户端使用的操作系统和浏览器的名称和版本。
Content-Type:例如:Content-Type: application/x-www-form-urlencoded。
Cookie:最重要的请求头之一,将cookie的值发送给HTTP服务器。
200:成功
301:永久重定向
302:重定向
303:redirect到其他页面
304:资源自上次取得后,无更改,可直接从本地的缓存获得。
400:客户端请求有语法错误
401:请求未经授权
403:服务器收到请求,但是拒绝提供服务
404:请求资源不存在
500:服务器发生错误
503:服务器目前不能处理客户端的请求
504:网关超时,服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505:服务器不支持请求中所用的HTTP协议版本
标签:服务器 web框架 特点 传输层 设置 att panda nagle sql
原文地址:https://www.cnblogs.com/wjs521/p/10480744.html