V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lolizeppelin  ›  全部回复第 29 页 / 共 51 页
回复总数  1001
1 ... 25  26  27  28  29  30  31  32  33  34 ... 51  
2019-02-26 22:16:25 +08:00
回复了 suzic 创建的主题 JavaScript fetch 可以直接拿来用了吗
fetch 最麻烦的地方是不能做 单元测试的假数据请求 233
2019-02-21 16:57:35 +08:00
回复了 Vegetable 创建的主题 Python 今天不小心踩了可变类型的坑
....两年真白写了

我估计单例你都没写过......
2019-02-19 16:18:31 +08:00
回复了 lolizeppelin 创建的主题 程序员 卧槽原来睡眠排序法也是有用的....orz
@chenyu8674

别那么死板啊
睡眠排序是 n 线程通过 sleep 来排序
这里靠的是多机器靠 sleep 时间来找到第一位

思路是一致的
2019-02-19 15:36:06 +08:00
回复了 Lateautumn 创建的主题 Python JWT 服务端怎么理解不需要存储 session
@passerbytiny

Payload 加密不加密都可以的, 取服务端 token 密钥或密钥前 xx 位用来加密 Payload 就完事

服务端密钥不被反向出来才是最重要的,所以有了 fernet token 的做法避免长时间的用一个 key 去生成 token 降低密钥被解出来
2019-02-19 15:31:51 +08:00
回复了 Lateautumn 创建的主题 Python JWT 服务端怎么理解不需要存储 session
@rayingecho

token 就是要避免 io,你这个做法只是 io 的数据量少了,但是 io 还存在,而且全压在 redis 上

如果你授权数据量少请求次数频繁的话, 授权内容放 token 还是放 redis 里 io 机几乎不多(都开销再网络上了)
2019-02-19 14:12:07 +08:00
回复了 PPIOPPlabs 创建的主题 推广 区块链的网盘你用过吗?速度比百度网盘快 5 倍!
都怪 emule 死了!
2019-02-19 14:07:08 +08:00
回复了 Lateautumn 创建的主题 Python JWT 服务端怎么理解不需要存储 session
@rayingecho
就是无法撤销无法更新呗,表面上你可以通知客户端换 token,但这只对正常处理的客户端有效啊,别人非要保留之前的 token 继续拿来用,服务端也认为是合法的

比较好的做法是不重要授权信息直接存 token 的 playload,重要的还是得存在服务端每次校验

或者 xx 次操作后重新读取授权信息
2019-02-19 13:45:08 +08:00
回复了 Lateautumn 创建的主题 Python JWT 服务端怎么理解不需要存储 session
本质上是认为在不知道服务端加密 key 的情况下你无法伪造出合法 token,所以服务端只用对 token 和服务端的加密 key 进行运算就能判断 token 所带信息的真伪

和 session 对比最大优点是 token 的校验不需要读取存储设备,也不需要重新鉴权,高并发下优势很大
缺点是不能提前过期 token 以及在 token 过期时间内改变 token 的内容.

建议看下 fernet token 的的做法, 理解下 fernet token 为什么要轮询换加密
2019-02-18 14:59:18 +08:00
回复了 haoxuexiaoyao 创建的主题 Python Python 新手,这段代码怎么写比较优雅,求指导
用 jsonschema 来处理 request.args,这样就不用写一堆判断

还有不要用变量 req 来等于 request.args,req 容易误解
2019-02-15 16:36:14 +08:00
回复了 chaleaochexist 创建的主题 Python 一个 django+sqlalchemy 的项目,如何优化?
@chaleaochexist

我说的不一定对 但是说一下
首先你要知道 openstack 迭代了好多版本,很多代码是为了兼容老版本,方便升级写的,自己设计可以跳过这些不必要的设计


dbapi 这个层, 我猜是因为 openstack 对数据库的操作没做什么优化,性能其实挺差的,很多问题都没处理.比如说什么锁的问题,高并发问题都没考虑过

