学习杂记

前言:以下为在下在工作和学习中慢慢总结的一点点小知识和一些链接,些许零散且凌乱,请网友不要锱铢必较,可以留言尊听您的意见,废话不多说,请向下看:

知识点总结  
https://www.cnblogs.com/ryanlamp/p/6936765.html
各种PDF文档 
https://guonetnet.ctfile.com/shared/folder_21150501_e7e3f8a3/
++++++++++++++++++++++++++++++++++++++++++++
protobuf参考文档:
https://developers.google.com/protocol-buffers/docs/overview
PHP解析protobuf(即.proto文件)  
https://blog.csdn.net/u011957758/article/details/52455231
++++++++++++++++++++++++++++++++++++++++++++
                        关于集群、负载均衡、分布式的区别
Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 
一.科学计算集群:它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多;
二.负载均衡集群:它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的相应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能相应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多;
三.高可用性集群:它是利用集群中系统的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用;
-------------------------------------------
负载均衡系统: 负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、 b、c,那么分别由服务器A、B、C来处理;
-------------------------------------------
分布式是指将不同的业务分布在不同的地方。 
而集群指的是将几台服务器集中在一起,实现同一业务。 
分布式中的每一个节点,都可以做集群。 
而集群并不一定就是分布式的。
++++++++++++++++++++++++++++++++++++++++++++
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.HTTP是一个无状态的协议;
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS;
HTTP(+TLS\SSL[TLS的前身是SSL]=HTTPS)+TCP+IP+数据链路层;默认HTTP的端口号为80,HTTPS的端口号为443;
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
++++++++++++++++++++++++++++++++++++++++++++
HTTPS是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL;所用的端口号是443;
一.HPPTS实现原理:
有两种基本的加解密算法类型:
1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
-------------------------------------------
HTTPS协议详解详细教程:https://blog.csdn.net/hherima/article/details/52469267
关于Https协议中的ssl加密解密流程:https://blog.csdn.net/shw372029857/article/details/52687906
https是如何保证数据传输的安全:https://blog.csdn.net/jasonjwl/article/details/50985271
TCP、UDP、IP报头结构体分析:https://blog.csdn.net/laoniu_c/article/details/39269165
TCP和UDP的最完整的区别:https://blog.csdn.net/Li_Ning_/article/details/52117463
TCP的三次握手四次挥手:https://www.jianshu.com/p/a1ebc61ce141
-------------------------------------------
SSL握手过程使用非对称加密协商秘钥,而对HTTP内容采用对称加密进行传输。
SSL握手过程:A(客户端)、B(服务端)
1. A向B发送请求,告诉B自己支持的加密算法
2. B选择加密组合,并传给A证书和其中的公钥
3. A验证B证书的合法性,同时A生成自己的对称秘钥
4. A向B发送用B的公钥加密的秘密信息,自此A开始加密传输信息
5. B收到秘密信息,用自己的私钥解密,拿到A的对称秘钥,自此B开始加密传输信息
-------------------------------------------
证书问题:(由代理服务器造成)
1. 证书伪造
2. 证书被篡改:将公钥替换
-------------------------------------------
为了保护数据的安全,HTTPS 运用了诸多加密算法:
1.对称加密(作用:采用协商的密钥对数据加密):有流式、分组两种,加密和解密都是使用的同一个密钥。
例如:DES、AES-GCM、ChaCha20-Poly1305 等。
2.非对称加密(作用:采用协商的密钥对数据加密):加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
例如:RSA、DSA、ECDSA、 DH、ECDHE 等。
3.哈希散列算法(作用:验证信息的完整性):将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
例如:MD5、SHA-1、SHA-2、SHA-256 等。
4.数字签名:签名就是在信息的后面再加上一段内容(信息经过 hash 后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。
-------------------------------------------
数字签名、摘要是证书防伪非常关键的武器。
过程:明文->hash运算->摘要->私钥加密->数字签名,所以数字签名只用CA的公钥才可以解密。
CA有自己的证书称为“跟证书”,以证明CA身份。
++++++++++++++++++++++++++++++++++++++++++++
                                    Cookie和Session
一.Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力。
Session可以用Cookie来实现,也可以用URL回写的机制来实现。用Cookie来实现的Session可以认为是对Cookie更高级的应用。
二.Cookie和Session有以下明显的不同点:
1)Cookie将状态保存在客户端,Session将状态保存在服务器端;
2)Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。Cookie最早在RFC2109中实现,后续RFC2965做了增强。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies。Session并没有在HTTP的协议中定义;
3)Session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器;
4)就安全性来说:当你访问一个使用session的站点,同时在自己机子上建立一个cookie,建议在服务器端的SESSION机制更安全些.因为它不会任意读取客户存储的信息。
三.Session机制:
Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识称为sessionid,如果已包含一个sessionid则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含sessionid,则为此客户端创建一个session并且生成一个与此session相关联的sessionid,sessionid的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。
++++++++++++++++++++++++++++++++++++++++++++
TCP\IP协议栈及OSI参考模型:
应用层(提供程序间通讯,涉及到的协议:HTTP\FTP\POP3\DNS等)
表示层(处理数据格式数据加密,涉及到的协议:SSL\TLS)
会话层(建立维持管理会话)
传输层(建立端到端连接保证数据正确传输,涉及到的主要协议:TCP\UDP)
网络层(在不同网络之间传输数据包,涉及到的协议:IP\ICMP\ARP\RARP)
数据链路层(分为MAC子层和LLC子层)
物理层(提供介质,传输比特流)
++++++++++++++++++++++++++++++++++++++++++++
一次完整的HTTP请求过程:
1.域名解析-->① 浏览器会首先搜索浏览器自身的DNS缓存; chrome://net-internals/#dns
          -->② 如果浏览器自身的缓存里面没有找到对应的条目,搜索操作系统自身的DNS缓存;使用 ipconfig /displaydns 来进行查看
          -->③ 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件;
          -->④ 如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器及运营商的服务器做DNS解析;
