自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 wrote more than the declared Content-Length

问题rootcase为 处理程序返回后尝试写入 ResponseWriter ,违反了协议规定(由于没有同步,写入也可能实际发生在 return 之前或同时发生)。SSE接口偶现 http: wrote more than the declared Content-Length, 交替伴随其空指针.

2024-02-27 15:47:20 180

原创 mysql中如何选择char与varchar

UTF-8 mb4 是 MySQL 中用于存储 Unicode 字符串的一种字符集,mb4 是“多字节 4 字节”的缩写,意味着它能够支持 4 字节长的 Unicode 字符。但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。需要注意的是,对于使用 UTF-8 编码的字符串而言,一个字符并不一定占用一个字节的空间,因为 UTF-8 是一种变长编码方式。

2023-05-08 16:04:25 329 1

翻译 protoc protoc-gen-go protobuf 之间的关系

protoc protoc-gen-go protobuf 之间的关系protobufprotocol buffer 是谷歌内部的混合语言数据标准,通过将结构化的数据进行序列化,结果可用于通讯、存储. 该标准协议与语言无关、平台无关.目前基本已被所有主流开发语言所支持. 其功能定位对标 json、xml等数据标准.序列化:将数据结构或对象转换成二进制串的过程反序列化:将在序列化过程中所产生的二进制串转换成数据结构或对象的过程项目地址https://github.com/google/prot

2022-05-26 23:09:40 964

原创 mysql查询超时控制

mysql查询超时控制mysql客户端与服务端通讯可以采用 长连接 与 短连接 两种方式.短连接 适合客户端数量不确定 数据交互量小. 交互完毕后立刻释放tcp链接. 不占用链接长连接 适合客户端数量固定 且数据交互频繁的场景 节省tcp频繁创建断开开销一般我们的服务器与mysql之间采用第二种方式. 服务端 与 mysql服务器 维持一个连接池. hold n 个长连接复用.如果使用了长连接而长期没有对数据库进行任何操作,那么在timeout值后,mysql server就会关闭此连接现

2022-02-25 20:19:40 3032

原创 性能调优不能光靠拍脑门子

qcachegrind背景可量化是问题解决的前提条件.性能优化不能仅仅局限于理论分析,要通过性能分析工具辅助来得出量化指标.从而更加准确的去衡量优化方案.每种成熟的语言都有自己的性能监测工具.例如:golang : pprofphp : xdebug , xhprof这些性能监测工具通过钩子埋点等方式对程序的耗时,内存使用量,调用顺序等关键数据进行记录.从而生成响应的监测报告.这些文件生成时都是按照统一的报告协议进行记录,这样便于使用成熟的分析工具(或自研工具)来解析分析报告.同时也便于

2021-01-18 18:23:16 328

转载 什么样的语言可以进行反编译

什么样的语言可以进行反编译本文从知乎扒的,没扒图,感觉文字就ok.中间加了一些注释,如有需要请移步.概念介绍要理解这个问题,先要看「正」编译的过程是怎样的。你有一个想法,这是一种人类自然语言可以表达出来的东西。你利用编程技能,把它「翻译」成你熟悉的一种编程语言这个过程叫做编程。你使用编译器(compiler)将它翻译成机器所能理解的语言:这个过程叫做编译。编程和编译都是「信息丢失」的过程。比如你说,我有一组整数,我要把这些数排个序,然后轻车熟路地写了个冒泡排序。然而一定程度上,你的原始动机其

2021-01-10 21:41:59 1327

原创 源码编译php时发现没有configure文件

源码编译php时发现没有configure文件.源码编译php时发现没有configure.使用autoconf生成configure时发现版本过低.[sujianhui@ php-src-php-7.4.7]$>./buildconf --forcebuildconf: Checking installationbuildconf: autoconf version 2.65 found. You need autoconf version 2.68 or newer

2020-11-29 10:55:19 1331

原创 nginx_rewrite之后url中同时存在两个问号

