page contents

百度地图php面试题(附带答案)

1、include 和 require 的区别  (1)require 相对 include 的效率会更高  (2)引用的文件不存在时,require会报致命错误,结束程序运行,而include则只会报warning  (3)在同一php文件...

attachments-2021-06-kaCaAwoy60c03398ad237.png

1、include 和 require 的区别

 (1)require 相对 include 的效率会更高

 (2)引用的文件不存在时,require会报致命错误,结束程序运行,而include则只会报warning

 (3)在同一php文件中解释过一次后,不会再解释第二次。而include却会重复的解释包含的文件。所以当php网页中使用循环或条件语句引入文件时,"require"则不会做任何的改变,当出现这种情况,必须使用"include"命令来引入文件。

2、http请求中会包含什么内容

 (1)客户端信息

 (2)URL

 (3)协议版本

 (4)MIME 信息包括请求修饰符

 (5)请求内容

3、redis怎么实现锁

    利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁,客户端使用下面的命令进行获取: 
    SETNX lock.foo <current Unix time + lock timeout + 1> 

  • 如返回1,则该客户端获得锁,把lock.foo的键值设置为时间值表示该键已被锁定,该客户端最后可以通过DEL lock.foo来释放该锁。

  • 如返回0,表明该锁已被其他客户端取得,这时我们可以先返回或进行重试等对方完成或等待锁超时。

4、mq中如何避免重复消费

问题1:消息重复消费 
描述:用户在页面停止查询时,会导致消费者进程被杀死,因此ACK状态码未反馈至MQ,从而消息一直存留在MQ中,当新的消费者启动时会重新消费; 
解决方案:消费者每次执行查询前,首先在DB上查询任务的执行状态,若处于「取消/失败/成功」则表示已经由其它消费者消费过,那么直接返回ACK状态码给MQ,将消息从MQ中移除;

5、get和post请求长度区别

get:

  Microsoft Internet Explorer (Browser)

  IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。

  通过上面的数据可知,为了让所有的用户都能正常浏览, URL最好不要超过IE的最大长度限制(2083个字符),当然,如果URL不直接提供给用户,而是提供给程序调用,这时的长度就只受Web服务器影响了。

  注:对于中文的传递,最终会为urlencode后的编码形式进行传递,如果浏览器的编码为UTF8的话,一个汉字最终编码后的字符长度为9个字符。

  因此如果使用的 GET 方法,最大长度等于URL最大长度减去实际路径中的字符数。

post:

  理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。

  如:在Tomcat下取消POST大小的限制(nginx默认8M);

6、session 和 cookie 有什么区别,如何共享session  

  1. Cookie 在客户端(浏览器),Session 在服务器端
  2. Session 比 Cookie 安全性更高
  3. 单个 Cookie 保存的数据不能超过 4K
  4. Session 是基于 Cookie,如果浏览器禁用了 Cookie,Session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 Session ID)

  共享session可以通过把session存在redis 或者memacache 中,读取session时从缓存读取。

7、json和jsonp的区别

json是数据格式,jsonp是jsonp,即 json padding,一种非官方跨域数据交互协议,原理就是利用 <script> 标签没有跨域限制来达到与第三方通讯的目的。

8、mysql如何优化

  优化mysql

  1. 合理的设计表结构、表索引
  2. 不在数据库中做运算
  3. 控制单表数据量
  4. 数据量过大进行读写分离,使用INNODB存储引擎
  5. 不再数据表中存储图

  优化sql:

  1. 避免使用 Like 模糊查询
  2. 只列出需要查询的字段,而不是所有
  3. 不在 MySQL 中进行运算,减轻 MySQL 的压力
  4. 经常查询的字段,创建合适的索引,提高查询效率

9、简单描述快排,快排的时间复杂度

  最慢n^2 最快nlogn 平均nlogn

10、常见的负载均衡模式,名字

  a. Round Robin: 对所有的backend轮训发送请求,算是最简单的方式了,也是默认的分配方式;

  b. Least Connections(least_conn): 跟踪和backend当前的活跃连接数目,最少的连接数目说明这个backend负载最轻,将请求分配给他,这种方式会考虑到配置中给每个upstream分配的weight权重信息;

  c. Least Time(least_time): 请求会分配给响应最快和活跃连接数最少的backend;

  d. IP Hash(ip_hash): 对请求来源IP地址计算hash值,IPv4会考虑前3个octet,IPv6会考虑所有的地址位,然后根据得到的hash值通过某种映射分配到backend;

  e. Generic Hash(hash): 以用户自定义资源(比如URL)的方式计算hash值完成分配,其可选consistent关键字支持一致性hash特性;

11、印象最深的项目,以及遇到的困难

12、打开tcp关闭tcp分别需要几次挥手

  三次握手,两次挥手

13、join 和in 优先用哪个

  优先join 特殊情况用in

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-NTmvAfLI62ac2e64abe02.jpeg

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章