2.发起TCP的3次握手
3.建立TCP连接后发起http请求
4.服务器端响应http请求,浏览器得到html代码
5.浏览器解析html代码,并请求html代码中的资源
6.浏览器对页面进行渲染呈现给用户
++++++++++++++++++++++++++++++++++++++++++++
                           全局变量global和静态变量的区别:
全局变量仅在整个工程文件内有效;
静态全局变量仅在定义它的文件内有效;
静态局部变量仅在定义它的函数内有效,知识程序仅给其分配一次内存,函数返回值后,该变量不会消失;
局部变量仅在定义它的函数内有效,并且程序执行完,该变量即消失;
全局变量说明前用static修饰,就构成了静态的全局变量,其实全局变量的存储方式就是静态存储方式,静态全局变量当然也是静态存储方式,两者在存储方式上并无不同。主要的不同之处在于这两者的作用域:非静态的全局变量是这个源程序,当一个源程序引入多个文件时,非静态的全局变量在各个文件内都有效;而静态变量则限制了其作用域,只作用域定义它的源程序内,引入的文件则不能使用。
所以在封装一个类文件设计变量属性的时候应考虑:
A:若全局变量仅在单个文件中访问,则可以将其设计为静态全局变量,以降低模块间的耦合度;
B:若全局变量仅在单个函数内访问,则可以将其设计为该函数的静态局部变量,以降低模块间的耦合度;
C:若需要一个可重入的函数,一定要避免函数内使用static变量(这样的函数称之为带“内部存储器”功能的函数)
D:设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,一定要考虑变量重入问题;
++++++++++++++++++++++++++++++++++++++++++++
PHP的八种数据类型在PHP内核里都是用zval数据结构来表示的,zval有四个成员:type\value\is_ref_gc\is_count_gc。
PHP变量在PHP内核是通过hashtable来存储的,hashtable有两种数据结构:Bucket(桶)数据结构、hashtable数据结构;
++++++++++++++++++++++++++++++++++++++++++++
PHP超级全局变量、魔术变量和魔术函数:
PHP超级全局变量(9个)
$GLOBALS    储存全局作用域中的变量
$_SERVER    获取服务器相关信息
$_REQUEST   获取POST和GET请求的参数
$_POST      获取表单的POST请求参数
$_GET       获取表单的GET请求参数
$_FILES     获取上传文件的的变量
$_ENV       获取服务器端环境变量的数组
$_COOKIE    浏览器cookie的操作
        设置cookie:setcookie(name, value, expire, path, domain);
              获取cookie:$_COOKIE["user"];
       删除cookie:setcookie("user", "", time()-3600);//设置过期时间
$_SESSION   服务端session的操作
       使用session前一定要session_start()启动session
       储存session:$_SESSION["name"]="King";//数组操作
       销毁session:unset($_SESSION["name"]);//销毁一个
       session_destroy()和unset($_SESSION);//销毁所有的session
