zoukankan      html  css  js  c++  java
  • 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协议一样用于处理数据包,是一种无连接的协议。

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/wensens/p/9663463.html
Copyright © 2011-2022 走看看