第一次面试php开发,没做好准备,虽然面试问的问题都很基础,但是答的不好。重新梳理面试问题和答案,再接再厉!
面试问题
- PHP是什么
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP 是一种易于学习和使用的开源的服务器端脚本语言,主要应用于web,用PHP编写的大型网站有baidu/taobao/Yahoo/163/Sina等,是用范围广,安全(开源),稳定可靠,开发周期短,执行效率高。
-
HTTP中GET与POST的区别
-
GET在浏览器回退时是无害的,而POST会再次提交请求。
-
GET产生的URL地址可以被Bookmark,而POST不可以。
-
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
-
GET请求只能进行url编码,而POST支持多种编码方式。
-
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
-
GET请求在URL中传送的参数是有长度限制的,而POST没有。
-
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
-
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
-
GET参数通过URL传递,POST放在Request body中。
-
GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
-
get的效率更高!!!
-
COOKIE和SESSION的区别,什么时候用SESSION
- COOKIE保存在客户端,而SESSION则保存在服务器端
- 从安全性来讲,SESSION的安全性更高
- 从保存内容的类型的角度来讲,COOKIE只保存字符串(及能够自动转换成字符串)
- 从保存内容的大小来看,COOKIE保存的内容是有限的,比较小,而SESSION基本上没有这个限制
- 从性能的角度来讲,用SESSION的话,对服务器的压力会更大一些
- SEEION依赖于COOKIE,但如果禁用COOKIE,也可以通过url传递
例子:使用Session记录用户信息
- 设计/优化访问量大的网站
- 减少http请求(比如使用雪碧图)
- 优化数据库(范式、SQL语句、索引、配置、读写分离)
- 缓存使用(Memcache、Redis)
- 负载均衡
- 动态内容静态化+CDN
- 禁止外部盗链(refer、图片添加水印)
- 控制大文件下载
- 使用集群
- 数据库优化的方法
- 合理的设计表结构、表索引
- 不在数据库中做运算
- 控制单表数据量
- 数据量过大进行读写分离,使用INNODB存储引擎
- 不再数据表中存储图片
- 之后聊了为什么选PHP,职业规划,简历项目负责的内容,平时怎么学习和解决问题(官方文档Google,论坛博客,交流),浏览的网站(Stack Overflow,csdn,github),以及怎么评价自己。