2017年01月04日00:20:21
- 1Byte = 8 Bit(s) ;1Bit是一位 0 / 1 sizeof(int) = 4 * 8 Bit = 2^32 长度
HTTP协议 TCPIP协议
HTTP: 四个步骤: 客户端服务器建立连接; 发出请求(传输数据URL、协议版本号);服务器响应信息;断开连接;
TCP/IP: 三次握手:建立连接时客户端向服务器发送同步序列编号,进入请求状态;服务器收到同步序列编号包,确认,向客户端发送ACK和SYN包,进入接收状态;客户端收到ACK包,想服务器发送ACK,连接成功。
mysql优化,并发
-
ajax原理
- JavaScript利用XMLHttpRequest 在不阻塞用户操作的前提下向服务器发送异步请求。
empty 、 isset
empty : NULL ,false, '', "", 0, 0.00 , '0', [] ,$var
isset : 检查变量是否已经设置值并且值不是NULL
进程与线程区别
- 进程:执行的程序,一个可以调度操作系统资源的程序,进程可以调度线程。
- 进程相互独立,同一个进程内的线程资源共享。不同进程相互独立。
- 线程死锁:同步导致,
- 线程同步:
- Muetex 互斥对象: 同时只能被一个线程占用,其他线程等待Muetex释放才可执行。
- 事件 Event :通过设置不同的状态调度线程。
- 临界区
CGI 、FASTCGI 、php-cgi、php-fpm
- CGI :
Common Gateway Interface
, 是HTTP与服务器程序交互的接口,CGI程序运行在HTTP服务器上,将收到的请求数据处理,有HTTP服务器收集输出,返回给客户端。 - FASTCGI:
Fast Common Gateway Inferface
是CGI的增强版本。为了减少CGI程序与Web服务器的互动开销,提高并发处理;不用每次都forkCGI进程。 - php-fpm: php5.3.3版本之后加入到php里的FastCGI管理器。
- php-cgi: php 自带的CGI管理器。
require 、 require_once 、 include:
- require 和 include 的功能几乎一样:除了失败时候的表现: require会报错程序终止:
E_COMPLIER_ERROR
; 但include 只发出警告:E_WARNING
. - require_once: 如果文件已被包含的时候就不在包含了,此时include 和 require会导致重定义。
SESSION与 COOKIE
- Cookie:存在于客户端里的由服务器响应来的。请求服务器的时候会带上Cookie。不可跨域;
- Session:存在于服务器中的,与客户端对应的。为了提高响应速度,web服务器会把Session存在内存里,超时时间。
各种常见排序算法
- 冒泡:相邻元素比较,将大元素往后扔,每每一次排序选出一个最大的待排元素
- 选择:每次选择一个最小或最大的元素,跟现有比较元素交换位置。
- 快排:选参考元素将待排元素分两组,递归,直至分完。
- 归并:拆分,合并,合并的时候排序。
- 插入:在已排好序的元素中选择合适的位置放置新元素。
PHP编码转换
PHP可以从代码里修改php.ini的函数:
default_time_zone_set()
ini_restore() //恢复ini配置
ini_set // 为某些配置项设置动态值
set_time_limit //设置脚本最长执行时间
# ini_set 常见配置
ini_set(’memory_limit’, ‘16M‘); // 指定脚本运行的时候所允许分配的最大内存
ini_set('error_reporting' , E_ALL & ~E_NOTICE); //显示执行错误的级别
ini_set('display_errors', ‘1’) //是否打印错误到屏幕
ini_set('error_log' , '/var/log/xx.log') //记录脚本执行错误的日志存储
PHP什么时候区分大小写
-
常用设计模式的PHP实现
- 单例
- 工厂
- 命令
-
mysql数据库有哪些引擎,为什么你的产品选用这个引擎?
- INNODB
- ISAM
- MYSQL ISAM
-
c语言中 int number=1;和PHP中$number=1;在各个方面有什么区别
- c: 分配4字节给number在内存中的存储位置,这块内存地址指向的值为1.
- 由PHP解释器分配内存空间,实例化一个zval结构体,1存储在zval结构体中的zvalue联合体成员中。
Zend虚拟机执行PHP代码的过程:
描述1:
- Scanning (Lexing):将PHP代码转换为语言片段(Tokens)
- Parsing:将Tokens转换成简单而有意义的表达式
- Compilation:将表达式编译成Opocdes
- Execution:顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
描述2:
- 首先,Zend Engine(Zend引擎),调用词法分析器(Lex生成的,源文件在 Zend/zend_language_sanner.l), 将我们要执行的PHP源文件,去掉空格 ,注释,分割成一个一个的token。
- 然后,Zend引擎会将得到的token forward给语法分析器(yacc生成, 源文件在 Zend/zend_language_parser.y),生成一个一个的op code,opcode一般会以op array的形式存在,它是PHP执行的中间语言。
- 最后,Zend引擎调用zend_executor来执行op array,输出结果。
post和get
索引是不是越多越好
- insert、update、delete的时候就要维护索引。
- 存储空间