HTTP 常用知识点

0x00 报文格式一个普通的 HTTP 请求报文格式如下: 12345[请求方法] [URI] [HTTP版本]Host: [主机地址]// ... 其它请求头信息// 一行空行[请求实体] 简单例子如下: 12GET / HTTP/1.1Host: www.baidu.com 上述例子有两个空行,但并非无意义。...

使用 Symfony Console 组件构建命令行应用

0x00 前言呼,前阵子在实习所以有点懈怠了博客更新,现在辞职了就整理一下这阵子的收获吧。因为在实习过程中有遇到需要编写命令行应用的场景,用 Shell 脚本的话首先自己不熟(而且觉得 Shell 脚本语法奇葩,很多坑),所以选择了用自己最熟悉的 PHP 来编写脚本。在前期直接用原生的 PHP 写,后面功能越加越...

前端-显示背景图片中心区域

0x00 前言最近接到个关于移动端适配的任务,因为希望复用 PC 端的数据所以有些东西实现起来比较麻烦,比如现在讨论的显示图片中心区域。原需求是这样的:在图片比例和要显示的容器比例一致时直接按比例缩放就好,但是如果图片比例和容器比例不一致,这时候就要以容器的比例为准,显示图片的中心区域。原谅我苍白的文字描述,下面...

Laravel 生命周期解析

0x00 前言闲来无事看看 Laravel 源码,初步了解一下其生命周期方便理解和使用它。 0x01 从入口文件开始因为 Laravel 是单一入口的框架,所以我们第一步从 public/index.php 这个文件读起。 以下代码均基于 Laravel 5.7,原注释被本人替换。 123456789101112...

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 标...