php常见知识(一)

一、http协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
二、DDOS攻击
分布式拒绝服务攻击
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
三、Sql注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1] 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
四、memcache的优点与缺点
优点
一.部分容灾
假设只用一台memcache,如果这台memcache服务器挂掉了,那么请求将不断的冲击数据库,这样有可能搞死数据库,从而引发”雪崩“。如果使用多台memcache服务器,由于memcache使用一致性哈希算法,万一其中一台挂掉了,部分请求还是可以在memcache中命中,为修复系统赢得一些时间。
二.容量问题
一台memcache服务器的容量毕竟有限,可以使用多台memcache服务器,增加缓存容量。
三.均衡请求
使用多台memcache服务器,可以均衡请求,避免所有请求都冲进一台memcache服务器,导致服务器挂掉。
四.利用memcache分布式特性
使用一台memcache服务器,并没有利用memcache的数据分布式特性。
缺点
1.不能持久化存储
2.存储数据有限制:1M 【大于1M,认为就行分割】(内存碎片)
3.mm存储数据只能key-value
4.集群数据没有复制和同步机制 【崩溃不会影响程序,会从数据库中取数据】
5.内存回收不能及时 LRU(算法):未使用内存》过期内存》最近最少使用内存 这是惰性删除
五、什么叫做面向对象
面对对象就是:
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
面向过程就是:
自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。程序流程在写程序时就已决定。
六、爬虫
网络爬虫是一种自动获取网页内容的程序
1.别人通过爬虫通过我的网站获取网站的数据

2.我通过爬虫去获取别人网站上的数据(使用curl获取数据,使用正则匹配,把数据保存到数据库)

七、秒杀

1.秒杀活动,一般做的很简单,大家访问的都是同样的界面,页面全部进行缓存,秒杀按钮一般等到时间到了才点亮,才生成URL,防止提前通过URL访问

2.秒杀一般请求数特别多,在秒杀开始之前,URL不开放,页面有缓存,无论用户怎么刷新,也不会给服务器造成压力

3.秒杀一旦开始,会有很多请求出现,但是一般我们只允许比如前100个有效请求,这100个请求进行订单处理,其他请求都进入缓存好的秒杀结束页面

4.实际上我们仅仅对有效请求进行处理,这里的处理办法可以对请求加入队列,当数目达到100,就不在添加,然后可以一次从队列里面提取信息,处理我们需要的结果,不会出现超标的情况

八、支付流程

1.客户在电子商务网站上选购商品,最后决定购买,买卖双方在网上达成交易意向

2.客户选择利用第三方作为交易中介,客户用信用卡将货款划到第三方账户

3.第三方支付平台将客户已经付款的消息通知商家,并要求商家在规定时间内发货

4.商家收到通知后按照订单发货

5.客户收到货物并验证后通知第三方

6.第三方将其账户上的货款划入商家账户中,交易完成

九、购物车实现

1.cookie实现

2.session实现

3.用缓存实现

4.用数据库实现

5.Cookiesession实现

Sessioncookie的区别

1.Session数据存放在服务器端上,cookie存放在客户端的浏览器上

2.Cookie不是很安全,别人可以通过本地的cookie进行cookie欺骗

3.单个cookie保存数据办呢超过4kb,很多浏览器都限制一个站点只能保存20cookie

将重要的数据存放在session,把一些其他信息保存在cookie

十、 Apache nginx 的区别

1.nginx是异步非阻塞,apache是同步阻塞

2.nginx配置简单,apache配置复杂

3.Apache占用内存,资源少

4.Nginx的读写性能大

5.Apachebugnginxbug相对比较多

十一、 Memcache 的优缺点

优点:

1.部分容灾

2.容量问题

3.均衡要求

4.利用memcache分布式特性

缺点:

1.不能持久化储存

2.存储数据有限制 1M

3.Memcache存储数据只能key-value

4.集群数据没有复制和同步机制

5.内存回收及时

十二、 Sphinx

Sphinx是一个基于SQL的全文检索引擎,可以结合MYSQLPostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,PythonPerlRuby等,同时为MYSQL也设计了一个存储引擎插件。

Sphinx是单一索引最大包含1亿条记录,在1千条记录情况下的查询速度为0.x(毫秒级)Sphinx创建索引的速度为:创建100万条的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

Sphinx的主要特性:

高速索引(在新款CPU上,近10MB/);告诉搜索(2-4的文本量中平均查询速度不到0.1);高可用性(CPU上最大可支持100GB的文本,100M文档);提供良好的相关性排名,支持分布式搜索;提供文档摘要生成;提供从MYSQL内部的插件式存储引擎上搜索,支持布尔,短语,和近义词查询;支持每个文档多个全文检索域(默认最大32);支持每个文档多属性;支持断词;支持单字节编码与UTF-8编码;

十三、 空白页面

1.服务器屏蔽错误

2.代码屏蔽错误

3.服务器宕机

4.服务器死循环

5.服务器缺少扩展

6.网络卡

十四、投票系统怎么防止刷票

1.在页面加验证码

2.在页面加一个隐藏于,页面中加入token,把token中的数据加入session中,当页面提交后,直接销毁session中的数据,当再次提交时就进行session数据对比,由于session数据被销毁,不通过不能重复提交

十五、Innodb和 myisam的区别

1.innodb不支持FULLTEXT类型的索引

2.Innodb中不保存表的具体行数,也就是说,执行select count(*) from table时,innodb要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。当count(*)语句包含where条件时,两种表的操作是一样的。

3.对于AUTO_INCREMENT类型的字段 ,innodb中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

4.DELETE FROM table是,innodb不会重新简历表,而是一行一行的删除

LOAD TABLE FROM MASTER操作对innodb是不起作用的,解决方法是首先把innodb表改成MyISAM表,导入数据后再改成innodb表,但是对于使用额外的innodb特性(例如外键)的表不适用

十六、Header头模拟传输数据

1.header设置cookie

header("Set-Cookie: cookiename=cookieValue;
expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",time()+(30)).'; 
path=/; domain=www.jb.com');
 header 设置
header('HTTP/1.0 404 Not Found');
Header("http/1.0 403 Forbidden");
修改文本编码

header("Content-Type: texthtml;charsetutf-2");  
重定向
header(“Location:http://www.126.com”);
多少秒后跳转
1.header(“Refresh:2;urlhttp://www.126.com”);  
缓存
1.//不启用缓存 多个配置 适配不同的浏览器  
2.header("Expires:-1");  
3.header("Cache-Control:no-cache");  
4.header("Pragma:no-cache");

十七、索引的优点

1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性

2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因

3.可以加速表与表之间的连接,特别是在实现数据的参考完整性方面特别有意义

4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间

5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能

十八、索引的缺点

1.索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果建立聚簇索引,那么需要的空间就会更大

2.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度

3.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加

十九、什么是CDN

CDN(内部分发网络)的本质仍然是一个缓存,而且将数据缓存在离用户最近的地方,使用户以最快速度获取数据,即所谓网络访问第一跳。

    CDN能够缓存的一般是静态资源,如图片、文件、CSSScript脚本、静态网页等,但是这些文件访问频度很高,将其缓存在CDN可极大改善网页的打开速度

猜你喜欢

转载自blog.csdn.net/lmy_1/article/details/55190207