- 博客(86)
- 收藏
- 关注

原创 nginx 反向代理和简单的负载均衡算法
nginx 反向代理和简单的负载均衡算法nginx 安装 (MAC)// 命令行终端运行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"// 安装 nginxbrew install nginx// 运行 nginxnginx配...
2020-01-09 23:21:27
224

原创 抓包分析 https 密钥协商流程
抓包分析 https 密钥协商流程工具:Wireshark 2.6.6抓取链接:https://220.181.38.150 (*度地址)本机地址:100.81.137.224刚开始分析不知道TLS协议的会话缓存机制,百度使用了会话缓存的这种机制来加速https握手的速度!客户端使用要恢复的会话的会话ID发送“客户端问候”消息。服务器检查其会话缓存中是否有匹配的会话ID。...
2020-01-09 22:35:05
2573
2
原创 电脑检测不到手机设备
手机 adb devices 找不到设备, 华为P30 pro,连别人电脑都能识别,在我的电脑上识别不到,adb devices 找不到设备,只能充电。解决方法:只有先把USB连接设置为MTP模式,再把手机设置成USB调试模式,才可检索到手机设备。
2025-03-11 12:47:49
126
原创 为什么有了 Last-Modified 还需要 Etag
Last-Modified和If-Modified-Since是一对的。当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Last-Modified标记着文件在服务器端最后被修改的时间。浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-Modified-Since的标记,用来询问服务器该时间之后文件是否被修改过。
2025-03-11 12:45:37
185
原创 npm --unsafe-perm 参数,解决权限错误,permission denied
就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。npm会有生命周期,某个包会有生命周期来执行一些东西,安全起见会自动降级导致没有权限执行一些操作,通过–unsafe-perm参数来解锁该限制。添加–unsafe-perm 参数,如。
2025-03-11 12:41:56
290
原创 npm-shrinkwrap.json 与 package-lock.json 区别和联系
package-lock.json 是 npm 5 的新特性,也不向前兼容,如果 npm 版本是 4 或以下,那还是使用 npm-shrinkwrap.json 吧。
2025-03-11 12:40:38
299
原创 npm exact 参数记录
save-exact 、 -E参数的意思是精确的安装指定版本的模块,细心的同学会发现dependencies字段里每个模块版本号前面的^不见le。
2025-03-11 12:38:25
116
原创 npm exact 参数记录
save-exact 、 -E参数的意思是精确的安装指定版本的模块,细心的同学会发现dependencies字段里每个模块版本号前面的^不见le。
2025-03-11 12:37:44
87
原创 HTTP 强 Etag 和 弱 Etag
ETag机制同时支持强校验和弱校验。它们通过ETag标识符的开头是否存在“W/”来区分,如:“123456789” – 一个强ETag验证符W/“123456789” – 一个弱ETag验证符强校验的ETag匹配要求两个资源内容的每个字节需完全相同,包括所有其他实体字段(如Content-Language)不发生变化。强ETag允许重新装配和缓存部分响应,以及字节范围请求。弱校验的ETag匹配要求两个资源在语义上相等,这意味着在实际情况下它们可以互换,而且缓存副本也可以使用。
2025-03-11 12:34:26
498
原创 chrome 调试 hy 页面时不显示已打开的 hy 页面
chrome://inspect/#devices 页面中不显示 hy 页面 ,已开启开发这模式,已开启浏览器调试。Adb 目录在 ~/plaform-tools。命令 ./adb devices。解决方案:adb devices。
2025-03-11 11:40:38
120
原创 Charles 证书过期,重新安装证书
2、将保存的证书,拖至“登录” → “证书” 中。1、钥匙串里面找到并删除 Charles 证书。4、重启电脑,检查证书是否自动同步到系统根证书。2、保存证书到本地磁盘。5、确认代理是关闭状态。
2025-03-11 11:39:51
1000
原创 Charles VPN 同时使用冲突问题,手机 wifi 连接电脑并接入内网
2、家里面没有网线的同学(连接 wifi 就无法开启热点),当手机和电脑在同一局域网情况下,可以先打开 Charles,然后将手机 wifi 代理到本机 Charles 上,再打开 VPN “Allow local (LAN) access when using VPN (if configured)” 选项,最后连接 VPN,同样可以达到手机接入内网的效果。1、Charles 和 VPN 有冲突,需要先开启 Charles 再连接 VPN。
2025-03-11 11:36:40
565
原创 刷机后 wifi 已连接,无网络问题
我们刷完LineageOS后,连接WiFi或者移动网络,会出现叉号或叹号。这是因为在连接一个网络的时候,系统会去请求一个google的网址来确定这个网络是否具有网络访问。由于我国GFW封锁策略,导致系统请求google网址不成功,就会出现叉号或叹号。电脑配置adb环境,打开命令行。手机root并开启调试模式。一、叉号/叹号出现的原因。
2025-03-11 11:27:31
270
原创 react hook 简易实现
摘自:自顶向下学 React 源码<!DOCTYPE html><html lang="en"><head> <title>React App</title></head><body> <div id="root1"></div> <div id="root2"></div> <div id="a"> &
2021-06-14 23:41:18
401
3
原创 js 根据银行卡号 匹配 得到 所属银行名称
如有未涉及到的银行信息,请联系作者更新数据。const BANK_CARD_LIST = [ { bankName: "中国邮政储蓄银行", bankCode: "PSBC", patterns: [{ reg: /^(621096|621098|622150|622151|622181|622188|622199|...
2020-04-28 11:12:23
2079
原创 手机号、银行卡号 格式化 加空格 每四位一空格
xxxxxxxx.replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 ")
2020-04-22 15:44:10
945
原创 关闭iterm2中对于行数的限制
iTerm2 默认的行数限制,超过 1000 的部分就被隐藏不显示了。处理方式:打开 Preferences窗口,点击 Profiles,右侧点击 Terminal,在 Scrollback line 右边勾选 Ulimited scrollback。...
2020-04-19 23:28:54
15252
1
原创 LeetCode 703. 数据流中的第K大元素 JavaScript
/** * 通过 * @param {number} k * @param {number[]} nums */function swap(arr, i, j) { [arr[i], arr[j]] = [arr[j], arr[i]];}// 调整堆function heapify(arr, len, i) { while (true) { if...
2020-04-12 14:24:38
316
原创 JS判断客户端是否是iOS或者Android
var u = navigator.userAgent;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端alert('是否是Android:'+i...
2020-03-24 10:41:11
230
原创 写了好多代码,发现写错分支了怎么办
未提交的情况下git add . (把所有改动暂存)git stash (把暂存的文件提交到git的暂存栈)git checkout 本该提交代码的分支git stash pop (将暂存栈中的代码放出来)至于是继续改还是提交就随你了已提交的情况下git checkout 不该提交代码提交了代码的分支git reset HEAD~1 (最近一次提交放回暂存区,...
2020-03-11 18:11:05
3689
2
原创 不小心把 node_modules 文件夹 或 logs 文件夹 或一些开发依赖上传至远程仓库怎么办?
1.找到项目中 .gitignore 文件2.在文件任意添加需要忽略的文件或文件夹node_modules/logs/3.git rm -r node_modules/ --cached 这里如果是文件夹需要 -r 文件则不需要4.git add .5.git commit -m “node_modules 文件夹忽略”6.git push origin xux.zhou...
2020-03-11 18:10:33
782
原创 git 补丁
git add . git commit -m “小程序监控迁移” git log 记录要打补丁的 commit 557d00dc8ff8f5e8cad9922c56f030d399d0e063 git format-patch 557d00dc8ff8f5e8cad9922c56f030d399d0e063 -1 创建 patch 这里的 1 是指作用于一个提交,当然了 2 ...
2020-03-11 18:09:25
178
原创 git 分支重命名
假设分支名称为oldName想要修改为 newName1. 本地分支重命名(还没有推送到远程)git branch -m oldName newName2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)a. 重命名远程分支对应的本地分支git branch -m oldName newNameb. 删除远程分支git push -d origin ...
2020-03-11 18:08:59
174
原创 git stash pop 后冲突
git stash pop 后冲突,冲突后 git stash 中的记录并不会删除。git stash pop 后冲突,git reset --hard 可恢复至 pop 前状态
2020-03-11 18:08:18
1856
原创 git revert 回滚、撤销、反做
比如分支上有 A、B、C、D 四个 commit ,现在发现 B 上面有 bug 需要把 B 上面的代码下掉 我们可以通过 git revert (B版本号) 来对 B 提交做一个取反的操作,比如 B 添加了一行代码 git revert B 之后就会删除 B 添加的这行代码然后 git commit -m "revert B" 提交改操作git push 有冲突的话需要...
2020-03-11 18:07:32
633
原创 git reset
git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认情况下是 -–soft。 执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status 命令可以在缓冲区中看到这些修改。而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。可以使用 git p...
2020-03-11 18:07:00
273
原创 git 无法与远程其他分支交互问题
起因:项目是通过 git clone XXX —depth=1 仅拉取最后一个版本到本地,导致本地无法查看远程其他分支,也无法向其他分支推送代码解决方案:vim .git/config按照如下示例修改:[core] repositoryformatversion = 0 filemode = true bare = false logallrefupd...
2020-03-11 18:03:55
299
原创 js 手写 Object.is
Object在严格等于的基础上修复了一些特殊情况下的失误,具体来说就是+0和-0,NaN和NaN。function is(x, y) { if (x === y) { //运行到1/x === 1/y的时候x和y都为0,但是1/+0 = +Infinity, 1/-0 = -Infinity, 是不一样的 return x !== 0 || y !== 0...
2020-03-04 21:40:12
510
原创 js 手写 instanceof
function myInstanceof(left, right) { if(typeof left !== 'object' || left == null) { return false } let proto = Object.getPrototypeOf(left); while(proto) { if(proto === ...
2020-03-04 21:22:36
533
原创 css 实现 三角形 梯形
在线调试<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title> <style> div { width: 0; height: 0; border-width: 1...
2020-02-23 20:53:13
303
原创 js 手写 call apply bind
calllet obj = { name: 'xxx'}function sayName(prev) { console.log(prev, this.name)}Function.prototype.myCall = function (context) { context = context || window; let args = [...ar...
2020-02-23 20:22:16
486
原创 js 插入排序 时间复杂度 n^2
// 插入排序 时间复杂度 n^2var arr = [1, 4, 5, 6, 8, 9, 4, 3, 3, 4, 56, 7, 8, 56, 4, 3, 2, 3, 5, 456]for (let i = 2, len = arr.length; i < len; i++) { let k = arr[i] let index = i for (let j...
2020-02-23 16:50:21
290
原创 js 对象模拟 DOM 树 实现 render 方法 调用 render 方法将 js 对象转真正的 DOM 节点
var ul = el('ul', { id: 'list' }, [ el('li', { class: 'item' }, ['item 1']), el('li', { class: 'item' }, ['item 2']), el('li', { class: 'item' }, ['item 3']),])var ulRoot = ul.render();...
2020-02-23 15:15:06
912
1
原创 js 双向链表 插入 查找
function Node(value) { this.value = value; this.prev = null; this.next = null; return this;}function List() { this.head = new Node(null); this.insert = function(index, node...
2020-02-22 23:30:19
208
原创 js 手写 es6 模板字符串
// ES6 模板字符串let name = "小明";let age = 24;let temp = "hello, 我是 ${ name }, 今年 ${ age} 岁了, 五年以后我 ${age+5} 岁。";function fn(str) { console.log(str) return str.replace(/\$\{(.*?)\}/g, f...
2020-02-22 21:35:41
902
1
原创 base64相关
Base64图片编码原理:Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’http://gj.3gwen.com/tpbase64.html?kbl=base64 里为什么需要每个 6 位二进制需要...
2020-02-16 22:30:22
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人