你好,是我琉忆。
本篇是本周(2019.2-25至3-1)的最后一篇文章。
之前的文章可以关注我的“PHP面试”专栏获取,或者关注我的公众号“琉忆编程库”查看历史获取。

我正在segmentfault社区送两本书:《PHP程序员面试笔试真题解析》 ,今晚(3月1日)19点开奖,欢迎参与。

明天就是周末了,提前祝各位周末愉快。

面试时如何给自己添金?没接触过支付功能?为此特意准备了一篇“新手零基础对接境外支付paypal”的文章,为你面试添金,关注公众号:“琉忆编程库”,回复:“pay”,我发给你。

以下正文的内容来自《PHP程序员面试笔试真题解析》书籍,如果转载请保留出处:


【真题1】如何利用PHP解决HTTP的无状态本质?

答案:可以使用Session和Cookie记住用户,监控是否同一个用户在操作。使用Session前需要在页面使用session_start()开启Session。然后使用$_SESSION来存储Session变量。
使用Cookie时,需使用set_cookie()设置Cookie,然后使用$_COOKIE取Cookie值。


【真题2】HTTP的Keep-Alive作用是什么?

答案: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,强制断掉。

【真题3】如何快速下载一个远程HTTP服务器上的图片文件到本地?

答案:先通过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);
?>

【真题4】请简述HTTP中POST、GET、PUT、DELETE方式的区别。

答案: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的功能是删除某一个资源。


【真题5】如何理解HTTP的gzip压缩传输?

答案:HTTP下的gzip是一种流行的文件压缩算法,在Linux平台上使用十分广泛,gzip压缩传输能更加有效节约带宽流量。它先把文本压缩为.gz然后传输给浏览器,最后由浏览器负责解压缩呈现给用户,可以降低网络传输的字节数,加快网页的加载速度。


面试时如何给自己添金?没接触过支付功能?为此特意准备了一篇“新手零基础对接境外支付paypal”的文章,为你面试添金,关注公众号:“琉忆编程库”,回复:“pay”,我发给你。


【真题6】如何给动态文件(如PHP页面)做缓存?(即第二次刷新浏览器时,返回304状态)

答案: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状态码,就可结束输出,这样代表浏览器端的文件版本是最新的,不需要返回文件内容。


【真题7】真题478、请写出HTTP和HTTPS的区别。


【真题8】IP是否可以伪造?PHP中如何拿到真实IP?

答案:IP地址是可以伪造的,客户端可以伪造IP地址或使用代理IP导致IP地址不是用户的真实IP地址。
REMOTE_ADDR代表客户端的IP地址,HTTP_X_FORWARDED_FOR是代理服务器的IP地址,存放真实的IP和各级代理IP。实现代码如下:

<?phpfunction 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; }
?>

【真题9】在HTTP 1.0中,状态码 401 的含义是( );如果返回“找不到文件”的提示,则可用 header 函数,其语句为( )。

参考答案:客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面;header("HTTP/1.0 404 Not Found");。


【真题10】下列关于HTTP协议的说法中,错误的是( )。

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相关的面试知识、考题可以关注公众号获取:琉忆编程库

对本文有什么问题或建议都可以进行留言,我将不断完善追求极致,感谢你们的支持。

PHP面试之网络协议面试题相关推荐

  1. 网络协议枯燥难学?这个胖子要说No!

    参加过大厂面试的小伙伴应该都清楚,无论是去面试国内的互联网大厂还是硅谷的IT公司,面试的时候多多少少都会问一些网络协议的知识.例如: 1. TCP协议和UDP协议有什么区别? 2. HTTPS协议的底 ...

  2. 网络协议那些事儿,每一个程序员的必备知识,这次终于理顺了!

    网络协议是每一个程序员的必备知识,不管是前端还是后端. 想要成为编程方面的专家,除了操作系统.计算机原理.数据结构和算法.设计模式和架构.数据库等知识外,网络协议的相关知识也是不可或缺的.同时面试中网 ...

  3. 【网络协议】专题总结以及网络协议高频面试题汇总(8篇)

    这是一份超详细的HTTP协议攻略,内容大纲如下: 内容如下(点击即可跳转): 一篇文章带你详解 HTTP 协议(上) 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中) 一篇文章带你详解 HT ...

  4. 面试必考的网络协议相关题目应该如何回答

    转载自  面试必考的网络协议相关题目应该如何回答 最近,正处于校招季.很多小伙伴已经拿到了如愿以偿的Offer,有些小伙伴还在努力着. 平常,也会有一些粉丝会在公众号留言,或者在微信上问我一些面试题. ...

  5. 前端面试知识点-DOCTYPE、盒模型、css选择符、position的值、网络协议【小咚 “面筋” 记】

    文章目录 前言 一.DOCTYPE的作用 二.盒模型 三.css选择符有哪些?优先级? 1.选择符 2.优先级 四.position的值有哪些? 五.网络协议(OSI.TCP/IP) 总结 前言 每天 ...

  6. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. 设置好网络协议了为何网络还是不通_记一次菜鸟网络的面试经历

    我是一个不太爱折腾的人,因此在一个公司待久了,就不太会轻易跳槽.正因为如此,我在上家公司待了整整三年,在这里,认识了一群可爱的人,便更不舍得离去. 但因为公司属于传统企业,技术上并没有太大挑战,个人也 ...

  8. TCP/IP、Http、Socket的区别以及面试中关于网络协议常问的考点

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  9. 网络工程师面试题(面试必看)(3)

    作者简介:一名云计算网络运维人员.每天分享网络与运维的技术与干货.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本系列将会提供网络工程师面试题,由多位专家整合出本系列面试 ...

  10. 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过 ...

最新文章

  1. osi七层协议和tcp/ip四层协议
  2. 敏捷开发:如何通过回顾保持学习状态
  3. 微软为其虚拟机更新Linux支持
  4. Java的Map遍历
  5. yii2_getDb()自动切换数据库
  6. orm java_Java 8 Friday:不再需要ORM
  7. 第一阶段个人总结04
  8. U盘加密软件测试简历,U盘加密软件哪个好用?2020U盘加密软件推荐
  9. MongoDB复制集同步慢问题分析
  10. c语言程序设计双语版答案,C程序设计(双语版)习题答案.doc
  11. 拇指玩」制作的「谷歌安装器」app
  12. NetSuite BOM材料产出率舍入
  13. 增长黑客——如何低成本实现爆发式成长
  14. 面向对象,继承封装的应用
  15. MySQL基础命令-学习的时候记录一下
  16. 【大数据开发】SparkCore——利用广播变量优化ip地址统计、Spark2.x自定义累加器
  17. 黑莓 掌上百度 下载
  18. python + win32api,win32gui,win32con 写 exe 窗口的时候,怎么创建按钮呢?
  19. request无法获取到前端发送的form表单数据
  20. eMMC(KLM8G2FE3B)

热门文章

  1. 【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的图像分割【含Matlab源码 085期】
  2. 【气动学】基于matlab内弹道【含Matlab源码 057期】
  3. 人工智能与自动驾驶汽车_自动驾驶汽车中的道德AI
  4. namenode节点无法启动解决方法
  5. 例3.2 简单计算器 - 九度教程第27题(栈的应用)
  6. 计算机网络ip地址博客,计算机网络中,这些IP地址你知道吗?
  7. ajax 循环php数组,jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
  8. 彭怀湘:金融与大数据相约互联网+时代
  9. linux RAID10测试
  10. Linux 下mysql修改数据库存放目录方法和可能遇到的问题