get req.querypost // 引入表单处理模块 var bodyParser = require('body-parser'); / 设置 url 解析 规则 // app.use(bodyParser.json()); // for parsing application/json 可以加 可以 不加 // 必须加 app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form- urlencoded // 处理 post 参数 req.body
52.socket 如何发送和吸收?
// 发送 socket.emit('jyzj', '您多大了?'); // 点击按钮 发送 document.getElementById('btn').onclick = function () { socket.emit('s80', '渣男'); // socket.emit('jyzj', '打狗棍法!天下无狗!'); }; // 监听回答 socket.on('action', function (msg) { alert('xxx: ' + msg); });// 吸收的方法 socket.on('event',function(msg){ 吸收到的业务逻辑操作 }); socket.on('s80', function (msg) { console.log('吸收的'+msg); socket.emit('action', '我便是渣男,不服来砍我!'); // 关于emi方法的备注 // console.log(io);console.log(socket); // 结果一样 // 利用socket.emit 和io.emit是一个方法. // 但是常用是socket.emit })
53. b2b2c o2o p2p CRM ERP OA 分别是什么?
B2B2C:是一种电子商务类型的网络购物商业模式,B是BUSINESS的简称,C是CUSTOMER的简称,第一个B指的是商品或做事的供应商,第二个B指的是从事电子商务的企业,C则是表示消费者。中文名 电子购物平台模式外文名 B2B2C模 式 供应商对企业,企业对消费者平 台 淘宝,京东等O2O:即Online To Offline(在线离线/线上到线下),是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个观点最夙兴源于美国。O2O的观点非常广泛,既可涉及到线上,又可涉及到线下,可以通称为O2O。主流商业管理课程均对O2O这种新型的商业模式有所先容及关注。例如:云家园、云家政、e家洁、小区管家P2P peer-to-peer lendingp2p金融又叫P2P信贷。个中,P2P是 peer-to-peer 或 person-to-person 的简写,意思是:个人对个人。P2P金融指个人与个人间的小额借贷交易,一样平常须要借助电子商务专业网络平台帮助借贷双方确立借贷关系并完成干系交易手续。借款者可自行发布借款信息,包括金额、利息、还款办法和韶光,实现自助式借款;借出者根据借款人发布的信息,自行决定借出金额,实现自助式借贷。举例解释:MB月光宝盒平台目前做P2P最多的属于P2P互联网金融平台,大略的意思便是个人对个人通过平台来连接达到办理双方的需求。ERP所谓ERP是英文Enterprise Resource Planning(企业资源操持)的简写。是指建立在信息技能根本上,以系统化的管理思想,为企业决策层及员工供应决策运行手段的管理平台。ERP系统集中信息技能与前辈的管理思想於一身,成为当代企业的运行模式,反响时期对企业合理调配资源,最大化地创造社会财富的哀求,成为企业在信息时期生存、发展的基石。CRM Customer Relationship Management即客户关系管理,是指企业用CRM技能来管理与客户之间的关系。在不同场合下,CRM可能是一个管理学术语,可能是一个软件系统。常日所指的CRM,指用打算机自动化剖析发卖、市场营销、客户做事以及运用等流程的软件系统。它的目标是通过提高客户的代价、满意度、赢利性和虔诚度来缩减发卖周期和发卖本钱、增加收入、探求扩展业务所需的新的市场和渠道。CRM是选择和管理有代价客户及其关系的一种商业策略,CRM哀求以客户为中央的企业文化来支持有效的市场营销、发卖与做事流程OA:提及OA(Office Automation,办公自动化),总体上讲,它是指统统可知足于企奇迹单位的、综合型的、能够提高单位内部信息互换、共享、流转处理的和实现办公自动化和提高事情效率的各种信息扮装备和运用软件。它不是伶仃存在的,而是与企奇迹单位其它各种管理系统(如行政管理系统、人力资源管理系统、CRM系统、发卖管系统、ERP系统、财务系统、发卖会员管理系统)密切干系、有机整合。一个独立存在的OA办公自动化系统生命力及浸染是薄弱的。——这也是目前最全面、最被认可的OA的观点。
54. 微信订阅号和做事号的差异?这个有人知道嘛?
55. 如何完成微信的接口配置? 以及配置失落败的缘故原由?填写的URL须要精确相应微信发送的Token验证
失落败缘故原由未删除里面的html文件
56. 如何获取微信发送的内容?$postStr = file_get_contents("php://input");
57.php 是单线程还是多线程单线程
58. 什么是依赖注入,办理了那些问题1.什么是依赖注入
依赖注入是掌握反转的一种实现,实当代码解耦,便于单元测试。由于它并不须要理解自身所依赖的类,而只须要知道所依赖的类实现了自身所须要的方法就可以了。
2.办理那些问题
依赖之间的解耦
单元测试,方便Mock
理解依赖注入与掌握反转 | Laravel China 社区...
59. 什么是掌握反转掌握反转 是面向工具编程中的一种设计原则,可以用来减低打算机代码之间的耦合度。个中最常见的办法叫做依赖注入(Dependency Injection, DI), 还有一种叫"依赖查找"(Dependency Lookup)。通过掌握反转,工具在被创建的时候,由一个调控系统内所有工具的外界实体,将其所依赖的工具的引用通报给它。也可以说,依赖被注入到工具中。
60. 做事器之间如何共享 session1.通过数据库mysql共享sessiona.采取一台专门的mysql做事器来存储所有的session信息。用户访问随机的web做事器时,会去这个专门的数据库做事器check一下session的情形,以达到session同步的目的。缺陷便是:依61.session 和 cookie 的差异
cookie session位置 浏览器 做事器特点 方便和js交流 高效安全获取用户信息 不依赖浏览器环境风险 用户禁用cookie替代 url参数
62.cookie 禁用后如何利用 session1、设置php.ini的session.use_trans_sid = 1或者打开enable-trans-sid选项,让PHP自动跨页通报session id。2、手动通过URL传值、隐蔽表单通报session id。3、用文件、数据库等形式保存session_id,在跨页过程中手动调用。
63.PSR 规范psr-1是基本代码规范psr-2是代码风格规范psr-3这天记接口规范psr-4是为理解决自动加载psr-6是缓存接口规范psr-7是HTTP接口规范psr.phphub.org/
64.git 高等命令git rebase 在新位置重新提交git revert 撤销commitgit reset 丢弃提交git stash 临时存放事情目录的改动git reflog 找回分支git-scm.com/docsPro Git(中文版)
65.PHP 如何实现多继续1.接口单继续
2.接口多继续
3.trait
4.PHP 默认并不支持多线程,要利用多线程须要安装 pthread 扩展,而要安装 pthread 扩展
php.net/manual/zh/language.oop5.tra...
www.cnblogs.com/jkko123/p/6351604....
trait 示例
<?phptrait ezcReflectionReturnInfo { function getReturnType() { /1/ } function getReturnDescription() { /2/ }}class ezcReflectionMethod extends ReflectionMethod { use ezcReflectionReturnInfo; / ... /}class ezcReflectionFunction extends ReflectionFunction { use ezcReflectionReturnInfo; / ... /}?>
66. 进程,协程,线程
进程是程序实行是的一个实例,进程能够分配给cpu和内存等资源。进程一样平常包括指令集和系统资源,个中指令集便是你的代码,系统资源便是指cpu、内存以及I/O等。进程是一个程序在一个数据集中的一次动态实行过程,可以大略理解为“正在实行的程序”,它是CPU资源分配和调度的独立单位。进程一样平常由程序、数据集、进程掌握块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在实行过程中所须要利用的资源;进程掌握块用来记录进程的外部特色,描述进程的实行变革过程,系统可以利用它来掌握和管理进程,它是系统感知进程存在的唯一标志。进程的局限是创建、撤销和切换的开销比较大。线程是进程的一个实行流,线程不能分配系统资源,它是进程的一部分,比进程更小的独立运行的单位。阐明一下:进程有两个特性:一是资源的所有权,一个是调度实行(指令集),线程是调度实行中的一部分,是指进程实行过程的路径,也叫程序实行流。线程有时候也叫轻量级进程。线程是在进程之后发展出来的观点。 线程也叫轻量级进程,它是一个基本的CPU实行单元,也是程序实行过程中的最小单元,由线程ID、程序计数器、寄存器凑集和堆栈共同组成。一个进程可以包含多个线程。线程的优点是减小了程序并发实行时的开销,提高了操作系统的并发性能,缺陷是线程没有自己的系统资源,只拥有在运行时必不可少的资源,但同一进程的各线程可以共享进程所拥有的系统资源,如果把进程比作一个车间,那么线程就好比是车间里面的工人。不过对付某些独占性资源存在锁机制,处理不当可能会产生“去世锁”。协程是一种用户态的轻量级线程,又称微线程,英文名Coroutine,协程的调度完备由用户掌握。人们常日将协程和子程序(函数)比较着理解。子程序调用总是一个入口,一次返回,一旦退出即完成了子程序的实行。协程的起始处是第一个入口点,在协程里,返回点之后是接下来的入口点。在python中,协程可以通过yield来调用其它协程。通过yield办法转移实行权的协程之间不是调用者与被调用者的关系,而是彼此对称、平等的,通过相互协作共同完成任务。其运行的大致流程如下:第一步,协程A开始实行。第二步,协程A实行到一半,进入停息,通过yield命令将实行权转移到协程B。第三步,(一段韶光后)协程B交还实行权。第四步,协程A规复实行。协程的特点在于是一个线程实行,与多线程比较,其上风表示在: 协程的实行效率非常高。由于子程序切换不是线程切换,而是由程序自身掌握,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能上风就越明显。 协程不须要多线程的锁机制。在协程中掌握共享资源不加锁,只须要判断状态就好了。Tips:利用多核CPU最大略的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可得到极高的性能。进程,线程,协程-阿里云开拓者社区www.php.cn/php-weizijiaocheng-39314...
67.php 反射http://php.net/manual/zh/book.reflection.php
68. 公众号全局唯一票据( access_token )是公众号的全局唯一票据,有效期为( 2小时 )
69. 自定义菜单1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。
3、创建自定义菜单后,菜单的刷新策略是,在用户进入公众年夜众号会话页或"大众年夜众号profile页时,如果创造上一次拉取菜单的要求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户真个菜单。测试时可以考试测验取消关注"大众年夜众账号后再次关注,则可以看到创建后的效果。
70. 写出四个自定义菜单按钮类型1、click:点击推事宜用户点击click类型按钮后,微信服务器会通过接口推送类型为event的构造给开拓者(参考接口指南),并且带上按钮中开拓者填写的key值,开拓者可以通过自定义的key值与用户进行交互;2、view:跳转URL用户点击view类型按钮后,微信客户端将会打开开拓者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,得到用户基本信息。3、scancode_push:扫码推事宜用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开拓者,开拓者可以下发。4、scancode_waitmsg:扫码推事宜且弹出“吸收中”提示框用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开拓者,同时收起扫一扫工具,然后弹出“吸收中”提示框,随后可能会收到开拓者下发的。5、pic_sysphoto:弹出系统拍照发图用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开拓者,并推送事宜给开拓者,同时收起系统相机,随后可能会收到开拓者下发的。6、pic_photo_or_album:弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。7、pic_weixin:弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开拓者的做事器,并推送事宜给开拓者,同时收起相册,随后可能会收到开拓者下发的。8、location_select:弹出地理位置选择器用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开拓者的做事器,同时收起位置选择工具,随后可能会收到开拓者下发的。9、media_id:下发(除文本)用户点击media_id类型按钮后,微信服务器会将开拓者填写的永久素材id对应的素材下发给用户,永久素材类型可以是图片、音频、视频、图文。请把稳:永久素材id必须是在“素材管理/新增永久素材”接口上传后得到的合法id。10、view_limited:跳转图文URL用户点击view_limited类型按钮后,微信客户端将打开开拓者在按钮中填写的永久素材id对应的图文URL,永久素材类型只支持图文。请把稳:永久素材id必须是在“素材管理/新增永久素材”接口上传后得到的合法id。请把稳!!! 3到8的所有事宜,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开拓者也不能正常吸收到事宜推送。9和10,是专门给第三方平台旗下未微信认证(详细而言,是资质认证未通过)的订阅号准备的事宜类型,它们是没有事宜推送的,能力相对受限,其他类型的公众年夜众号不必利用。
71. 写出四个接管类型写出四个吸收类型( 文本 图片 语音 视频 小视频 地理位置 链接 )。
72. 模板内容中部必须为多少个个 “关键词名称:关键词内容参数” 的组合排列模板填写时,必须严格遵守以下规则,否则也不能审核通过:1、模板内容长度不能超过200个字符,且必须有至少10个固定笔墨或标点2、模版内容中,参数是可以在发送时赋值的,参数必须以“{ {”开头,以“.DATA} }”结尾)3、内容示例是将模板内容中的参数分别举例后的模板内容的副本,必须严格填写,用以帮助审核职员详细理解模板的用场4、参数中可以通过增加“\n”,来实现换行,以是,一样平常建议将参数紧贴上一行,在须要时用“\n”自行换行。通过该技巧,可以让模板的拓展能力变得非常强。5、模版内容中,第一句话须要为礼貌性、称谓性的用语,这句话统一用{ {first.DATA} }参数来概括,以免此后称谓习气等修正后,需修正模版。6、模版内容的中部必须为2到5个“关键词名称:关键词内容参数”(中文冒号)的组合排列,这样显示在微信客户端中体验最佳。7、模版内容中,末端必须有{ {remark.DATA} }参数,该参数的浸染是,用户可以自行添加多行须要的内容。例如,模版中有姓名、韶光这2个关键词,但你须要姓名、韶光、地点3个,则可以将地点这个关键词的内容放入remark参数中(须要时可通过\n来换行)。这样就达到了用remark参数来扩充关键词的浸染,极大增强了模版的通用性。8、直接相连在一起的参数,应简化为一个,避免模板内容过于繁芜,由于赋值到两个参数中的内容可以简化地赋值到一个参数中。9、为了保持行业通用性,模板标题和模板内容中,不许可带有品牌等关键词,以免影响通用性。
73. 在利用接口特殊是发送时,对多媒体文件、多媒体的获取和调用等操作,是通过 ( media_id ) 来进行的。素材管理新增临时素材"大众年夜众号常常有须要用到一些临时性的多媒体素材的场景,例如在利用接口特殊是发送时,对多媒体文件、多媒体的获取和调用等操作,是通过media_id来进行的。素材管理接口对所有认证的订阅号和做事号开放。通过本接口,公众号可以新增临时素材(即上传临时多媒体文件)。把稳点:1、临时素材media_id是可复用的。2、媒体文件在微信后台保存韶光为3天,即3天后media_id失落效。3、上传临时素材的格式、大小限定与"大众年夜众平台官网同等。图片(image): 2M,支持PNG\JPEG\JPG\GIF格式语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式视频(video):10MB,支持MP4格式缩略图(thumb):64KB,支持JPG格式4、需利用https调用本接口。
74. 模板不许可在用户没做任何操作或未经用户赞许吸收的条件下,主动下发给用户模板运营规范模板用来帮助"大众年夜众号进行业务关照,是开拓者在模板内容中设定参数(参数必须以“{ {”开头,且以“.DATA} }”结尾),并在调用时为这些参数赋值并发送的。模板的定位是用户触发后的关照,不许可在用户没做任何操作或未经用户赞许吸收的条件下,主动下发给用户。目前在分外情形下许可主动下发的只有故障类和磨难警示警告类关照,除此之外都要经由用户赞许或用户有触发行为才能下发模板。"大众年夜众号只能在模板库中按照自己的行业来选择模板。如果模板库中暂时没有你想要的模板,则请你仔细阅读以下内容后,在知足哀求的情形下,可以为你所在的行业贡献新模板,帮助充足模板库。
75. 模板内容不能做营销、推广模板运营规范惩罚规则违规的剖断原则1.发模板的行为:①模板不能主动下发给没有接管过做事的吸收者(故障报警、磨难报警和不涉及营销推广的关照除外)例:某用户仅仅是关注公众号,没有和"大众年夜众号及其所属主体有任何交互行为,却无端收到该公众年夜众号下发的模板,属于违规行为②模板的发送频率不能太高骚扰吸收者例:某用户点击"大众号的自定义菜单一次或其它触发操作,连续收到3条或更多重复模板,属于违规行为2.模板的内容:①模板内容不能做营销、推广、勾引分享及勾引下载APP例:某用户购买某商品后,"大众号下发模板推销其它商品,与用户这次接管的做事无关,属于违规②模板内容与模板标题或关键词无关联例:标题是刷卡成功关照,模板内容却是推销商品或活动关照,属于违规③模板内容是营销性子的群发活动公告关照例:标题小区物业关照,模板内容却是群发活动的营销信息综合上述两项原则后判断,主动下发、内容涉及恶意营销、频率过高恶意骚扰、以及模板参数内容乱填写将被封接口惩罚。对付多次利用同一模板违规的,将回收违规模板,不许可再利用,违规惩罚将通过微信"大众年夜众平台站内信奉告运营者。
76. 对付临时素材,每个素材会在开拓者上传或粉丝发送到微信服务器 3 天后自动删除媒体文件在微信后台保存韶光为3天,即3天后media_id失落效。
77. 含有昭示或暗示用户分享的文案、图片、按钮、弹层、弹窗,不属于勾引分享勾引分享类内容1.1 哀求用户分享,分享后方可进行下一步操作,分享后方可知道答案等;1.2 含有昭示或暗示用户分享的文案、图片、按钮、弹层、弹窗等的,如:分享给好友、约请好友一起完成任务等;1.3 通过利益诱惑,勾引用户分享、传播外链内容或者微信"大众年夜众帐号文章的,包括但不限于:现金褒奖、实物奖品、虚拟奖品(红包、优惠券、代金券、积分、话费、流量、信息等)、集赞、拼团、分享可增加抽奖机会、中奖概率,以积分或金钱利益勾引用户分享、点击、点赞微信公众帐号文章等;1.4 用夸年夜言语来胁迫、领导用户分享的。包括但不限于:“不转不是中国人”、“请好心人转发一下”、“转发后生平安然”、“转疯了”、“必转”、“转到你的朋友圈朋友都会感激你”等
78. 企业号、做事号、订阅号差异企业号 做事号 订阅号次数限定 最高每分钟可群发 200 次 每月主动发送不超过 4 条 每天群发一条验证关注者身份 通讯录成员可关注 不论什么微信用户扫码就可以关注 不论什么微信用户扫码就可以关注保密 可转发、分享。支持保密,防成员转发 可转发、分享 可转发、分享高等接口权限 支持 支持 不支持定制运用 可依据必要定制运用,多个运用聚合成一个企业号 不支持。新增做事号必要又一次关注。 不支持,新增做事号必要又一次关注。
79. 大略描述微信"大众年夜众平台接入80. 网页授权用户流程步骤1、勾引用户进入授权页面赞许授权,获取code2、通过code换取网页授权access_token(与根本支持中的access_token不同)3、如果须要,开拓者可以刷新网页授权access_token,避免过期4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
81. 描述小程序的框架框架名称:MINA (MINA IS NOT APP) 是在微信中开拓小程序的框架。框架构造 :MINA 框架由两部分组成。视图层 (View) 和逻辑层 (App Service)。框架特色:相应式的数据绑定 (MINA 用相应式数据绑定的办法,在视图层和逻辑层之间进行通信。从某种程度上,可以算作是 MVVM 模式。)构造:MINA 程序包含一个描述整体程序的 app 和多个描述各自页面的 page。一个 MINA 程序主体部分由三个文件组成,必须放在根目录下。Paste_Image.png一个 MINA 页面由四个文件组成。如下图
82. 检测是否是微信浏览器判断浏览器是否是微信内置浏览器紧张通过UserAgent或者WeiXinJSBridge两种办法进行
83. 浏览器内核有哪些?1、Trident内核:代表作品是IE,因IE捆绑在Windows中,以是霸占极高的份额,又称为IE内核或MSHTML,此内核只能用于Windows平台,且不是开源的。? ? 代表作品还有腾讯、Maxthon(遨游)、360浏览器等。但由于市场份额比较大,曾经涌现分开了W3C标准的时候,同时IE版本比较多,? ??存在很多的兼容性问题。2、Gecko内核:代表作品是Firefox,即火狐浏览器。因火狐是最多的用户,故常被称为firefox内核它是开源的,最大上风是跨平台,在Microsoft Windows、Linux、MacOs X等主 ??要操作系统中利用。? ?Mozilla是网景公司在第一次浏览器大败北给微软之后创建的。有兴趣的同学可以理解一下浏览器大战3、Webkit内核:代表作品是Safari、曾经的Chrome,是开源的项目。4、Presto内核:代表作品是Opera,Presto是由Opera Software开拓的浏览器排版引擎,它是天下公认最快的渲染速率的引擎。在13年之后,Opera宣告加入谷歌阵营,弃用了 ? ?Presto5、Blink内核:由Google和Opera Software开拓的浏览器排版引擎,2013年4月发布。现在Chrome内核是Blink。谷歌还开拓了自己的JS引擎,V8,使JS运行速率极大地提高了
84.php-fpm 是什么PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,对付PHP 5.3.3之前的php来说,是一个补丁包 [1] ,旨在将FastCGI进程管理整合进PHP包中。如果你利用的是PHP5.3.3之前的PHP的话,就必须将它patch到你的PHP源代码中,在编译安装PHP后才可以利用。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的掌握都更胜一筹,而且前者很随意马虎崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。php-fpm是 FastCGI 的实现,并供应了进程管理的功能。进程包含 master 进程和 worker 进程两种进程。master 进程只有一个,卖力监听端口,吸收来自 Web Server 的要求,而 worker 进程则一样平常有多个(详细数量根据实际须要配置),每个进程内部都嵌入了一个 PHP 阐明器,是 PHP 代码真正实行的地方。利用PHP-FPM来掌握PHP-CGI的FastCGI进程/usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}--start 启动php的fastcgi进程--stop 逼迫终止php的fastcgi进程--quit 平滑终止php的fastcgi进程--restart 重启php的fastcgi进程--reload 重新平滑加载php的php.ini--logrotate 重新启用log文件
85.ngnix 反向代理反向代理(Reverse Proxy)办法是指以代理做事器来接管Internet上的连接要求,然后将要求转发给内部网络上的做事器;并将从做事器上得到的结果返回给Internet上要求连接的客户端,此时期理做事器对外就表现为一个做事器客户端而言它就像是原始做事器,并且客户端不须要进行任何特殊的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通要求,接着反向代理将判断向何处(原始做事器)转交要求,并将得到的内容返回给客户端,就像这些内容 原来便是它自己的一样。浸染:1.保护和隐蔽原始资源做事器2.负载均衡(须要多个)3.过配置缓存功能加速Web要求:可以缓存真实Web做事器上的某些静态资源,减轻真实Web做事器的负载压力常日的代理做事器,只用于代理内部网络对 Internet 的连接要求,客户机必须指定代理做事器,并将本来要直接发送到 Web 做事器上的 http 要求发送到代理做事器中。当一个代理做事器能够代理外部网络上的主机,访问内部网络时,这种代理做事的办法称为反向代理做事。blog.csdn.net/tsummerb/article/det...
86.Nginx 正向代理正向代理,也便是传说中的代理,他的事情事理就像一个跳板, 大略的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理做事器 这个代理做事器呢,他能访问那个我不能访问的网站 于是我先连上代理做事器,见告他我须要那个无法访问网站的内容 代理做事器去取回来,然后返回给我正向代理 是一个位于客户端和原始做事器(origin server)之间的做事器,为了从原始做事器取得内容,客户端向代理发送一个要求并指定目标(原始做事器),然后代理向原始做事器转交要求并将得到的内容返回给客户端。客户端必须要进行一些特殊的设置才能利用正向代理。1.访问本无法访问的做事器2.正向代理提速(现在不盛行)3.缓存浸染4.客户端访问授权5.隐蔽访问者的行踪访问 google.com 这个例子www.php.cn/php-weizijiaocheng-39315...
87. 什么是中间件过滤Http要求过滤进入运用的HTTP要求工具(Request)和完善离开运用的HTTP相应工具(Reponse)的浸染, 而且可以通过运用多个中间件来层层过滤要求、逐步完善相应。这样就做到了程序的解耦,如果没有中间件那么我们必须在掌握器中来完成这些步骤,这无疑会造成掌握器的臃肿。要求->中间件->中间件->运用->中间件->中间件->相应中间件的设计利用了装饰器模式www.php.cn/php-weizijiaocheng-38647...
88.trait 优先级在trait继续中,优先顺序依次是:来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继续的方法。
For example: class A{ public function sayHello(){ echo "A"; } } trait B{ public function sayHello(){ parent::sayHello(); echo "B"; } } class C extends A{ use B; } $c=new C(); $c->sayHello(); 上述打印结果是:AB
89. 索引利用经典场景
1.匹配全值2.匹配范围3.最左前缀4.搜索索引5.匹配列前缀
90. 存在却不能利用的场景1.以%开头的LIKE文件2.数据类型涌现隐式转换3.多列索引查询条件不包括最左部分,即不知足左原则4.利用索引比全表扫面慢5.利用索引比全表扫描慢6.用or分开的条件7.条件索引利用函数
91. 软件开拓流程需求剖析1.干系系统剖析员向用户初步理解需求,然后用干系的工具软件列出要开拓的系统的大功能模块,每个大功能模块有哪些小功能模块,对付有些需求比较明确干系的界面时,在这一步里面可以初步定义好少量的界面。2.系统剖析员深入理解和剖析需求,根据自己的履历和需求用WORD或干系的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出干系的界面和界面功能。3.系统剖析员向用户再次确认需求。概要设计首先,开拓者须要对软件系统进行概要设计,即系统设计。概要设计须要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织构造、模块划分、功能分配、接口设计、运行设计、数据构造设计和出错处理设计等,为软件的详细设计供应根本。详细设计在概要设计的根本上,开拓者须要进行软件系统的详细设计。在详细设计中,描述实现详细模块所涉及到的紧张算法、数据构造、类的层次构造及调用关系,须要解释软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应该担保软件的需求完备分配给全体软件。详细设计应该足够详细,能够根据详细设计报告进行编码。编码在软件编码阶段,开拓者根据《软件系统详细设计报告》中对数据构造、算法剖析和模块实现等方面的设计哀求,开始详细的编写程序事情,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的哀求。在规范化的研发流程中,编码事情在全体项目流程里最多不会超过1/2,常日在1/3的韶光,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度折衷和协作是最须要小心的,大概一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下事情等待,这种问题在很多研发过程中都涌现过。编码时的相互沟通和应急的办理手段都是相称主要的,对付程序员而言,bug永久存在,你必须永久面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!
测试测试编写好的系统。交给用户利用,用户利用后一个一个的确认每个功能。软件测试有很多种:按照测试实行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情形测试和非常情形测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再阐明。总之,测试同样是项目研发中一个相称主要的步骤,对付一个大型软件,3个月到1年的外部测试都是正常的,由于永久都会有不可预见的问题存在。完成测试后,完成验收并完成末了的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等事情,只要不是想通过一锤子买卖骗钱,就要一直的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。软件交付在软件测试证明软件达到哀求后,软件开拓者应向用户提交开拓的目标安装程序、数据库的数据字典、《用户安装手册》、《用户利用指南》、需求报告、设计报告、测试报告等双方条约约定的产物。《用户安装手册》应详细先容安装软件对运行环境的哀求、安装软件的定义和内容、在客户端、做事器端及中间件的详细安装步骤、安装后的系统配置。《用户利用指南》应包括软件各项功能的利用流程、操作步骤、相应业务先容、分外提示和把稳事变等方面的内容,在须要时还应举例解释。验收用户验收。掩护根据用户需求的变革或环境的变革,对运用程序进行全部或部分的修正。
“行列步队”是在的传输过程中保存的容器。在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的办法大大的节省了做事器的要求相应韶光,从而提高了系统的吞吐量。RabbitMQ支持的持久化,也便是数据写在磁盘上,为了数据安全考虑,我想大多数用户都会选择持久化。行列步队持久化包括3个部分: (1)exchange持久化,在声明时指定durable => 1 (2)queue持久化,在声明时指定durable => 1 (3)持久化,在投递时指定delivery_mode => 2(1是非持久化)如果exchange和queue都是持久化的,那么它们之间的binding也是持久化的。如果exchange和queue两者之间有一个持久化,一个非持久化,就不许可建立绑定。
93. 千万级别的数据库经纬度,批量更换成地址1.拆表百万为一单位
2.批量提交和读取利用yield协程异步操作
94.Redis 有哪些数据构造?字符串 String、字典 Hash、列表 List、凑集 Set、有序凑集 SortedSet。如果你是 Redis 中高等用户,还须要加高下面几种数据构造 HyperLogLog、Geo、Pub/Sub。如果你说还玩过 Redis Module,像 BloomFilter,RedisSearch,Redis-ML,口试官得眼睛就开始发亮了。
95. 利用过 Redis 分布式锁么,它是什么回事?先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期韶光防止锁忘却了开释。这时候对方会见告你说你回答得不错,然后接着问如果在 setnx 之后实行 expire 之提高程意外 crash 或者要重启掩护了,那会怎么样?这时候你要给予惊异的反馈:唉,是喔,这个锁就永久得不到开释了。紧接着你须要抓一抓自己得脑袋,故作思考少焉,彷佛接下来的结果是你主动思考出来的,然后回答:我记得 set 指令有非常繁芜的参数,这个该当是可以同时把 setnx 和 expire 合成一条指令来用的!
对方这时会显露笑颜,心里开始默念:摁,这小子还不错。
利用 keys 指令可以扫出指定模式的 key 列表。对方接着追问:如果这个 redis 正在给线上的业务供应做事,那利用 keys 指令会有什么问题?这个时候你要回答 redis 关键的一个特性:redis 的单线程的。keys 指令会导致线程壅塞一段韶光,线上做事会停顿,直到指令实行完毕,做事才能规复。这个时候可以利用 scan 指令,scan 指令可以无壅塞的提取出指定模式的 key 列表,但是会有一定的重复概率,在客户端做一次去重就可以了,但是整体所花费的韶光会比直接用 keys 指令长。
97. 利用过 Redis 做异步队列么,你是怎么用的?一样平常利用 list 构做作为行列步队,rpush 生产,lpop 消费。当 lpop 没有的时候,要适当 sleep 一会再重试。如果对方追问可不可以不用 sleep 呢?list 还有个指令叫 blpop,在没有的时候,它会壅塞住直到到来。如果对方追问能不能生产一次消费多次呢?利用 pub/sub 主题订阅者模式,可以实现 1:N 的行列步队。如果对方追问 pub/sub 有什么缺陷?在消费者下线的情形下,生产的会丢失,得利用专业的行列步队如 rabbitmq 等。如果对方追问 redis 如何实现延时行列步队?我估计现在你很想把口试官一棒打去世如果你手上有一根棒球棍的话,怎么问的这么详细。但是你很克制,然后神态自若的回答道:利用 sortedset,拿韶光戳作为 score,内容作为 key 调用 zadd 光降盆,消费者用 zrangebyscore 指令获取 N 秒之前的数据轮询进行处理。到这里,口试官暗地里已经对你竖起了大拇指。但是他不知道的是此刻你却竖起了中指,在椅子背后。
98. 如果有大量的 key 须要设置同一韶光过期,一样平常须要把稳什么?如果大量的 key 过期韶光设置的过于集中,到过期的那个韶光点,redis 可能会涌现短暂的卡顿征象。一样平常须要在韶光上加一个随机值,使得过期韶光分散一些。
99.Redis 如何做持久化的?bgsave 做镜像全量持久化,aof 做增量持久化。由于 bgsave 会耗费较永劫光,不足实时,在停机的时候会导致大量丢失数据,以是须要 aof 来合营利用。在 redis 实例重启时,优先利用 aof 来规复内存的状态,如果没有 aof 日志,就会利用 rdb 文件来规复。如果再问 aof 文件过大规复韶光过长怎么办?你见告口试官,Redis 会定期做 aof 重写,压缩 aof 文件日志大小。如果口试官不足满意,再拿出杀手锏答案,Redis4.0 之后有了稠浊持久化的功能,将 bgsave 的全量和 aof 的增量做了领悟处理,这样既担保了规复的效率又兼顾了数据的安全性。这个功能乃至很多口试官都不知道,他们肯定会对你刮目相看。如果对方追问那如果溘然机器掉电会若何?取决于 aof 日志 sync 属性的配置,如果不哀求性能,在每条写指令时都 sync 一下磁盘,就不会丢失数据。但是在高性能的哀求下每次都 sync 是不现实的,一样平常都利用定时 sync,比如 1s1 次,这个时候最多就会丢失 1s 的数据。如果对方追问 bgsave 的事理是什么?你给出两个词汇就可以了,fork 和 cow。fork 是指 redis 通过创建子进程来进行 bgsave 操作,cow 指的是 copy on write,子进程创建后,父子进程共享数据段,父进程连续供应读写做事,写脏的页面数据会逐渐和子进程分离开来。
100.Pipeline 有什么好处,为什么要用 pipeline?可以将多次 IO 来回的韶光缩减为一次,条件是 pipeline 实行的指令之间没有因果干系性。利用 redis-benchmark 进行压测的时候可以创造影响 redis 的 QPS 峰值的一个主要成分是 pipeline 批次指令的数目。
喜好我的文章就关注我吧,持续更新中.....