11. CGI、FastCGI、PHP-CGI和PHP-FPM原理区别?
CGI:是公共网关接口 Web Server 与 Web Application 之间数据交换的一种协议。
FastCGI:FastCGI就像是一个常驻(long-live)型的CGI程序,它可以一直运行着。同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。
12.服务器状态码200 300 400 500各代表的什么?
1.200-成功
2.300-307表示要完成请求,需要进一步操作,代码状态通常为重定向
3.400-417表示请求可能出错了,妨碍服务器处理
400-服务器不理解的请求语法
401-身份验证错误
403-服务器拒绝请求
404-未找到网页(最常见的了服务器状态)
405-方法禁用
406-不接受(无法使用请求的内容特性响应请求的网页)
407-需要代理授权
408-请求超时(服务器等待请求超时)
4.500-505表示:服务器在尝试请求处理时发生内部错误,是服务器的错,不是请求的错
500-服务器内部错误(例如测试环境的服务器挂了)
501-服务器不具备完成请求的功能
502-错误网管
503-服务器不可用(超载或者停机维护,暂停的状态)
504-网关超时
505-http版本不受支持(请求使用的http协议版本服务器不支持)
13.linux中把.c .h的文件编译成.so文件,gcc了解吗?
以下以编译mylib.c为例讲如何编译.so文件。
首先,编译mylib.c:
$gcc -c -fPIC -o mylib.o mylib.c
-c表示只编译(compile),而不连接。-o选项用于说明输出(output)文件名。gcc将生成一个目标(object)文件mylib.o。
注意-fPIC选项。PIC指Position Independent Code。共享库要求有此选项,以便实现动态连接(dynamic linking)。
生成共享库:
$gcc -shared -o mylib.so mylib.o
库文件以lib开始。共享库文件以.so为后缀。-shared表示生成一个共享库。
14.Redis内存回收机制?
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据
Redis 在默认情况下会采用 noeviction 策略。换句话说,如果内存己满 , 则不再提供写入操作 , 而只提供读取操作 。 显然这往往并不能满足我们的要求,因为对于互联网系统而言 , 常常会涉及数以百万甚至更多的用户 , 所以往往需要设置回收策略。 需要指出的是 : LRU 算法或者 TTL 算法都是不是很精确算法,而是一个近似的算法。 Redis 不会通过对全部的键值对进行比较来确定最精确的时间值,从而确定删除哪个键值对 , 因为这将消耗太多的时间 , 导致回收垃圾执行的时间太长 , 造成服务停顿。
15.爬虫模拟登陆,如何跳过验证码?
1、爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。
2、首先得明白cookie的作用,cookie是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。因此我们需要用Cookielib模块来保持网站的cookie。
3、这个是要登陆的地址 1 和验证码地址 2
4、可以发现这个验证码是动态更新的每次打开都不一样,一般这种验证码和cookie是同步的。其次想识别验证码肯定是吃力不讨好的事,因此我们的思路是首先访问验证码页面,保存验证码、获取cookie用于登录,然后再直接向登录地址post数据。
5、首先通过抓包工具或者火狐或者谷歌浏览器分析登录页面需要post的request和header信息。模拟登录
验证码地址和post地址
将cookies绑定自动管理
使用用户名和密码
用代码访问验证码地址,获取cookie
保存验证码到本地
打开保存的验证码图片输入
根据抓包信息 构造表单
根据抓包信息 构造headers
生成post数据 ?key1=value1&key2=value2的形式
构造request请求
打印登录后的页面
登录成功后便可以利用该cookie访问其他需要登录才能访问的页面。
最后,祝所有大家在面试中过关斩将,拿到心仪offer。如果想与一群3-8年资深开发者一起交流学习的话,获取更多相关大厂面试咨询和指导,请戳这里
phper在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家
最后,祝所有大家在面试中过关斩将,拿到心仪offer。如果想与一群3-8年资深开发者一起交流学习的话,获取更多相关大厂面试咨询和指导,请戳这里
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容