转载于:https://zhuanlan.zhihu.com/p/...答案不标准,是笔者的经验,仅供参考mysql_real_escape_string有什么本质区别mysql_escape_string之间,有什么用?mysql_real_escape_string需要预连接数据库,可以在第二个参数中传入数据库连接(不填则使用之前的连接)。两者都是对插入数据库的数据进行转义,但是对mysql_real_escape_string进行转义时,会认为数据库连接的字符被设置。它们用于让数据正常插入数据库,防止sql注入,但不能100%防止sql注入。为什么以上功能还是不能100%防止SQL注入因为客户端编码和服务端编码不同,可能会出现注入问题,但实际上这种场景很少见。为什么不推荐使用PHP的连接组件mysql?被弃用的原因是官方不再推荐使用mysql_xx数据库操作方式。推荐使用pdo和mysqli,因为mysqli在性能和安全性上都优于mysql。为什么PHP的连接组件MySQLi比MySQL好?什么是内存泄漏,js内存泄漏是怎么发生的?泄漏的原因有以下几种:(1)页面元素被删除了,但是元素绑定的事件没有被删除;(2)闭包维护了函数中的局部变量(外部不可控),不得不释放;(3)意外的全局变量;(4)删除了引用,但内存中还存在引用内的引用。从以上原因来看,内存泄漏的根本原因是引用不能正确回收,值类型不能导致内存泄漏。对于每个引用,它都有自己的引用计数。当引用计数归零或者被标记清零时,js垃圾回收器会认为引用被回收了。什么是闭包,它与原型链和作用域链的关系是什么?电脑配置无限好。可以同时打开多少个网页?65535-1024=64511ip地址可以伪造吗?http头可以被篡改,但是只能修改X_FORWARDED_FOR。真实ip地址(REMOTE_ADDR)很难修改(除非被路由器修改),因为真实ip是底层sessionip地址,并且因为TCP3次握手的存在,连接无法建立和伪造意义不大。至于UDP,内网一般使用UDP通信。100万个奖品,每人可中3个奖品,先到先得,如何控制并发,不能超时发送,保证完整的先到先得模式百万奖品预入库后被打乱,所有获胜的操作,只能更新,不能插入。进入抽奖的用户使用memcahe原子锁实现抽奖次数的自增。当开奖次数达到3次时,返回未中奖。预插入需要大量资源。如果奖品数量超过1亿怎么办?内存比较宝贵,如果不需要锁内存怎么办,而且如果遇到一个亿的奖池,预插入数据库肯定不好,怎么办?设置中奖概率,分为三张表,均使用innodb引擎。一个保存中奖记录(预先插入一行),一个保存奖金发放概况,一个保存用户的开奖状态(uin唯一索引)。在大并发的情况下,使用MySQL的独占锁进行并发控制。流程如下:开始查询用户开奖次数,加排他锁更新用户开奖次数/插入锁行查询分配状态,获取开奖结果(部分奖品后分布,概率会动态变化)更新分布表并插入中奖记录commit遇到脏怎么办?innodb的master线程在什么情况下会fork其他子线程?数据链路层的数据是如何校验的,有哪些校验方式?CRC32b+树的查询时间复杂度是多少,哈希表是什么,为什么数据库索引存储在b+树而不是哈希表,数据库索引存储还有其他数据结构吗?O(log(n)),O(1)因为散列表是散列的,所以遇到key>'12'的查找条件不工作,空间复杂度高。b+数根据层数决定时间复杂度。在数据量大的情况下,一般有4-5层,然后用二分法在页面中查找数据。时间复杂度远小于log(n)。apache如何与php通信,什么是sapi?使用sapi进行通信,sapi是php封装的对外数据传输接口,通常有四种运行模式:cgi/fastcgi/cli/apache2handler。PHP的垃圾回收机制?垃圾回收是指当php的运行状态结束时,比如exit/die/fatalerror/script运行结束,php需要回收运行过程中创建的变量和资源的内存。ZEND引擎维护了一个栈zval,每一个创建的变量和资源都会被压入这个栈中,每次压入的数组结构类似:[refcount=>int,is_ref=>0|1,value=>union,type=>string],当变量未设置时,如果ref_count变为0,就会被回收。当遇到变量循环引用自身时,使用同步回收算法进行回收。jquery的sizzleengine的工作原理http://www.cnblogs.com/xesam/...seajs的工作原理,如何解决库重复加载的问题,如何进行资源的同步加载,建立映射关系并缓存它们;resources不能真正同步加载,只是返回一个回调。memcache和redismd5逆向原理的区别先用rainbow字典查找,然后尝试暴力破解。父类方法被protected,子类重构为private,会发生什么?会出现致命错误,因为继承的方法或属性只能保持或放大权限,不能减小。例如,将protected重载为public是可行的。从输入地址回车到完整显示网页内容这段时间在网页上所做的工作越详细越好。0.浏览器本地缓存匹配;1.本地主机映射比较;2.本地dns缓存解析;3、远程dns解析获取服务器ip地址;4、浏览器发送tcp连接请求包(syn);5、请求包通过传输层、网络层、数据链路层封装,通过网卡到达路由器;6、路由器将数据包转发给运营商的服务器;7、运营商的服务器通过中继节点通过最短寻址路径到达指定的ip地址;8、服务器端可能有反向代理或者负载均衡,直接将请求转发给上游服务器。当然也可以制定安全防御规则,直接丢弃请求包;9、上游服务器收到连接请求,返回(syn+ack);10、浏览器检查ack并再次发送(syn+ack);11、服务端检查ack将连接状态切换为已建立,然后根据请求发送数据包;12.当transform-encoding分块后,浏览器开始渲染页面;13.挥手四次,关闭连接;14.渲染数据完成。keep-alive长连接机制的概念是指在keep-alive-timeout时间内,如果连接没有关闭,则不再需要三次握手再次传输数据。linux文件压缩操作命令,shell脚本等。设计一个中继服务器,转发客户A->客户B的请求。myisam和innodb有什么区别?php进程死锁的原因是什么?如何自动检查自动恢复?有类A{publicfunctionb($a,$b,$c){}};如何使用['b'=>2,'a'=>1,'c'=>3]顺利执行A::b调用赋值?php5.2->php7.1各版本的演变史,新特性等?画一个tcp三次握手图
