1、echo,print,print_r,var_dump的区别?php
(1)echo 是语言结构,无返回值.输出一个或者多个字符串. (2)print 是函数,有返回值.只能打印简单类型变量.例如:整形、字符串 (3)print_r 是函数,有返回值.能打印复杂类型变量.例如:数组、对象 (4)var_dump能打印数组、对象,而且带数据类型.
2、cookie与session的区别?若是客户端禁用了cookie功能,将会对session有什么影响?html
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,在跨页过程当中手动调用.
3、WEB开发中数据提交方式有几种?有什么区别?mysql
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.
4、常见的HTTP状态码含义?linux
HTTP状态码分类: 1** - 信息提示: 服务器收到的请求,须要请求者继续执行操做 2** - 成功: 操做被成功接收并处理 3** - 重定向: 须要进一步的操做以完成请求 4** - 客户端错误: 请求包含语法错误或者没法完成请求 5** - 服务器错误: 服务器在处理请求的过程当中发生了错误 100:(继续) 请求者继续发送请求. 101:(切换协议) 请求者已要求服务切换协议,服务器已确认准备切换. 200:(成功) 服务器已经成功处理请求. 201:(已建立) 请求成功而且服务器建立新的资源. 202:(已接受) 服务器已接受请求,但处理还没有完成. 204:(无内容) 服务器处理请求,可是没有任何内容. 300:(多种选择) 针对请求,服务器可执行多种操做. 301:(永久移动) 请求的网页已永久移到到新位置. 302: (临时移动) 服务器从不一样位置的网页响应请求,但请求者应据继续使用原有位置进行之后请求. 304:(未修改) 自从上次请求后,请求网页未修改过. 400:(错误请求) 服务器不理解请求的语法. 401:(未受权) 请求要求身份验证. 403:(禁止) 服务器拒绝请求. 404:(未找到) 服务器找不到请求的网页. 500:(服务器内部错误) 服务器遇到错误,没法完成请求. 501:(服务器没法识别) 服务器不支持当前请求所须要的某个功能. 502:(错误网关) 服务器做为网关或代理,从上游服务器收到无效响应. 503:(服务不可用) 服务器目前没法使用(因为超载和停机维护).
5、mvc是什么?相互间有什么关系?sql
mvc是一种开发模式主要分为三部分: (1)m(model)也就是模型,负责数据的操做 (2)v(view)也就是视图,负责先后台的显示 (3)c(controller)也就是控制器,负责业务逻辑 客户端请求项目的控制器,若是执行过程当中须要用到数据,控制器就会到模型中获取数据,再将获取到的数据经过视图显示出来
6、isset()和empty()区别?数据库
(1)isset判断变量是否存在,能够传入多个变量,若其中一个变量不存在则返回假. (2)empty判断变量是否为空为假,只可传一个变量,若是为空为假则返回真.
7、php经常使用的超全局变量设计模式
(1)$_GET get传送方式 (2)$_POST post传送方式 (3)$_REQUEST 能够接收到get和post两种方式的值 (4)$GLOBALS 全部的变量都放在里面 (5)$_FILE 上传文件使用 (6)$_SERVER 系统环境变量 (7)$_SESSION 会话控制的时候会用到 (8)$_COOKIE 会话控制的时候会用到
8、include,require,include_once,require_once的区别?数组
处理失败方式不一样: (1)include和include_once 失败时只产生一个警告级别错误,程序继续运行. (2)require和require_once 失败时会产生一个致命级别错误,并中止程序运行. 惟一区别: include_once/include和require_once/require区别:在于当所包含的文件代码已经存在时候,不在包含.
9、双引号和单引号的区别?浏览器
(1)双引号解释变量,单引号不解释变量 (2)双引号中的变量($var)和特殊字符(\r\n之类)会被转义,单引号中的内容不会被转义 (3)单引号执行速度快
10、如何防止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,字段用以标明请求来源于哪一个地址.