浅析 MySQL InnoDB 存储引擎中的事务、并发与锁

文章目录 一点背景 之前数据库课程的最后一次实验中有一项是验证数据库并发操作带来的问题以及事务的各个隔离级别对这些问题解决的程度,在测试过程中发现有些情况和课本的描述并不一样,一开始以为是隔离级别设置的步骤之类的出了问题,后来了解到其实各个数据库的实际实现都多少有自己对系统并发性能等方面的考虑,没有完全依照标准来完成。再之后在图书馆发现了一本讲 MySQL InnoDB 存储引擎的书,就仔细去了解了一下关于这个存储引擎的事务、并发和锁等方面的知识,同时看了一些 MySQL 的文档以及几篇博客,于是就自己对当时实验的用例进行修改设计了一些新的测试和验证代码,并把了解到的相关内容整理成了这篇文章。 准备工作 创建数据库和测试数据 DROP DATABASE IF EXISTS trans_test_ »

从《编程之美》中的一道面试题开始谈谈位操作

文章目录 在计算机的内部,数据都是使用二进制表示的,而对于计算机来说,进行基于二进制的位操作,效率要比进行除法、取余等操作高很多。最常见的对代码的优化就包含将乘除 2 的幂操作改为左右移位操作,很多时候编译器也会对代码自动执行这个优化。 我第一次在算法题的代码里见到位操作应该是在高二的时候,某个晚自习不想学习然后跑到机房去乱翻别人的博客发现这个,顿时就感觉如沐春风出神入化,所以一直印象挺深刻的。这个学期开学后不久在图书馆发现了《编程之美》这本书,虽然里面的好多内容都看不懂,其中有一道题感觉还蛮有趣的,就想从这道题出发,简单整理一下自己了解过的一些位操作相关的知识。 题目是这样的: 2.1 求二进制数中 »

关于同源策略与跨域问题

同源策略是现代浏览器安全里一个非常重要的机制,它通过限制客户端脚本读写不同源网站资源的权限来保护用户的信息安全。但是随着应用的复杂程度越来越高以及开发者的需求逐渐增多,很多时候又需要通过数据的跨域传输实现一些功能。 常用的跨域实现方式有 JSONP、CORS 或者服务器代理等。JSONP 依靠的是一些特殊 HTML 标签如 <img>、<script>、<link> 等可以加载非同源资源的特性,毕竟很多时候外码需要依靠单独的 CDN 服务器来减少对这些静态资源的请求时间,而 »

班门弄斧之谈谈 Web 密码安全

文章目录 起因 去年暑假在整理一个辣鸡项目的代码的时候,思考到用户密码存储相关的问题,然后也去找了点资料。我当时最开始用的是 SHA256 算法生成哈希值,然后更新的时候就强化了一下关于密码储存和验证的模块。后来其实也一直想写这篇文章出来,因为我发现很多不管是用户还是开发者都不太注重密码安全这个问题,甚至还有在数据库里明文存密码的。刚好在写完了挖坑不到一半停下的 百步梯技术部 2017 级 Web 后端进阶 之后,也把这篇文章的坑填上。 传输安全 我们先来看看用户密码从在输入框输入到写入数据库以及后续的验证操作会经过哪些阶段。 注册时的流程当然是前端把数据传送给服务端,然后服务端接收后进行一些处理写入数据库。验证时取出这个处理后的值,然后处理刚刚的验证请求发来的密码, »

百步梯技术部 2017 级 Web 后端进阶

文章目录 写在前面 这篇文章是面向百步梯技术部 2017 级后端组的同学们的,结合目前大家的学习进度以及时间安排,并参考去年同期的我们接下来所需要的知识储备,整理出下面这些内容。鉴于大家现在也没有上手使用后端框架,写这篇文章的时候就完全没有考虑框架相关的内容了,比如配置等方面的东西如果是用框架的话这里就没有必要讲了。 文章的大部分都是关于后端安全的,并且由于主要偏向的是安全意识这块的内容,就没有给出太多实际的代码,只是希望大家能了解在后端的开发过程中需要注意哪些问题,在接下来的锻炼中我相信大家也会更深刻地理解重视这些问题的意义和作用。 虽然标题是“进阶”,但实际上也只是相对“入门”而言在难度方面有一小部分提高,距离真正的进阶其实还有挺长的路,不过不要太担心啦 2333,踏踏实实走下去才是坠重要的。以及, »