-----------------------------------
PHP魔术变量(8个)
__LINE__       文件中的当前行号。
__FILE__       文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__        文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
__FUNCTION__   常量返回该函数被定义时的名字
__CLASS__      常量返回该类被定义时的名字(区分大小写)。
__METHOD__     类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__  当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)
-----------------------------------
PHP魔术函数(13个)
__construct()  实例化对象时被调用
__destruct()   当删除一个对象或对象操作终止时被调用。
__call()     对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。
__get()      读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。
__set()      设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。
__toString()   打印一个对象的时被调用。如echo $obj;或print $obj;
__clone()     克隆对象时被调用。如:$t=new Test();$t1=clone $t;
__sleep()     serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
__wakeup()     unserialize时被调用,做些对象的初始化工作。
__isset()     检测一个对象的属性是否存在时被调用。如:isset($c->name)。
__unset()    unset一个对象的属性时被调用。如:unset($c->name)。
__set_state()  调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
__autoload()   实例化一个对象时,如果对应的类不存在,则该方法被调用。
++++++++++++++++++++++++++++++++++++++++++++
                                接口和抽象类有什么区别
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果
7、抽象类里可以没有抽象方法
8、如果一个类里有抽象方法,那么这个类只能是抽象类
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。
-----------------------------------
什么情况下使用接口或抽象类?
1. 接口是一种协定,抽象类则相当于类模板。
2. 使用抽象类,而不要使用接口来分离协定与实现。如果需要提供多态层次结构的值类型,使用接口。 如果一个类型必须实现多个协定,或者协定适用于多种类型,使用接口。
3. 虽然抽象类和接口都支持将协定与实现分离开来,但接口不能指定以后版本中的新成员,而抽象类可以根据需要添加成员以支持更多功能。
4. 优先考虑定义类,而不是接口。
5. 接口更多的是在系统框架设计方法发挥作用,主要定义模块之间的通信,而抽象类在代码实现方面发挥作用,可以实现代码的重用
++++++++++++++++++++++++++++++++++++++++++++
雅虎优化网站加载速度的34条法则:http://www.cnblogs.com/paul-3/p/5999722.html
前端优化:
1.减少HTTP请求数;
2.充分利用浏览器缓存;
3.分布式存储前端资源;
4.资源数据压缩;
5.优化首屏展示速度;
-------------------------------------------
后端优化套路:负载均衡、动静分离、读写分离、缓存、分布式;
https://segmentfault.com/a/1190000010455076
-------------------------------------------
Opcache缓存:当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Zend引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码(称为Opcode),最后执行Opcode。Opcode cache的目地是避免重复编译,减少CPU和内存开销。
-------------------------------------------
数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争:
https://www.cnblogs.com/shuaiandjun/p/5648006.html
++++++++++++++++++++++++++++++++++++++++++++
MySQL、MySQLi和PDO的区别:
1.mysql扩展提供了一个面向过程 的接口;
2.相对于mysql扩展的提升主要有:面向对象接口、prepared语句支持、多语句执行支持、事务支持、增强的调试能力、嵌入式服务支持;
3.PHP数据对象,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以,使得你的PHP应用不去关心具体要 连接的数据库服务器系统类型。也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器。
-------------------------------------------
MySQL BTree索引和hash索引的区别:https://blog.csdn.net/oChangWen/article/details/54024063
关系型数据库和非关系型数据库区别:https://blog.csdn.net/oChangWen/article/details/53423301
数据库算法:https://www.cnblogs.com/dy2903/p/8426859.html
++++++++++++++++++++++++++++++++++++++++++++
中间件:是用于组成应用程序管道来处理请求和响应的组件。是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。
++++++++++++++++++++++++++++++++++++++++++++
同步与异步  阻塞与非阻塞
https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538901&idx=1&sn=d1f7d5461491a9c240f16da6b7c0ced9&scene=21#wechat_redirect
++++++++++++++++++++++++++++++++++++++++++++
一.memcache magent 分布式设计?
Linux-Memcache分布式部署方案(magent代理解决单点故障):https://www.cnblogs.com/JohnABC/p/5752994.html

二.redis分布式锁设计?
https://www.cnblogs.com/wenxiong/p/3954174.html

三.redis分布式缓存设计?
https://www.cnblogs.com/kabi/p/5894080.html

四.redis与memcached的详细区别
https://blog.csdn.net/chaoluo001/article/details/70740307
https://www.toutiao.com/i6585499911020610056/

五.redis安装
https://www.cnblogs.com/KunGe-13/p/8340309.html
redis拓展:https://blog.csdn.net/dmtnewtons_blog/article/details/80818677

六.MySQL、MongoDB、Redis 数据库之间的区别
https://blog.csdn.net/CatStarXcode/article/details/79513425
http://www.open-open.com/lib/view/open1409643182369.html

七.mongoDB安装
http://zixuephp.net/article-375.html
用户名密码:https://blog.csdn.net/qq_15304369/article/details/80688726
https://blog.csdn.net/zhao50632/article/details/44922621

八.memcached安装
安装服务:https://www.cnblogs.com/hejun695/p/5369610.html
安装PHP拓展:https://blog.csdn.net/xahuo/article/details/50372736
数据结构和内存管理:https://blog.csdn.net/yxnyxnyxnyxnyxn/article/details/7869900