nginx_rewrite之后url中同时存在两个问号一个正常的url http://localhost/cmpt/document/list?name=sjh那么php接收到以后var_dump($_GET) array( name => sjh)很多php框架为了统一应用入口文件,都会在nginx中location模块中配置重写.现在nginx增加重写规则,将所有请求的入口统一为index.phplocation / { if (!-e $request_filen

2020-10-26 18:40:04 1678

原创 php7中如何停止php-fpm服务

php7中如何停止php-fpm服务在PHP生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。在PHP的源码中,当需要调用服务器相关信息时,全部通过SAPI接口中对应的方法调用实现php-fpm + nginxphp + terminal... PHP常见的四种运行模式SAPI(Server Application Programming Interface)服务器应用程序编程接口,即PHP与其他应用交互的接

2020-10-25 16:47:33 1747 2

转载 nginx模块学习_location

nginx模块学习 location先学简单实用的,有什么不好呢lcation语法规则location [=|~|~*|^~] /uri/ { ...}location后接的匹配规则含义= 表示精确匹配.相当于php中的==^~ 匹配uri中的path部分以某个常规字符串开头的url即可.~ 区分大小写的正则匹配~* 不区分大小写的正则匹配!~ 区分大小写不匹配的正则!~* 不区分大小写不匹配的正则/ 通用匹配,任何请求都会匹配到

2020-10-25 15:40:57 278 2

原创 5xx系列问题解决

5xx系列问题解决解决5xx系列问题的首要手段就是查询nginx错误日志.500(服务器内部错误) 服务器遇到错误,无法完成请求。501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。502 错误网关 bad gateway 上游有错误 php-fpm未启动或者不能正确的返回响应.503 service temporarily unavailable 一般情况下在出现Service Temporarily Unavailable错

2020-10-18 21:04:24 3500

原创 如何高大上的解决404问题

如何高大上的解决 404配置完vhost.conf后,访问域名返回404.依次检查selinux是否关闭域名路径是否正确hostname与ip是否对应这几处都没有问题,那该怎么办呢?nginx的进程模型是 master-worker模式.由worker进行负责具体的cgi请求解析.[sujianhui@dev529 public]$>ps aux | grep nginxroot 9977 0.0 0.0 47496 2444 ? Ss 15:1

2020-10-18 20:54:46 1079

翻译 web应用场景下的csrf攻击防御实例

跨站请求伪造CSRF(Cross-site request forgery)攻击者盗用了你的身份,以你的名义发送恶意请求攻击模式:要完成一次CSRF攻击,受害者必须依次完成两个步骤登录受信任网站A,并在本地生成Cookie.在不登出站点A的情况下,访问危险网站B.站点B中包含了伪造的可以请求站点A的恶意请求,此时可以利用A在浏览器中缓存的cookie.Example.1攻击情景原文中Alice是受害者,她使用的一个银行网站http://unsafe/存在session fixation漏洞

2020-10-18 20:02:26 336

翻译 https加密技术实现原理

