渗透测试学习(1) XSShtmlspecialchars($name) 函数把string中预定义的字符转换为html实体。str_replace( '<script>', '', $name ); 把name中的<script>标签转换为空字符。可用<scr<script>ipt&
周志华《机器学习》读书笔记(2) 第三章 线性模型给定由d个属性描述的示例 x⃗ =(x1;x2;...;xd)\vec x = (x_1; x_2;... ; x_d),其中xix_i是x⃗ \vec x在第ii个属性上的取值。线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即f(x⃗ )=w1x1+w2x2+...+wdxd+bf(\vec x) = w_1x_1+w_2x_2+...+w_
周志华《机器学习》读书笔记(1) 越来越觉得一个码农应该学点机器学习相关的东西了。希望毕业前能看完这本书。— 2017年11月22日 第一章 绪论数据集中的每条记录是关于一个时间或者对象的描述,成为一个“示例”(instance)或”样本“(sample),反应时间或对象在某方面的表现或性质的事项,如“颜色”、“大小”。属性上的取值成为“属性值”(attribute value);属性张成的空间成为“属性空间”(attribu
《高性能MySQL》读书笔记 第一章 MySQL架构与历史MySQL 服务器逻辑架构图 最上层服务:大多数基于网络的服务都有类似最上层的架构第二层架构:包含大多数MySQL的核心服务功能,包括查询解析、分析、优化、缓存以及所有的内置函数(日期、时间、数学、加密函数等),所有跨存储引擎的功能都在在一层时间:存储过程、触发器、视图等。第三层:包含存储引擎。存储引擎负责 MySQL 中数据的存储与提取。连接管理与安全性。每个
MySQL 配置主从数据库 环境:一台 Master 主服务器,ip 192.168.0.1。一台 Slave 从服务器,ip 192.168.0.2。配置 Master 主服务器:在 Master 服务器上创建一个用户 ‘backup’,并将其权限设置为 REPLICATION SALVE,密码为123456。mysql> create user backup;mysql> GRANT REPLICATION SL
MySQL 数据类型 MySQL 支持所有标准 SQL数值数据类型,MySQL 数据类型是 SQL 标准的扩展。数据类型的作用允许限制可存储在列中的数据。数据类型允许在内部更高效地存储数据。允许变换排序排序。 使用错误的数据类型可能严重影响应用程序的功能和性能
Reactor 模式 Reactor 模式参考:https://segmentfault.com/a/1190000002715832Reactor 模式包含几个主要的模块:Reactor:反应器,定义一个接口,实现以下功能: 供应用程序注册和删除关注的事件句柄。运行事件循环有就绪事件到来时,分发事件到之前注册的回调函数上处理Handle (文件描述符)Synchronous Event Demultiple
高并发服务器架构笔记(4)——muduo_net 源码分析 TCP 网络编程最本质的是处理3.5个事件1. 连接建立:服务端 accept(被动)接受连接,客户端 connect (主动)发起连接。2.连接断开:主动断开(close、shutdown),被动断开(read 返回0)3 处理消息到达事件(核心):当网络库事件循环中的可读事件触发时,将数据从内核缓冲区移动到应用缓冲区中。调用OnMessage( )函数,根据协议判断数据包是否一个完整的数据包(不
Linux 网络编程笔记(3)——进程间通信 进程间通信的目的数据传输资源共享通知时间。进程控制。一个进程完全控制另一个进程的执行,如拦截另一个进程的所有陷入和异常,并能够几时知道它的状态改变。进程间通信的分类文件文件锁管道(pipe)和有名管道(FIFO)信号消息队列共享内存信号量互斥量条件变量读写锁套接字System V IPC 和 POSIX IPCSystem V IPC System V 消息队列
Linux 网络编程笔记(2)——socket 编程 socket 可以看作是用户进程与内核网络协议栈的编程接口既可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信listenfd 是被动套接字,可以用来接受连接。accept 从已完成连接队列中取出一个队列头,得到一个新套接字 connfd。connfd 是主动套接字,不能用来接受连接。服务端和客户端的 ip 和 port 四元组表示 一个连接。REUSEADDR 可以解决
Linux 网络编程笔记(1)——TCP / IP 基础 ISO / OSI 参考模型 TCP / IP 四层模型 基本概念(对等通信、封装、分用、端口) 层 作用 传输单位 作用 应用层 提供应用程序间通信 application PDU 与应用程序界面沟通,以达到展示给用户的目的 表示 处理数据格式、数据加密等 presentation PDU 对网络传输的数据进行变换(压缩加密的) 会话层
高并发服务器架构笔记(3)——muduo_base 源码分析 MutexLock MutexLock Mutex: pthread_mutex_t holder: pid_t (当前拥有该锁的线程 tid) ~~~~~~~~~~~~~ << create >> MutexLock() << destroy >> ~MutexLock() idLockedBythisThread(): bool 判断是否当前线程拥有该锁 asser
高并发服务器架构笔记(3)——muduo_base 源码分析 class Timestamp : public muduo::copyable, public boost::less_than_comparable<Timestamp>{//...}Tinestamp 类封装
高并发服务器架构笔记(2)——面向对象编程风格 以封装一个线程类为例 Thread (一个线程抽象基类) threadId: pthread_t Strat(): void Join(): void ThreadRoutine(void* arg): void Run(): void(纯虚函数)Run()表示这个线程类的执行体,每个线程类都可能不一样 TestThread : Thread (派生自 THread 的
高并发服务器架构笔记(1)——poll 和 epoll signal(SIGPIPE, SIG_IGN); //忽略 SIGPIPE 信号如果客户端关闭套接字 close(sockfd); 而服务器调用了一次write() 这时候服务器会产生一个 SIGPIPE 信号。TIME_WAIT 状态对高并发服务器有不利影响。应尽可能避免在服务器端出现 TIME_WAIT 状态,因为会耗费大量比必要的资源。协议设计上,应尽可能让客户端先 close
数据库的三个范式 第一范式(1NF)强调列的原子性,即列不能够再分成其他几列。 考虑有这样一个表:【联系人】(姓名、性别、电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构就不符合1NF,应把电话列拆分成家庭电话和公司电话。第二范式(2NF)首先是1NF,另外还有两部分内容。 1. 一个表必须有一个主键。 2. 不在主键里的列必须依赖主键的所有内容,而不能只依赖主键的一部分。
SQL 入门 了解SQL数据库是一个以某种有组织的方式存储的数据集合。表是某种(同一种)特定类型数据的结构化清单数据库名和表名的组合可以唯一的标识一个表名。就像 C++ 中的类名加函数名。表由列组成。列存储表中某部分的信息。每个列都有自己的数据类型。表中的数据按行存储。行是表中的一个记录。主键(primary key)是表中的 一列 或 几列 的组合其值能够唯一标识表中每一行。主键满足以下条件:
《C++ Primer》读书笔记——第十五章_面向对象程序设计_2 OOP基于三个基本盖面:数据抽象、继承和动态绑定。 以下的例子:基类Quote->派生类Bulk_quote 对于某些类,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明称虚函数(virtual function)。class Quote{public: std::string isbn() const; virtual doubl
temp OOP基于三个基本盖面:数据抽象、继承和动态绑定。 以下的例子:基类Quote->派生类Bulk_quote 对于某些类,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明称虚函数(virtual function)。class Quote{public: std::string isbn() const; virtual double