一、程序设计

1、设计功能系统——数据表设计、数据表创建语句、连接数据库的方式、编码能力

二、框架基础知识

1、MVC框架基本原理——原理、常见框架、单一入口的工作原理、模板引擎的理解

2、常见框架的特性——PHP框架的差异和优缺点

三、算法与数据结构

1、常见算法——算法的概念、时间复杂度和空间复杂度、常见排序算法、常见查找算法

2、常见数据结构——数组、链表、栈、队列、树、集合、字典、图

3、逻辑思维能力

4、对PHP内置函数熟悉的程度、字符串和数组的处理能力

四、高并发解决方案

1、高并发和大流量解决方案

(1)高并发架构相关概念

高并发:QPS—每秒响应请求数(指HTTP请求);吞吐量—单位时间内处理的请求数量;响应时间—从请求发出到收到响应花费的时间;PV—综合浏览量,即页面浏览量或 点击量;UV—独立访客,即一定时间范围内多次访问网站的相同访客计算为1个独立访客;带宽—峰值流量和页面的平均大小;日网站带宽=PV/统计时间(秒)*平均页面大小 (kb)*8;压力测试—测试能承受的最大并发,测试最大承受的QPS值

(2)高并发解决方案案例

流量优化:防盗链的处理

    前端优化:减少HTTP请求;添加异步请求;启用浏览器缓存和文件压缩;CDN加速;建立独立图片服务器

    服务端优化:页面静态化;并发处理;队列处理

    数据库优化:数据库缓存;分库分表、分区操作;读写分离;负载均衡

    web服务器优化:负载均衡

2、web资源防盗链——防盗链:防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效;实现方法:Referer、加密签名

3、减少HTTP请求——原因、方式:图片地图、CSS精灵、合并多个脚本、图片Base64编码

4、浏览器缓存和压缩优化技术——HTTP缓存机制、Naginx配置缓存策略、前端代码和资源的压缩

JavaScript代码压缩工具:UglifyJS、YUI Compressor、Closure Complier

图片压缩工具:tinypng、JpegMini、ImageOptim

5、CDN加速

CDN:内容分发网络——本地Cache加速、跨运营商的网络加速、远程访问用户智能选择服务器

工作原理——适用场景——CDN的实现

6、独立图片服务器的部署

独立的必要性—采用独立域名—独立后的问题

7、动态语言静态化

什么是动态语言静态化——为什么要静态化——静态化的实现方式

8、动态语言的并发处理

什么是进程、线程、协程——什么是多进程、多线程——同步阻塞模型——异步非阻塞模型——PHP并发编程实践

9、数据库缓存

什么是数据库缓存—为什么要使用缓存—使用MySQL查询缓存—使用Memcache缓存—使用Redis缓存

10、MySQL数据库的优化

优化方向——优化方案

11、Web服务器的负载均衡

七层负载均衡的实现—四层负载均衡的实现

PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类的更多相关文章

  1. 解读PHP面试-高并发解决方案类考察点

    整理自慕课网360大牛全面解读PHP面试 ,购买链接:https://coding.imooc.com/class/133.html 1.高并发和大流量解决方法 真题回顾 PHP如何解决高并发大流量问 ...

  2. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  3. DDD框架基础知识

    DDD框架基础知识 参考: https://www.cnblogs.com/zhili/p/OnlineStorewithDDD.html(领域驱动设计,分层架构) https://www.cnblo ...

  4. 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号

    算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好, ...

  5. 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法

    算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...

  6. 【Java面试】1、基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...

  7. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  8. 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...

  9. 4-1 Spring框架基础知识

    Spring框架基础知识 1.Spring 框架作用 主要解决了创建对象和管理对象的问题. 自动装配机制 2.Spring 框架 (Spring容器,JavaBean容器,Bean容器,Spring容 ...

随机推荐

  1. WebService学习总结(一)——WebService的相关概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  2. B1016. 部分A+B

    正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6. 现给定A.DA.B.DB,请编 ...

  3. MyQR库自动为网址生成二维码

    首先安装MyQR库: pip install MyQR #导包 from MyQR import myqr #生成二维码 words=你要为那个网址生成二维码 save_name=保存后的图片名 pi ...

  4. css之文本两端对齐

    在进行网页设计时,我们经常会看到这样的样式:文本两端对齐. css为我们提供了一个属性可以实现这样的效果:text-align: justify.不过这个只能用来设置多行文本(除最后一行).如果只有单 ...

  5. 编写一个数组工具类, 编写本软件的 帮助文档(API文档)

    本文档是对静态成员的练习. 一. 建立一个ArrayTool(数组工具)的类,在此类中对传入数组进行一些操作(选最大值.先最小值.冒泡排正序.选择排反序.输出数组元素), 二. 建立一个Test的类, ...

  6. python学习笔记-Day2 Numpy数组

    1. 实现两个数组相加,在数据量特别大的时候 产生数组: (1)  从列表产生数组:a=[0,1,2,3] a=np.array(1) a (2)  从列表传入 a=np.array([1,2,3,4 ...

  7. Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法

    Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法 在使用struts2的项目中上传文件的时候出现了一个这样的错误: 2011-7 ...

  8. (find) nyoj5-Binary String Matching

    5-Binary String Matching 内存限制:64MB 时间限制:3000ms 特判: No通过数:232 提交数:458 难度:3 题目描述: Given two strings A ...

  9. PHP-FIG - PHP 标准规范

    转自:https://psr.phphub.org/ PHP 标准规范 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 ...

  10. Zookeeper 集群安装配置

    今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...