PHP常见的面试题(2)

PHP常见的面试题(2)

1、Mysql中int1和int10 有什么区别?

INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
INT(1) 和 INT(10)本身没有区别,但是加上(M)值后,会有显示宽度的设置。

2、varvhar20能存多少汉字?

首先要确定mysql版本
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个

其实最好的办法是在自己数据库中建个表试试可以放多少汉字,现在mysql都5.0已上了,varchar(20)是可以存20个汉字的

3、负载均衡和反向代理的区别

反向代理是实现负载均衡的一种方法。
先谈反向代理。用户在请求时,先把请求发送给代理的服务器,然后由代理服务器根据算法去请求真实的服务器,最后返回给用户。这种做法,其一是提高了安全性;其二是通过多台的real server分担了用户的请求,实现了负载均衡。
再谈负载均衡。负载均衡的出现,是通过横向的扩展,尽可能地降低单台服务器的压力。常见WEB层面的负载均衡的方案有硬件F5、Nginx代理、LVS、各个云商的负载均衡服务(如AWS的ELB服务)等。负载均衡后面连的一般是实际提供服务的服务器,如通过ELB服务,可以做到流量的均匀分担,从而减少单机服务器的压力。
由于增加了负载均衡这层,所以单纯地使用某个方案还是要考虑单点的问题。负责由于负载均衡这个服务器未能承受住压力,宕机了,服务也是不可用的。所以Nginx、LVS尽量配置多台代理,可以故障转移和故障报警,从而及时去处理代理层服务器的问题。ELB是亚马逊提供的服务,它本身的实现底层就有数百甚至上千的机器,所以把它想象成一个代理集群就好。


4、聚簇索引和非聚簇索引

1、聚簇索引
a) 一个索引项直接对应实际数据记录的存储页,可谓“直达”
b) 主键缺省使用它
c) 索引项的排序和数据行的存储排序完全一致,利用这一点,想修改数据的存储顺序,可以通过改变主键的方法(撤销原有主键,另找也能满足主键要求的一个字段或一组字段,重建主键)
d) 一个表只能有一个聚簇索引(理由:数据一旦存储,顺序只能有一种)

2、非聚簇索引
a) 不能“直达”,可能链式地访问多级页表后,才能定位到数据页
b) 一个表可以有多个非聚簇索引

5.正则贪婪匹配与非贪婪匹配的区别?

    贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配

6.常见的web攻击有哪些?什么是Xss攻击csrf ?如何防止sql注入?如何防止xss攻击?

Xss攻击是跨站脚本工具
Csrf攻击是跨站请求伪造
如何防止sql注入:1执行sql语句是使用addslashes进行sql语句转换
                 2 sql语句书写尽量不要省略双引号和单引号
                 3 过滤掉sql语句里的关键词 :update insert delete select *
                 4 PHP配置文件中设置register_global为off,关闭全局变量注册
                 5 控制错误信息 不要把错误信息输出到浏览器上 应保存在错误日志里

7.怎么实现第三方登录:

oAuth基本原理
接入QQ登录前置条件
申请AppID 和Appkey
登录QQ互联申请网站应用或移动应用接入
按照步骤申请成功后,创建应用即可看到对应的AppId和AppKey

8.说一下TCP  / UDP 协议

TCP 传输控制协议,是一个面向连接的协议
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议,是一个非连接的协议。
UDP和TCP都属于传输层协议
http基于tcp协议

9.什么是分布式  (分布式集群 分布式事物 分布式缓存)

分布式(集群)与集群的联系与区别?
    分布式是指将不同的业务分布在不同的地方。?而集群指的是将几台服务器集中在一起,实现同一业务。?
    分布式中的每一个节点,都可以做集群。?而集群并不一定就是分布式的。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。?
    分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。(分布式事物 分布式缓存 没有明确答案,可自行百度 )

10.http1.0 与 http1.1  区别?

HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处    理
HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。


11. http协议基于什么?oAuth协议?


一.http
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。基于tcp协议。

二.OAuth
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
OAUTH 协议旨在为用户资源的授权访问提供一个安全,开放的标准。平台商通过OAUTH协议,提示用户对第三方软件厂商(ISV)进进行授权。

特点:
1)简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与用;
2)安全:没有涉及到用户密钥等信息,更安全更灵活;
3)开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值