HTTPS 是如何提供加密通信?

0x00 前言由于谷歌的推动和大家对网络安全的需求,HTTPS 协议开始广泛的使用了。作为开发者也应该去积极的了解,所以写篇博文在「如何提供加密通信」的角度,谈一谈 HTTPS 协议。 0X01 加密通信在 Web 领域的难点我们知道 HTTP 协议是明文传输的协议,所以容易被第三方窃听、篡改、冒充,给用户隐私和...

初识 NodeMCU - 固件的编译及使用

0x00 前言不知不觉一个月没有更新博客了/(ㄒoㄒ)/~~,因为这段时间都在忙着写毕业设计。嗯,就是本文的主题 NodeMCU,它是一款基于 Lua 的开源固件,能够在 ESP8266 这款 WiFi 芯片上使用。而我的毕设主题……嗯,又是随大流的智能家居,所以第一个要实现的模块就是智能插座,相对于繁琐的 C ...

PHP 依赖注入容器实现

0x00 前言在看 Laravel 文档的时候发现入门指南的下一章便是核心架构,对于我这种按部就班往下读的同学这简直是劝退篇。各种之前没有接触过的概念砸得人头晕,容器便是其中之一。不过在拜读过几篇文章后也逐渐理解了容器的作用,所以特此总结一番。 0x01 为何要有容器?这个问题可以也可以替换为「容器解决了什么问题...

MySQL 事务隔离实验-认识:脏读、不可重复读、幻读

0x00 前言大家也许听说过 MySQL 的事务在高并发执行的时候可能会发生脏读、不可重复读、幻读等问题。对于有处理高并发经验的老鸟,可能认知会更深一些所以觉得 so easy~「老鸟请点红叉离开,或者发起友好评论O(∩_∩)O哈哈~」,不过对于像我这种难以接触到高并发业务场景的初学者来说,也就只能看几篇博文,了...

PHP 数组底层实现

0x00 前言最近在看《PHP 内核剖析》,关于 PHP 数组方面有所得,特此撰文一篇总结记录 (∩_∩)。因为 PHP 的数组是很强大且很重要的数据类型,它既支持单纯的数组又支持键值对数组,其中键值对数组类似于 Go 语言的 map 但又保证了能够按顺序遍历,并且由于采用了哈希表实现能够保证基本查找时间复杂度...

HTML 表单之不得不知 enctype

0x00 前言初学 Web 编程的时候发现想通过 HTML 表单上传文件的时候发现只需要简单的设置 form 标签的 enctype 属性为 multipart/form-data 便能成功的实现,后面才知道其实这是在设置表单内容的编码并且设置 HTTP 请求头的 Content-Type 属性。而在 W3C 标...

PHP 面向 StackOverflow 编程

0x00 前言我从 Laravel 接触到了 Whoops,这款非常好的错误展示包,虽然它提供了一个根据错误信息跳转到 StackOverflow 搜索页的链接,但对于我这种懒人来说当然是希望在报错页面显示根据错误信息搜索出来的结果啊。嗯,然后我就造了这个玩意 whoops-stackoverflow。 0x01...

Slim 框架源码解读

0x00 前言Slim 是由《PHP The Right Way》作者开发的一款 PHP 微框架,代码量不算多(比起其它重型框架来说),号称可以一下午就阅读完(我觉得前提是熟悉 Slim 所用的组件)。不过比起其它框架来说真的还算容易阅读的了,所以是比较适合我这种新手学习一款框架。因为文章篇幅限制所以采用抓大放小...

PHP Clourse(闭包类) 浅析

0x00 前言 闭包是指在创建时封装周围状态的函数。即使闭包所在的环境不存在了,闭包中封装的状态依然存在。 在 PHP 里所有的闭包都是 Clourse 类所实例化的一个对象,也就是说闭包与其他 PHP 对象没有什么不同。而一个对象就必然有其方法和属性,这篇文章将总结 PHP 中闭包的基础用法和 Clourse...

感悟

夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。——《游褒禅山记》 王安石 高中时学到王安石的《游褒禅山记》 便觉得这句话很霸气,高考后的日子里我早已忘却全文,但在我遇到困难和挫折的时候脑海都会浮起这句话。这句话给我很大的激励和勇气,当我了解到...