• php相关笔试题-(持续更新)


    1.如果系统做了负载均衡(或者代理),服务端如何准确得获取用户端的IP?

    答:在负载均衡服务器软件
    (nginx,apache,tomcat)添加X-Forwarded-For,简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。

    相关网站:https://blog.csdn.net/ai_zxc/article/details/78891019

    2.如何实现精准的定时任务?

    答:在Crontab中使用PHP执行脚本(或URL),其实方法很多,不过这个应该是比较好的。

    相关网站:https://www.jb51.net/article/89186.htm

    3.mysql中,如何判断一个字段是否创建索引?

    答:show index from 数据库名.表名

    4.mysql中,如何判断一个字段是否需要创建索引?

    答:较频繁地作为查询条件的字段

    相关网站:https://www.jb51.net/article/56532.htm

    5.常见的web漏洞,并说明出现的原因和解决方案?

    答:SQL注入漏洞、XSS、CSRF、上传漏洞、未加密登录请求 等等

    相关网站:https://blog.csdn.net/qq_28061489/article/details/79572310,https://wenku.baidu.com/view/dbb0991afbd6195f312b3169a45177232f60e41c.html,https://blog.csdn.net/u013777676/article/details/52124298/

    6.php中namespace的作用?

    答:解决用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    相关网站:官网:http://php.net/manual/zh/language.namespaces.rationale.php,https://www.cnblogs.com/kuyuecs/p/3556421.html

    7.列出redis支持的数据类型?

    答:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

     相关网站:http://www.runoob.com/redis/redis-data-types.html

    8.列出php中类的自动加载相关的函数名?

    答: __autoload() 和 spl_autoload_register()

    相关网站:官网:http://php.net/manual/zh/language.oop5.autoload.php

    9.统计一个字符串在另一个字符串出现的次数?

    答:

    substr_count($haystack, $needle [,$offset [,$length]])

    其中参数:
    $haystack表示母字符串,$needl表示要查找的字符

    $offset表示查找的起点,$length表示查找的长度,均为可选参数

    相关网站:https://www.jb51.net/article/58015.htm

    10.列出HTTP状态码,并简述意思,重小到大

    答:1xx 消息;2xx 成功;3xx 重定向;4xx 请求错误;5xx服务器错误;(要注意下499,nginx的错误,可能是时间超时,内存溢出)

    相关网站:http://www.runoob.com/http/http-status-codes.html,https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin

    11.如果后端有多台服务器,如何处理session?

    答:

    第一种办法:把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去(加密后后存在cookie中,前端不开cookie就悲剧了)。

    第二种办法:同一个用户的访问请求都被派送到同一个服务器上(某台机子挂掉了,就不行了)。

    第三种办法:做一个中间层,专门来存储所有访问涉及到的session。也就是所有的session都存储在这里。服务器端统一从这里读取session数据。(可以保存在共享的文件服务器中、数据库中(nosql为好))

    相关网站:https://www.cnblogs.com/wangtao_20/archive/2013/10/29/3395518.html

    12.git的常用命令?

    答:

    git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

    git checkout -b dev 建立一个新的本地分支dev

    git branch 查看本地所有分支

    git status 查看当前状态 

    git pull 拉取

    git commit 提交 

    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。

    git log 看你commit的日志

    git add . 添加所有修改文件

    git commit -m ‘修改内容’  提交添加文件,并备注提交版本

    git diff  查看修改文件列表

    相关网站:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html,https://blog.csdn.net/halaoda/article/details/78661334

    13.用php代码去除HTML标签方法?

    答:strtr()和strip_tags()

    14.php的运行方式有哪些?

    答:

    1)CGI(通用网关接口/ Common Gateway Interface)。

    2)FastCGI(常驻型CGI / Long-Live CGI)。

    3)CLI(命令行运行 / Command Line Interface)。

    4)Web模块模式(Apache、nginx、iis等Web服务器运行的模式) ,最常用的运行方式啦。

    5)ISAPI(Internet Server Application Program Interface)微软提供的一套面向Internet服务的API接口。

    相关网站:https://blog.csdn.net/xujingzhong0077/article/details/53316767,https://blog.csdn.net/s465564/article/details/77224627

    15.php连接数据库的方式?

    答:1)常用普通方法,mysql_connect()【 PHP 5.5.0 起已废弃】;2)面向对象方法(也可面向过程)mysqli();3)PDO;3)ADODB

    参考网站:https://blog.csdn.net/wd2011063437/article/details/79003477,https://www.cnblogs.com/joshua317/articles/5989781.html

    16.简述MySQL的InnoDB的四种事务隔离级别?

    答:

    1、读不提交(Read Uncommited,RU)

      这种隔离级别下,事务间完全不隔离,会产生脏读,可以读取未提交的记录,实际情况下不会使用。

    2、读提交(Read commited,RC)

      本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果(不重复读)

    3、可重复读(Repeatable Read,RR)【MySQL 默认的级别】

      在同一个事务里,SELECT的结果是事务开始时时间点的状态,因此,同一个事务同样的SELECT操作读到的结果会是一致的。但是,会有幻读现象

    4、 串行化(SERIALIZABLE)。读操作会隐式获取共享锁,可以保证不同事务间的互斥

    参考网站:https://www.cnblogs.com/huanongying/p/7021555.html

    17.如何参看当前的mysql的事务隔离级别?

    答:mysql> show variables like '%isolation%';

    18.oop是什么?特点有哪些?

    答:oop是面向对象编程。封装、多态、继承、易维护 。

    19.接口安全方面是怎么处理的?

    答:RSA双向加密,验证参数后才执行。添加时间戳,处理的时候判断时间,一般60秒,前端的请求加上时间戳,后台将时间戳解密后与后台的服务器作比较,时间差距超过60秒就不处理。

    20.接口和抽象类的区别是什么?

    答:

    接口:是通过关键字 interface 来声明的,接口中的成员常量和方法都是 public 的,方法可以不写关键字public,接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。 

    抽象类:是通过关键字abstract来声明的,是一种不能被实例化的类,只能作为其他类的父类来使用。抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法,抽象方法没有方法体,该方法天生就是要被子类重写的。

    区别:抽象类和接口实现的功能十分相似,在应用中选择抽象类还是接口要看具体实现。 

    1).对接口的继承使用implements,抽象类使用extends.

    2).接口中不可以声明变量,但可以声明类常量.抽象类中可以声明各种变量

    3).接口没有构造函数,抽象类可以有

    4).接口中的方法默认为public,抽象类中的方法可以用public,protected,private修饰

    5).一个类可以继承多个接口,但只能继承一个抽象类

    参考网站:https://www.cnblogs.com/catcrazy/p/6289446.html

    21.tcp/ip是什么?

     答:TCP(传输控制协议)和IP(网际协议),是两个协议,但是通常会合在一起说,因为他们要在一起才能形成现有的或联网底层。

    22.udp是什么?

    答:UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

  • 相关阅读:
    Leecode刷题之旅-C语言/python-67二进制求和
    maven 聚合
    maven 继承
    maven 常用命令
    maven 术语
    maven安装
    RabbitMQ 消费消息
    RabbitMQ 生产消息并放入队列
    RabbitMQ 在 web 页面 创建 exchange, queue, routing key
    mybatis 通过实体类进行查询
  • 原文地址:https://www.cnblogs.com/wensens/p/9663463.html
Copyright © 2020-2023  润新知