呆贝斯的地盘

呆笨死,唯有勤学!

Python的进程、线程和协程学习笔记

...

并发与并行 在操作系统中,某一时间段,几个程序在同一个CPU上运行,但在任意一个时间点上,只有一个程序在CPU上运行。 并发 如果系统只有一个CPU,当有多个线程时,那么CPU不可能真正同时进行多个线程,CPU的运行时间会被划分成若干个时间段, 每个时间段分配给各个线程去执行,一个时间段里某个线程运行时,其他线程处于挂起状态,这就是并发。 并发解决了程序排队等待的问题,如果一个程序发生阻塞...

网站安全学习笔记

......

什么是网站安全? 互联网是一个危险的地方!我们经常听到有关网站因拒绝服务攻击或在其主页上显示修改(通常是有害的)信息而变得不可用的消息。 在一些出名的案例中,上百万的密码、邮件地址和信用卡信息被泄露给了公众,导致网站用户面临个人尴尬和财务威胁。 网站安全的目的是防止这些(或者说所有)类型的攻击。更正式点说,站点安全就是为保护站点不受未授权的访问、使用、修改和破坏而采取的行为或实践。 有效...

Shell脚本学习笔记

......

介绍 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell环境 Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Li...

Docker Compose 搭建 Django 示例项目

......

准备工作 创建一个空的项目目录。 可以将目录命名为易于记忆的名称。此目录是应用程序映像的上下文。该目录应该只包含构建该图像的资源。 在项目目录中创建一个名为Dockerfile的新文件。 Dockerfile 通过一个或多个配置该映像的构建命令定义应用程序的映像内容。构建后,您可以在容器中运行映像。 将以下内容添加到...

RabbitMQ学习笔记

......

MQ的概念 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器,用于分布式系统之间的通讯。 AMQP,即Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的开放标准, 为面向消息的中间件设计。基于此协议的客户端,消息中间件可传递消息,并不受客户端、中间件不同产品, 不同开发语言的限制,200...

Nginx学习笔记

本文是学习竹子爱熊猫的https://juejin.cn/post/7112826654291918855和其他人文章编写

Nginx基本概念 Nginx(发音为“engine-x”)是用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议的开源反向代理服务器,以及负载均衡器、 HTTP 缓存和 Web 服务器(源服务器)。nginx 项目一开始就非常关注高并发、高性能和低内存使用,性能是其最重要的考量, 实现上非常注重效率,能经受高负载的经验,有报告表明能支持高达50000个并发连接数。 一个...

Redis学习笔记

......

Redis数据库介绍 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。 内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用, 通过Redis Cluster提供自动分区。官方给出的数据显示能够...

Access Token 与 Refresh Token 详解以及使用原则

分析Access Token 和 Refresh Token 的配合流程和安全要点,得到正确管理和使用Access Token 和 Refresh Token的方法和原则。

Oauth2 使用Token的基本流程 我们先看看一个来自RFC6749定义的Oauth2中token使用的基本流程,大概可以明白Access Token和Refresh Token两个的用法。 +--------+ +---------------+ | |--(A)------- A...

JWT的介绍与使用

了解JWT,认识JWT的优缺点,学习接口中通如何使用JWT

什么是JWT? JWT( json web token )是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式, 用于在各方之间以JSON对象的形式安全传输信息。信息可以验证和信任,因为它是数字签名的。 JWT可以使用密钥( 使用HMAC算法 )或使用RSA或ECDSA的公钥/私钥对进行签名。 让我们进一步解释这个定义的一些概念。 紧凑:由于它的大小,它可以通过 URL...

TCP/IP协议学习笔记

...


Socket网络编程学习笔记

...


日志管理系统学习笔记

...


Python性能优化笔记

...

优化算法时间复杂度 减少冗余数据 合理使用 copy 和 deepcopy 使用 dict 或 set 查找元素 合理使用生成器 和 yield 优化循环,尽量减少循环内事务 优化包含多个表达式的顺序 使用join合并迭代器中的字符串 选择合适的格式化字符方式 不借助中间变量交换两个变量的值 尽量使用if is 尽量使用级联比较 x<y<z 使用 while 1 替换 while...

登陆方案学习笔记

...

主流Web应用是基于HTTP协议的,而HTTP协议是无状态的,就是服务器不知道谁发送这个HTTP请求,无法识别用户身份。 登录态就是服务器用来区分用户身份的,同时对用户进行记录的技术方案。怎么实现用户的登录态呢?常见的实现流程如下: 客户端用户输入登录凭据(如账户和密码),发送登录请求。 服务端校验用户是否合法(如认证和鉴权),合法后返回登录态,不合法返回第1步。 合法后携...

文件存储系统学习笔记

...

简介 go-fastdfs是基于HTTP协议的分布式文件系统,大道至简,运维和扩展更简单,高性能、高可靠、无中心、免维护。 最佳实践 海量存储不开启文件token认证功能。 尽量标准上传,上传后业务保存Path,在业务使用时再拼接域名。 断点续传,上传后要用文件id置换成Path。 尽量使用物理服务器部署,主要压力或性能在IO。 避免小文件合并,后期无法删除小文件。 ...

网站开发思维导图


加密算法学习笔记

...


Django REST Framework 学习笔记

...

介绍 DRF是一个强大灵活的Django工具包,用于在Web后台构建Restful接口。 你可以在一个Web页面上浏览自己提供了哪些API,并且可以通过这个页面测试这些API 你不用自己写一套接口鉴权代码了,提供了各种开箱即用的API认证授权工具,如OAuth2 你不用自己写大量的CRUD接口了,简单配置即可 你不用自己写大量的条件查询接口了,简单配置即可 你不用自己写...

MySQL性能优化学习笔记

...

MySQL性能优化 优化查询 启用慢查询日志 执行如下语句看是否启用了慢查询日志,ON为启用,OFF为未启用,默认为OFF。 SHOW VARIABLES LIKE '%slow_query_log%'; 如果没有开启,使用如下两种方式来开启慢查询。 修改配置文件 修改配置文件 vim /etc/my.cnf,在 [mysqld] 段落在加入如下配置: [mysqld] ...