zoukankan      html  css  js  c++  java
  • php基础面试题

    一、echo,print,print_r,var_dump的区别?

    (1)echo    是语言结构,无返回值.输出一个或者多个字符串.
    (2)print   是函数,有返回值.只能打印简单类型变量.例如:整形、字符串
    (3)print_r 是函数,有返回值.能打印复杂类型变量.例如:数组、对象
    (4)var_dump能打印数组、对象,并且带数据类型.

    二、cookie与session的区别?如果客户端禁用了cookie功能,将会对session有什么影响?

    cookie和session的区别:
    (1)cookie数据存放在客户端的浏览器上. session数据放在服务器上.
    (2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗. 考虑到安全应当使用session.
    (3)session会在一定时间内保存在服务器上.当访问增多,会比较占用服务器的性能. 考虑到减轻服务器性能方面应当使用cookie.
    (4)单个cookie数据大小限制是3K,很多浏览器都限制一个站点最多保存20个cookie. session是没有大小限制和服务器的内存大小有关.
    (5)一般将登陆信息等重要信息存放在session.  其他信息存放在cookie
    
    禁用Cookie就不能得到Session.
    产生原因:Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session.
    
    假定用户关闭禁用Cookie,如何正常使用Session?
    (1)设置php.ini配置文件中的“session.use_trans_sid = 1”,或者编译时打开打开了“--enable-trans-sid”选项,让PHP自动跨页传递Session ID.
    (2)手动通过URL传值、隐藏表单传递Session ID.
    (3)用文件、数据库等形式保存Session ID,在跨页过程中手动调用.

    三、WEB开发中数据提交方式有几种?有什么区别?

    get与post两种方式
    区别:
    (1)get从服务器获取数据,post向服务器传送数据.
    (2)get传值在url中可见,post在url中不可见.
    (3)get传值一般在2KB以内,post传值大小可以在php.ini中进行设置.
    (4)get安全性非低,post安全性较高,get执行效率却比post高.
    
    建议:
    (1)get安全性较post要差包含机密信息,建议用post数据提交式.
    (2)做数据查询建议用get. 做数据添加、修改或删除建议用post.

    四、常见的HTTP状态码含义?

    HTTP状态码分类:
    1** - 信息提示: 服务器收到的请求,需要请求者继续执行操作
    2** - 成功: 操作被成功接收并处理
    3** - 重定向: 需要进一步的操作以完成请求
    4** - 客户端错误: 请求包含语法错误或者无法完成请求
    5** - 服务器错误: 服务器在处理请求的过程中发生了错误
    
    100:(继续) 请求者继续发送请求.
    101:(切换协议) 请求者已要求服务切换协议,服务器已确认准备切换.
    
    200:(成功) 服务器已经成功处理请求.
    201:(已创建) 请求成功并且服务器创建新的资源.
    202:(已接受) 服务器已接受请求,但处理尚未完成. 
    204:(无内容) 服务器处理请求,但是没有任何内容.
    
    300:(多种选择) 针对请求,服务器可执行多种操作. 
    301:(永久移动) 请求的网页已永久移到到新位置.
    302: (临时移动) 服务器从不同位置的网页响应请求,但请求者应据继续使用原有位置进行以后请求.
    304:(未修改) 自从上次请求后,请求网页未修改过.
    
    400:(错误请求) 服务器不理解请求的语法.
    401:(未授权) 请求要求身份验证.
    403:(禁止) 服务器拒绝请求.
    404:(未找到) 服务器找不到请求的网页.
    
    500:(服务器内部错误) 服务器遇到错误,无法完成请求.
    501:(服务器无法识别) 服务器不支持当前请求所需要的某个功能.
    502:(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应.
    503:(服务不可用) 服务器目前无法使用(由于超载和停机维护).

     五、mvc是什么?相互间有什么关系?

     mvc是一种开发模式主要分为三部分:
     (1)m(model)也就是模型,负责数据的操作
     (2)v(view)也就是视图,负责前后台的显示
     (3)c(controller)也就是控制器,负责业务逻辑
    
    客户端请求项目的控制器,如果执行过程中需要用到数据,控制器就会到模型中获取数据,再将获取到的数据通过视图显示出来

    六、isset()和empty()区别?

    (1)isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假.
    (2)empty判断变量是否为空为假,只可传一个变量,如果为空为假则返回真.

    七、php常用的超全局变量

    (1)$_GET     get传送方式
    (2)$_POST    post传送方式
    (3)$_REQUEST 可以接收到get和post两种方式的值
    (4)$GLOBALS  所有的变量都放在里面
    (5)$_FILE    上传文件使用
    (6)$_SERVER  系统环境变量
    (7)$_SESSION 会话控制的时候会用到
    (8)$_COOKIE  会话控制的时候会用到

     八、include,require,include_once,require_once的区别?

    处理失败方式不同:
    (1)include和include_once 失败时只产生一个警告级别错误,程序继续运行.
    (2)require和require_once 失败时会产生一个致命级别错误,并停止程序运行.
    唯一区别:
    include_once/include和require_once/require区别:在于当所包含的文件代码已经存在时候,不在包含.

    九、双引号和单引号的区别?

    (1)双引号解释变量,单引号不解释变量
    (2)双引号中的变量($var)和特殊字符(
    之类)会被转义,单引号中的内容不会被转义
    (3)单引号执行速度快

    十、如何防止SQL注入,XSS攻击和CSRF攻击?

    (1)SQL注入:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.
       防范:1.一些sql语句进行过滤,比如delete update insert select * ;2.使用PDO占位符进行转义。
    
    (2)XSS跨站脚本攻击:是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行.达到攻击的目的.
      (例如:攻击者一般通过script标签对网站注入一些可执行的代码)
      防范:1.消毒(对危险字符进行转义); 2.Http唯一(防范XSS攻击者窃取Cookie数据)
    
    (3)CSRF跨站请求伪造:是一种对网站的恶意利用.
      防范:1.在表单中添加令牌(token);  2.验证码; 3.检查请求头中的Referer,字段用以标明请求来源于哪个地址.

    php面向对象基础知识 点击查看

    php常见五种设计模式 点击查看

    mysql基础知识语法汇总整理

    Linux 命令大全(菜鸟教程)

  • 相关阅读:
    day12 Python操作rabbitmq及pymsql
    day11 队列、线程、进程、协程及Python使用缓存(redis/memcache)
    day10 Python作用域 Python2.7与Python3.x的类继承的区别、异步IO、多进程,多线程简介
    day09 Python socket编程
    day08 面向对象补充及单例模式
    day07 configparser xml subprocess 面向对象
    day06 Python的一些内建变量、反射、hashlib模块、re模块、os模块、sys模块
    day05 Python多层装饰器、模块、序列化、字符串格式化、生成器和迭代器、递归、time、datetime模块、logging模块
    day04 Python一些内置函数及装饰器
    查看旧版jexus命令
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/9443449.html
Copyright © 2011-2022 走看看