SAPI

1、SAPI是什么?查看下自己本地PHP的环境,用的是什么SAPI,有什么特点呢? 
 SAPI:Server Application Programming Interface 服务器端应用编程端口。 
 粗俗的理解,sapi是服务器规定的编程接口规范,它不会依赖于所选用的语言是什么。 
 SAPI提供了一个和外部通信的接口, 对于PHP5.2,默认提供了很多种SAPI, 常见的给apache的mod_php5,CGI,给IIS的ISAPI,还有Shell的CLI。 


 在phpinfo可以查看sapi模块 
  
 应该有更多的模块吧,比如Apache 2.0 Handler,phttpd 
  


  
2、常见的网络I/O模型有哪些?你目前公司PHP的运行环境是采用哪一种?这个模型有什么特点? 


 阻塞I/O模型,特点,用户进程会等待内核处理成功之后才把控制权在返回给用户进程,继续向下执行 
  
 非阻塞I/O模型,用户进程向内核申请处理,但是没有成功,就把控制权立刻返回给用户进程,但是因为没有 
 成功,需要用户这里进程这里定时循环去时时的申请内核处理,等某一个申请到内核处理成功就返回给用户进程 
 继续处理。 
  
 I/O复用模型,粗俗理解,就是有多个用户进程调用内核处理某件相同的事情,内核不会做多次,充分的请求,如在处理的过程中不论时候还是成功, 
 内核会同时通知多个用户线程,处理的结果是什么。 
  
 信号驱动I/O模型 
  
 异步I/O模型,内核处理成功之后再通知用户进程可以继续处理。 
  
  
3、查看目前自己正在开发的系统,看登录是采用什么方式实现的?是cookie还是session,如果是session,试着禁用浏览器的cookie ,看看是否能登录成功? 
 是基于cookie的,禁用之后就不能登录了. 
 解决方案:php.ini中的session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项 
 当客户端的Cookie被禁用或出现问题时,PHP会自动把session id附着在URL中,这样再通过session id就能跨页使用session变量了

你可能感兴趣的:(SAPI)