https加密技术实现原理https与http的区别https保证在网络中传输的数据是经过加密的,而不是明文.防止中间人进行抓包分析.https能够验证服务器身份,保证访问的站点是官方站点而不是山寨站点,避免中间人攻击.所以:http与https最核心的区别就是 https是一个安全的传输协议.基本概念数字签名 对源字符串进行压缩提取信息摘要,常用来验证源字符串经过传输后是否被篡改.数字证书 数字证书里包含明文T,数字签名S两段重要信息,其中明文T中包括证书持有者(比如域名,域名所有

2020-07-20 22:32:14 1032

翻译 mysql不推荐列默认值设置为null到底是为什么

MySQL不建议使用NULL作为列默认值到底为什么通常能听到的答案是使用了NULL值的列将会使所以失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞.但是毫无疑问,NULL是很特殊,很不合群的.既然NULL如此特殊,如此不合群,为什么它还会存在呢?我们什么时候需要使用NULL呢?PrefaceNull is a special constraint of columns.The columns in table will be added null constra

2020-07-16 22:15:18 3417 1

原创 数字以及字符串的排序

数字以及字符串的排序引子工作中我们经常遇到两种排序场景.对数字排序对字符串排序 (对纯字母字符串排序|对纯数字字符串排序|对汉字字符串排序|对混杂了字母汉字数字特殊字符的字符串排序…)这涉及到两种不同的排序算法自然有序/自然排序字典序/按字母序排序例如:在自然排序算法中,数字2小于数字10.但是在计算机排序算法中,字符串10小于字符串2,因为10中的第一个数字小于2.字典序自然排序没什么好说的,大家都会.主要说一说字典序.在绝大多数语言中,都提供了比较两个字符串大小的方法,比较

2020-07-03 11:18:46 3942

原创 排序算法—快速排序

快速排序快速排序是目前内部排序中性能较好的算法,面试必问,必须掌握.快速排序是在冒泡排序算法上优化而来,最好可以先掌握冒泡排序,然后才能较快掌握快排为什么快,以及在特定条件下为什么会慢.快排与归并两中算法的解决思路相似.均采用分治法.但是实现细节又稍有不同(两者都有交替处理的步骤).最好可以提前掌握归并排序.步骤拆解目的:将原始序列按照升序排序.从待排序的原始序列中选取一个枢纽点pivot从原始序列的两端(最左边key = 0,以及最右边key = len - 1) 交替与pivot元素值比

2020-07-01 19:17:20 2172

原创 排序算法—堆排序

堆排序以前我们的都是在顺序存储的线性链表上应用分治法的算法,比如双端同时开始查找(快排,归并等等).来提高算法的效率.现在我们来了解不同寻常的排序方法.对存储在顺序表中的二叉树进行堆排序,从而得出我们期望的有序序列.有没有感觉起跑线都不一样.以往都是优化算法,谁能想到优化结构呢?知识点.用数组来实现树相关的数据结构也许看起来有点古怪,但是它在时间和空间上都是很高效的。并不是每一个最小堆都是一个有序数组!要将堆转换成有序数组,需要使用堆排序。堆的根节点中存放的是最大或者最小元素,但是其他节点的

2020-07-01 19:15:25 442

原创 一直搞不明白高地址与高位

内存地址中的高地址与低地址可以把主存看成一本空白的作业本,你现在要在笔记本上记录一些内容,他的页码排序是第一页 : 0x0000001第二页 : 0x0000002...最后一页: 0x00000921 如果你选择从前向后记录(用完第一页,用第二页,类推)这就是先使用低地址,后使用高地址.0x0000001 -> 0x0000002-> ... -> 0x0...

2020-04-29 12:25:01 5889

原创 如何使用CLion调试make工具构建的项目

如何使用Clion调试使用make工具构建的项目背景介绍CLion只支持使用Cmake工具构建项目,但是有很多项目是使用make进行构建的(比如php核心源码/redis源码).那么如何将一个make项目导入到CLion中,转化为CMake构建方式呢,这样我们就能使用CLion阅读一些开源软件,使用我们熟悉的小瓢虫进行断点调试了回顾CMake与make的关系make是帮助构建(构建就是编...

2020-04-26 17:09:35 3856

原创 为什么if里两个判断表达式要分两行书写

```c while (!is_empty()) { p = dequeue(); show_p(p); if (p.row == MAX_ROW - 1 /* goal */ && p.col == MAX_COL - 1) break; if (p.col+1 ...

2020-03-06 13:09:14 342

原创 利器tcpdump

通过tcpdump学习三次握手 四次挥手准备工作Web服务器IP(阿里云的内网IP:172.17.51.219:443) 客户端浏览器 IP:114.242.250.59标志位(常用)P push,立刻刷新输出buffer. 确认应答ACKF 确认结束S 请求同步 步骤:1 服务端shell中执行tcpdump启动监听tcpdump tcp -i eth0 '((...

2020-02-16 22:14:41 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除