加了一层 dbapi(一方面可以兼容原有的本地写方式,一方面应该是处于数据库性能上的考虑),这样就相当于数据库中间件客户端了, 有 dbapi 在扩展性、向上版本兼容性上就好很多

nova/neutron 的数据库配置不走本地的话, 是通过 rpc 发到专门写数据库的程序的
由于 openstack 的 rpc 统一用 mq 做的, 自己做的话,这部分不应该走 mq,应该自己实现专门的中间件
如果你的数据库操作不需要转发出去,直接当前进程和数据库通信的话,这层就没必要了

封装 object 也是为了版本迭代和扩展性考虑的,好像思路比较类似 java 的 dao 层?
因为 openstack 的 rpc 可以设置专门的序列化方式, 所以可以轻松的把 json 转化为对应的 python object (对应上封装的那层 object )对象,然后这些 object 就可以直接转为对应数据库操作了.这玩意是一整套的实现来的

如果自己的程序不需要迭代更新兼容,这一层其实也没有必要,直接拿 json 发过来数据进行数据库操作就行了
2019-02-14 18:42:31 +08:00
回复了 chaleaochexist 创建的主题 Python 一个 django+sqlalchemy 的项目,如何优化?
@chaleaochexist

因为是好多人写的 每个组件都是不同的一群人写的

所以风格完全不一样啊
2019-02-14 17:47:22 +08:00
回复了 chaleaochexist 创建的主题 Python 一个 django+sqlalchemy 的项目,如何优化?
为啥不整个抄 openstack 那套捏

连 http 服务都一起啊....
2019-01-23 15:47:00 +08:00
回复了 sunmoon1983 创建的主题 Flutter Flutter 2019 产品路线图正式公布(2019 Roadmap)
我都写完 APP 然后都没再碰两个月了 还没见啥 flutter 的群
2019-01-21 17:18:57 +08:00
回复了 cf472436288 创建的主题 Python 都说裁员多,为什么没有看到 Python ?
话说 有啥 python 的工作啊?
2019-01-21 16:47:25 +08:00
回复了 javaWeber 创建的主题 程序员 最近去大公司面试,面得怀疑人生。。
分布式 一定有
1 仲裁能力
2 >=3 的参与仲裁成员
3 快速的同步
4 仲裁投票
5、6、7....等等等等

讲到底还是要懂 Paxos 那套原理

一 redis 搞分布式锁,意思意思就行了.....
2019-01-21 16:34:55 +08:00
回复了 gzf6 创建的主题 程序员 REST API 安全问题
@Cbdy

安全行为是浏览器实现的,有用但是靠不住的

限制只能靠后端自己, so.....
2019-01-21 16:31:30 +08:00
回复了 gzf6 创建的主题 程序员 REST API 安全问题
@mrbeannnnn

method 只是个规范 不涉及任何安全问题 安全问题存在于实现代码中

iis6 有问题也是 iis6 自己的 http 实现有问题
他代码里的的 put delete 相关代码有问题不带表 put delete 本身有安全问题
2019-01-21 16:25:17 +08:00
回复了 gzf6 创建的主题 程序员 REST API 安全问题
method 对 http 服务器来说只是一个字段,具体怎么处理看你 http 服务里的代码里怎么写 然后再到业务代码处理

这些你只要完整的看过一遍 http 服务代码就懂了

至于前端什么的不支持 put 和 get 也是没关系的,标准的 http 服务框架代码都支持 method 重定向
哦想起来了 我从 pip 上下载下来 本地装的 2333
自打包 rpm 党飘过 压根不怕
...等等 我 window 上没 msi 包只能 pip 的咋办 233333
1 ... 25  26  27  28  29  30  31  32  33  34 ... 51  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2556 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 12:49 · PVG 20:49 · LAX 05:49 · JFK 08:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.