你好,是我琉忆。
本篇是本周(2019.2-25至3-1)的最后一篇文章。
以前的文章能够关注个人“PHP面试”专栏获取,或者关注个人公众号“琉忆编程库”查看历史获取。php
我正在segmentfault社区送两本书: 《PHP程序员面试笔试真题解析》 ,今晚(3月1日)19点开奖,欢迎参与。
明天就是周末了,提早祝各位周末愉快。html
面试时如何给本身添金?没接触过支付功能?为此特地准备了一篇“ 新手零基础对接境外支付paypal”的文章,为你面试添金,关注公众号:“ 琉忆编程库”,回复:“ pay”,我发给你。
如下正文的内容来自《PHP程序员面试笔试真题解析》书籍,若是转载请保留出处:程序员
答案:可使用Session和Cookie记住用户,监控是否同一个用户在操做。使用Session前须要在页面使用session_start()开启Session。而后使用$_SESSION来存储Session变量。
使用Cookie时,需使用set_cookie()设置Cookie,而后使用$_COOKIE取Cookie值。面试
答案:HTTP的Keep-Alive做用以下:Keep-Alive使客户端到服务器端的链接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了创建或者从新创建链接。Web服务器基本上都支持HTTP Keep-Alive。
缺点:对于提供静态内容的网站来讲,这个功能一般颇有用。可是,对于负担较重的网站来讲,虽然为客户保留打开的链接有必定的好处,但它一样影响了性能,由于在暂停使用的期间,原本能够释放的资源仍旧被占用。因此当Web服务器和应用服务器在同一台机器上运行时,Keep-Alive功能对资源利用的影响尤为突出。
解决:Keep-Alive:timeout=5,max=100算法
timeout:过时时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是最多请求一百次,强制断掉链接。在timeout时间内又有新的链接过来时,max会自动减1,直到为0,强制断掉。
答案:先经过fopen()函数打开要下载的图片路径,而后使用fread()函数读取图片,再在本地打开指定存储图片的目录,将读取到的图片信息写入到该目录内的文件中,便可远程下载一个图片到本地。实现代码以下:数据库
<?php $file="http://static.nipic.com/images/originalNewtip.png"; $fp=fopen($file,'rb'); $img=fread($fp,100000); $dir="./"; $local=fopen($dir.'/'.basename($file),'w'); fwrite($local,$img); ?>
答案:HTTP定义了与服务器交互的不一样的方法,最基本的方法是POST、GET、PUT和DELETE,URL全称是资源描述符,能够认为一个URL地址用于描述一个网络上的资源,而对应的HTTP中的四种方法GET、POST、PUT、DELETE对应这个资源的查,改,增,删四个操做。它们的具体功能为:
(1)根据HTTP规范,GET用于信息获取,信息应该是安全的;
(2)根据HTTP规范,POST表示能够修改服务器上的资源的请求;
(3)PUT和POST极为类似,都是向服务器发送数据,但它们之间有一个重要区别,PUT一般指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器决定;
(4)DELETE的功能是删除某一个资源。编程
答案:HTTP下的gzip是一种流行的文件压缩算法,在Linux平台上使用十分普遍,gzip压缩传输能更加有效节约带宽流量。它先把文本压缩为.gz而后传输给浏览器,最后由浏览器负责解压缩呈现给用户,能够下降网络传输的字节数,加快网页的加载速度。segmentfault
面试时如何给本身添金?没接触过支付功能?为此特地准备了一篇“ 新手零基础对接境外支付paypal”的文章,为你面试添金,关注公众号:“ 琉忆编程库”,回复:“ pay”,我发给你。
答案:304状态的意思是当客户端向服务端请求时,服务端告诉客户端缓存的文档没有过时能够继续使用。
能够经过如下方法做浏览器缓存:
(1)当用户首次请求该文件的时候,经过HTTP HEAD的Last-Modified字段将该文件的最后修改日期发送到客户端,让客户端知道该文件的版本,例如:
Last-Modified: Tue, 08 Apr 2008 14:48:05 GMT
(2)在浏览器再次请求该文件的时候,会自动将该时间做为请求的HTTP HEAD的If-Modified-Since字段内容,例如:
If-Modified-Since: Tue, 08 Apr 2008 14:48:05 GMT
(3)服务端根据If-Modified-Since字段的内容(若是存在该字段)来判断客户端的文件是否已通过期,若是已通过期,那么从新返回新的文件,若是没有,那么只须要返回304状态码,就可结束输出,这样表明浏览器端的文件版本是最新的,不须要返回文件内容。浏览器
答案:IP地址是能够伪造的,客户端能够伪造IP地址或使用代理IP致使IP地址不是用户的真实IP地址。
REMOTE_ADDR表明客户端的IP地址,HTTP_X_FORWARDED_FOR是代理服务器的IP地址,存放真实的IP和各级代理IP。实现代码以下:缓存
<?php function getIP(){ $unknown = 'unknown'; if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])&&$_SERVER['HTTP_X_FORWARDED_FOR']&&strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'],$unknown)){ $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; }elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],$unknown)){ $IP = $_SERVER['REMOTE_ADDR']; } if (false !== strpos($IP,',')) $IP = reset(explode(',',$IP)); return $IP; } ?>
参考答案:客户端在受权头信息中没有有效的身份信息时访问受到密码保护的页面;header("HTTP/1.0 404 Not Found");。
A.若是本地开启了Cookie,那么每打开一个网址,HTTP请求就会把相应的Cookie传给Web服务器
B.HTTP响应的状态码为301,意思是暂时地把内容转移到一个新的URL,可是老的URL尚未废除
C.HTTP是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发都是基于HTTP协议
D.绝大多数的Web开发离不开Cookie,若是禁用Cookie致使Session失效,那么能够经过URL来传递sessionID
参考答案:B。
分析:301表示请求的网页已被永久移动到新位置而不是暂时转移内容到新的URL。因此,选项B说法错误。
预告:下周(3.4-3.8)将更新PHP面试之MySQL数据库知识点,敬请期待。
以上内容摘自《PHP程序员面试笔试真题解析》书籍,该书已在天猫、京东、当当等电商平台销售。
更多PHP相关的面试知识、考题能够关注公众号获取:琉忆编程库
对本文有什么问题或建议均可以进行留言,我将不断完善追求极致,感谢大家的支持。