++++++++++++++++++++++++++++++++++++++++++++
支付
一.苹果支付
苹果支付流程:
    1. 用户在App客户端点击购买
    2. 确认购买项目
    3. App后台生成内购订单
    4. AppStore账户验证
    5. 苹果服务器验证用户请求并从用户帐号扣款
    6. App向用户返回购买成功收据
    7. App把收据发送到自己的服务器后台***
    8. 后台接收App发送的收据信息去苹果服务器验证收据真伪***
    9. 验证成功后,将交易记录入库
    10.返回给App客户端相应结果并展示给用户
    注意:
    1. 苹果测试服务器: https://sandbox.itunes.apple.com/verifyReceipt(不收费)
       苹果正式服务器:https://buy.itunes.apple.com/verifyReceipt(收费)
    2. App提交审核时使用的是测试服务器,不然审核失败
    3. 测试时需要开一个苹果账号测试,不能使用正常的苹果ID支付
    4. 充值成功后的回调会重复调用,需要判断是否重复调用验证
    5. 为确保验证成功,需要判断客户端传过来的是什么环境的数据,在重新验证
    客户端返回数据(缩简版):
    {"receipt-data" : "MIIXjgYJKoZIhvcNAQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkCCA7rTMZTo1pkIg=="}
    服务器返回数据:
    {"status" : 0, "receipt" : { ... },"latest_receipt" : "(base-64 encoded receipt)","latest_receipt_info" : { ... } }
-------------------------------------------
二.微信支付
微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。
证书属于敏感信息,请妥善保管不要泄露和被他人复制。
不同开发语言下的证书格式不同,以下为说明指引:
证书pkcs12格式(apiclient_cert.p12)
    包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
    部分安全性要求较高的API需要使用该证书来确认您的调用身份
    windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000)
证书pem格式(apiclient_cert.pem)
    从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
    部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
    您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
证书密钥pem格式(apiclient_key.pem)
    从apiclient_cert.p12中导出密钥部分的文件,为pem格式
    部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
    您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
CA证书(rootca.pem)
    微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性
    该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性
    某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用
++++++++++++++++++++++++++++++++++++++++++++
1.SQL注入:PDO预处理语句
2.XSS攻击:htmlentities、htmlspecialchars转实体字符
3.CSRF攻击:开启表单令牌验证避免数据的重复提交
4.CORS:一种跨域访问技术
++++++++++++++++++++++++++++++++++++++++++++
算法:
https://www.cnblogs.com/wsnb/p/5172431.html
https://blog.csdn.net/s1070/article/details/51174725
++++++++++++++++++++++++++++++++++++++++++++
1. bit:位
    一个二进制数据0或1,是1bit;
2. byte:字节
    存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45)即是指45个字节;
    1 byte = 8 bit
3. 一个英文字符占一个字节;
    1 字母 = 1 byte = 8 bit
4. 一个汉字占2个字节;
    1 汉字 = 2 byte = 16 bit
5. 标点符号
    A>.  汉字输入状态下,默认为全角输入方式;
    B>.  英文输入状态下,默认为半角输入方式;
    C>.  全角输入方式下,标点符号占2字节;
    D>.  半角输入方式下,标点符号占1字节;
    故:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置);
            英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置);
++++++++++++++++++++++++++++++++++++++++++++
Mysql用户操作:
#查看数据库空间所有用户
select user, host from mysql.user;
#创建用户及登陆密码
CREATE USER 'convert'@'127.0.0.1' IDENTIFIED BY 'xdKvzz4PHkB123';
#授权所有权限
GRANT ALL PRIVILEGES ON *.* to 'convert'@'%' IDENTIFIED BY 'xdKvzz4PHkB123';

#创建用户his及密码为his
CREATE USER 'his'@'127.0.0.1' IDENTIFIED BY 'his';
#设置密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('bene9g6ea8s6de1');
#授权部分权限
GRANT SELECT,INSERT,UPDATE,DELETE ON his.* TO 'his'@'%' IDENTIFIED BY 'his';
#刷新权限
FLUSH PRIVILEGES;

#mysqldump 导出指定数据库

mysqldump -u root -p --databases 数据库名 > /tmp/database/database.sql
++++++++++++++++++++++++++++++++++++++++++++
Window常用命令:
win打开任务管理器命令: taskmgr
win打开任务计划程序页面:tashschd.msc
win修改cmd页面编码:chcp 65001(UTF-8) 950(繁体中文) 936(GBK) 437(DOS英文)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信开发使用的cert,里面微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 证书属于敏感信息,请妥善保管不要泄露和被他人复制。 不同开发语言下的证书格式不同,以下为说明指引: 证书pkcs12格式(apiclient_cert.p12) 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 部分安全性要求较高的API需要使用该证书来确认您的调用身份 windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) 证书pem格式(apiclient_cert.pem) 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem 证书密钥pem格式(apiclient_key.pem) 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem CA证书(rootca.pem) 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值