一、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.用Cookie和session实现
Session和cookie的区别
1.Session数据存放在服务器端上,cookie存放在客户端的浏览器上
2.Cookie不是很安全,别人可以通过本地的cookie进行cookie欺骗
3.单个cookie保存数据办呢超过4kb,很多浏览器都限制一个站点只能保存20个cookie
将重要的数据存放在session,把一些其他信息保存在cookie里
十、 Apache 和 nginx 的区别
1.nginx是异步非阻塞,apache是同步阻塞
2.nginx配置简单,apache配置复杂
3.Apache占用内存,资源少
4.Nginx的读写性能大
5.Apache少bug,nginx的bug相对比较多
十一、 Memcache 的优缺点
优点:
1.部分容灾
2.容量问题
3.均衡要求
4.利用memcache分布式特性
缺点:
1.不能持久化储存
2.存储数据有限制 1M
3.Memcache存储数据只能key-value
4.集群数据没有复制和同步机制
5.内存回收及时
十二、 Sphinx
Sphinx是一个基于SQL的全文检索引擎,可以结合MYSQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为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;charset=utf-2");
重定向
header(“Location:http://www.126.com”);
多少秒后跳转
1.header(“Refresh:2;url=http://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.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
十九、什么是CDNCDN(内部分发网络)的本质仍然是一个缓存,而且将数据缓存在离用户最近的地方,使用户以最快速度获取数据,即所谓网络访问第一跳。
CDN能够缓存的一般是静态资源,如图片、文件、CSS、Script脚本、静态网页等,但是这些文件访问频度很高,将其缓存在CDN可极大改善网页的打开速度