PHP面试基础–网络

TCP的三次握手四次挥手: 三次握手(Three-way handshake)(SYN,SYN-ACK,ACK)建立连接流程: Host A 发送一个请求(SYNchronize packet)给Host B Host B 接受A的SYN,接着发送一个确同步SYNchronize-ACKnowledgement给Host A Host A 接受B的SYN-ACK同步确认,发送确认接受请求ACK Host B 接口ACK  此后tcp socket connection进入ESTABLISHED状态  四次挥手,终止连接流程: 客户端发送FIN请求终止连接,同时client进入FIN-WAIT-1状态,此时客户端仍然能够接受服务端数据,但是已经无法访问本地数据发送给服务端 Server接受客户端发送的FIN信号,同时发送一个ACK确认信号,服务端进入CLOSE-WAIT状态 客户端接受ACK,等待服务器FIN信号,此时客户端进入FIN-WAIT-2状态 服务端等待程序执行完后发送FIN信号,服务端进入LAST-ACK状态 客户端接受FIN,返回ACK确认信号,客户端进入TIME-WAIT状态 TCP和UDP的区别和应用: TCP(Transmission controll protocol)传输控制协议,是互联网最普遍的协议,他的建立需要三次握手 UDP(User datagram protocol)用户报文协议,他的联系不需要服务端等待确认信息,会一直发送传输速率比TCP要快 TCP应用web浏览器,ssh等非常普遍,UDP应用于广播,游戏等场景 OSI七层架构和TCP/IP五层架构: OSI:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层 TCP/IP:应用层,传输层,网络层,数据链路层,物理层

PHP面试基础之Array Functions

array_change_key_case:      把数组中所有键名称修改小写或大写,默认小写    2.array_chunk(array $array,int $size [, bool $preserve_keys=false])     把一个数组拆分成多个,第三个参数为true表示保留原来的键名    3.array_column(array $input,mixed $column_key [,$index_key=null)     返回数组中的单列,$column_key指返回哪列,$index_key如果设置了返回数组以其对应的值为返回数组的键    4.array_combile(array $keys,array $values)         数组结合    5.array_count_values(array $array)     计算数组内每个值的次数    6.array_diff_assoc ( array $array1 , array $array2 [, array $… ] ) 带索引计算数组的差集,返回$array1中有而$array2后面数组中没有的内容  7. array_diff_key ( array $array1 , array $array2 [, array $… ] ) 用键计算数组差集,返回一个数组,其key在$array1中存在,而在其他参数数组中不存在 8.array_diff_uassoc ( array $array1 , array $array2 [, array $… ], callable$key_compare_func ) 用用户提供的回调函数带索引计算数组的差集 9. array_diff_ukey ( array $array1 , array $array2 [, array $… ], callable$key_compare_func ) 用回调函数对键比较计算数组差集  10 array_diff ( array $array1 , array $array2 [, array $… ] ) 计算数组差集,返回在$array1中出现而在其他数组中不出现的数组,与array_diff_assoc区别在于不考虑索引 11.array array_fill_keys ( array $keys , mixed $value ) 用$keys的值作为key,$value的值作为值返回新数组,如果$value是关联数组,则全部返回作为值 12.array array_fill ( int $start_index , int $num , mixed $value ) 用$value的值填充长度为$num的数组,index从$start_index开始,如果$start_index是负数,则第一个键是$start_index,后面从0开始 13.array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) 用回调函数迭代过滤数组中的元素,如果不提供callback那么$array中值为false的都将被移除。flag默认是0表示只传递值比较,如果flag是ARRAY_FILTER_USE_KEY,那么只传递key给callback,如果是ARRAY_FILTER_USE_BOTH,那么key和value都传递