美文网首页
零碎知识整理

零碎知识整理

作者: JennyGump | 来源:发表于2017-01-04 00:23 被阅读0次

    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:

    1. Scanning (Lexing):将PHP代码转换为语言片段(Tokens)
    2. Parsing:将Tokens转换成简单而有意义的表达式
    3. Compilation:将表达式编译成Opocdes
    4. 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的时候就要维护索引。
    • 存储空间

    相关文章

      网友评论

          本文标题:零碎知识整理

          本文链接:https://www.haomeiwen.com/subject/gxfovttx.html