面试

记住看小电影前一定要检查一下域名是不是 HTTPS 的,不然……

久未见 提交于 2021-02-01 08:54:47
看小电影还是浏览正常网站,一定要检查是不是 HTTPS 的,HTTP有可能被中间人攻击和拦截,下面就是详细的 HTTPS 原理,细思极恐。 来自:https://segmentfault.com/a/1190000023936425 作者:mokeyWie 1. HTTP 协议 在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下: 请求 POST http://www.baidu.com HTTP/1.1 Host : www.baidu.com Connection : keep-alive Content-Length : 7 User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 wd =HTTP 响应 HTTP/1.1

不适合做软件测试的5类人,你现在看还来得及!

我只是一个虾纸丫 提交于 2021-02-01 08:50:45
前言: 软件测试工程师的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,写出相应的测试规范和测试案例。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。据有关调查数据表明,目前国内许多软件企业内部的测试人员和开发人员之比在1:5,与国外软件业1:1的比例还相去甚远。今天,我们就从能力和性格入手来谈谈哪些人合适做测试,哪些人不太适合做测试! 做软件测试至少要有六种能力 曾经在方正研究院担任测试工程师的肖先生分析说,能胜任软件测试工程师的人,至少需要以下几个能力。 第一种是:缜密的逻辑思维能力。为应对软件使用者千差万别的使用习惯和软件在使用过程中出现的各种现象,软件测试工程师应具有逆向思维能力,能够以用户角度出发,捕获一切可能性,对细节有不同寻常的关注能力。 第二种是:出色的沟通能力。优秀的软件测试工程师,应具备出色的沟通和表达能力。既能和技术开发人员沟通,又能简洁明了地向客户、管理者等这些非技术人员阐述系统在哪方面有缺失。当发现软件有问题时,不仅需要跟开发人员沟通,找到问题出在哪儿,阐述自己挑错的理由,有时候甚至要提出解决方案,直接参与前期需求和代码的修改。 除了要和客户以及开发人员沟通以外,还要善于同领导沟通。这个也是非常重要的。因为测试人员往往是领导的眼和耳

一个app解锁全部共享单车?黑客团伙“偷走”3亿

最后都变了- 提交于 2021-02-01 07:27:34
点击蓝字关注我们 👆 零基础黑客教程,黑客圈新闻,安全面试经验 尽在“掌控安全EDU” 近日,上海公安机关经缜密侦查,跨省追踪,成功破获一起破坏计算机信息系统案,抓获李某等14名犯罪嫌疑人。 上海破获共享单车万能解锁App案 上海市公安局闵行分局介绍,今年8月他们接到哈罗等共享单车公司报案称,某公司推出的一款名叫“全能车”的APP软件,影响了很多共享单车企业的正常服务,造成共享单车损失约3亿元。 接报后,闵行公安分局网安支队立即组成专案组,对该软件平台开展海量数据分析、电子数据勘查取证。 上海闵行区公安分局网安支队民警 张弘:这家公司说是共享单车的公司,但是他公司旗下没有任何一辆自己购买的单车供老百姓使用。 经查,这款所谓的共享单车软件,实际为侵入报案公司共享单车服务器的黑客软件。操控该软件的犯罪团伙,以低于某共享单车包月服务费的方法吸引用户,并通过软件扫描使用其品牌单车,以这样“间接”的方法为用户提供共享单车服务而非法牟利。 上海闵行区公安分局网安支队民警 张弘: 将这些共享单车的数据包进行截取并破解,再将这些单车原本的会员信息更改添加到里面,等于是伪装成这些共享单车真正的月卡或者年卡的会员;再将这些数据包,发送给共享单车的服务器,等于是骗过了服务器的检测,导致开锁的结果。 8月28日,专案组赶赴广东省深圳市,抓获李某、张某、胡某等14名犯罪嫌疑人, 现场查获68台服务器。

漫话:如何给女朋友解释什么是CDN?

若如初见. 提交于 2021-02-01 06:33:24
周六晚上七点多,我正在看书呢,突然女朋友跑过来问我她的IPAD去哪了,火急火燎的。 她拿到了IPAD之后就不再理我了,不过作为一个程序员,我还是比较好奇这么大的流量虎牙到底能不能扛得住,哈哈哈。于是我过去看了一下,结果看到了下面这一幕:  但是直播竟然并没有显得很卡顿,禁不住说了一段话: 据了解,2018年1月,阿里云为虎牙提供了边缘节点服务(ENS)。基于阿里云ENS,可以轻松地将业务模块放到边缘运行,在主播的推流时,实现就近节点进行转码和分发,同时支持了高并发实时弹幕的边缘分发。在获得网络低时延的同时,减少了对中心的压力,节省了30%以上的中心带宽成本,并且实现了边缘节点网络连接小于5毫秒延时,提升了主播上行质量,以及用户成功连接占比等数指标,有效提升了用户观看体验。ENS中最主要的技术就是CDN。 直播终于结束了,女朋友终于跑过来问我什么是CDN了… 什么是CDN CDN的全称是Content Delivery Network,即内容分发网络。 我们都用过天猫超市,在上面买东西非常方便。天猫超市的模式是货品先入天猫超市(后文简称为"猫超")的菜鸟仓,然后由猫超统一派送的。 为了缩短物流的时间,可以让消费者快速的收到货品,菜鸟在全国各地建了本地仓库,现在大多数情况下,在猫超下单,第二天都可以收到(楼主在江浙沪包邮区,其他地区可能稍有延迟)。 比如我在杭州市西湖区

怎么理解Laravel的核心架构

不羁的心 提交于 2021-02-01 05:37:32
使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?今天就和大家详聊一下。 首先应该了解laravel框架的架构模式(设计核心,laravel 框架是使用服务组件化的开发模式开发的,laravel框架就是由不同的服务组件构成的) laravel 里面多个服务提供者构成了laravel组件。分层设计:把相同功能的类库放在同一个文件夹里面。 laravel框架有多个类组成服务,由多个服务组成组件。类 -> 服务 -> 组件 laravel使用组件化的开发模式,多个类 -> 服务 -> 组件,多个类组成服务,多个服务构成组件。 多个组件提供不同的服务,然后多个服务构成我们的项目。 请求生命周期 大概的流程如图: 理论上,生命周期主要有这么些阶段,但其中,开发者大多数只需关注 路由、中间件、控制器、闭包函数、逻辑处理 等几步 当然,每一步的内部,还是会有更多细化的执行流程,在这里,一般不深入研究框架或改造框架,很少会细化研究,但研究底层,依旧是学习的好选择。 服务 说的就是提供给你所需要的东西,在laravel里面所提供的服务有 认证服务、数据库服务、缓存服务、队列服务等等。laravel框架所有服务都定义在了 app/config/app.php 里面

Linux禁止ping以及开启ping的方法

元气小坏坏 提交于 2021-02-01 04:01:10
作者:Happiness 来源:https://urlify.cn/Mr6zMb ☞ 当当网4.23图书3.9折大促 ☜ Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的 : 1. 内核参数 2. 防火墙 需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。 内核参数设置 禁止ping设置: 1)临时禁止ping命令如下所示: # 如果想要临时允许的话只需要把下面的1换成0即可 echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 2)永久禁止ping命令如下所示(如果想要永久允许的话只需要把下面的1换成0即可) 在 /etc/sysctl.conf 文件中增加一行 net.ipv4.icmp_echo_ignore_all=1 修改完成后执行 sysctl -p 使新的配置生效。 防火墙设置 (注意:此处的方法的前提是内核配置是默认值,也就是没有禁止ping) 这里以iptables防火墙为例: 1)允许ping设置 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT 或者可以临时停止防火墙操作:

处理 Exception 的几种实践,很优雅,被很多团队采纳!

拜拜、爱过 提交于 2021-01-31 23:14:36
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。 这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。 本文给出几个被很多团队使用的异常处理最佳实践。 2021Java面试宝典 在Finally块中清理资源或者使用try-with-resource语句 当使用类似InputStream这种需要使用后关闭的资源时,一个常见的错误就是在try块的最后关闭资源。 public void doNotCloseResourceInTry() { FileInputStream inputStream = null; try { File file = new File("./tmp.txt"); inputStream = new FileInputStream(file); // use the inputStream to read a file // do NOT do this inputStream.close(); } catch (FileNotFoundException e) { log.error(e); } catch (IOException e) { log.error(e); } }

Mybatis plus通用字段自动填充的最佳实践总结

a 夏天 提交于 2021-01-31 15:29:24
在进行持久层数据维护(新增或修改)的时候,我们通常需要记录一些非业务字段,比如:create_time、update_time、update_by、create_by等用来维护数据记录的创建时间、修改时间、修改人、创建人等信息。通常情况下我们需要对这些字段进行手动赋值。赋值的过程也比较冗余,都是重复操作。 通常是为create_time赋值为系统的当前时间、update_time赋值为系统修改操作执行时的当前时间。 create_by(创建人)、update_by(修改人)赋值为当前的登录用户的用户名 xxxYyyZzz.setUpdateBy("zimug"); //数据记录更新操作人 xxxYyyZzz.setUpdateTime(new Date()); //数据记录更新操作的时间 Mybatis plus 为我们提供了一种一劳永逸的自动化赋值方式。 一、调整数据库表结构 以mysql数据库环境下的xxx_yyy_zzz表为例,在原有的表字段的基础上,添加下面的四个通用数据维护字段。 ALTER TABLE `xxx_yyy_zzz` ADD COLUMN `create_by` VARCHAR(64) NOT NULL COMMENT '本条记录创建人'; ALTER TABLE `xxx_yyy_zzz` ADD COLUMN `create_time` DATETIME

POST和GET的区别(面试回答)

纵饮孤独 提交于 2021-01-31 13:40:53
POST和GET都是向服务器提交数据,并且都会从服务器获取数据。 区别: 1、传送方式:get通过地址栏传输,post通过报文传输。 2、传送长度:get参数有长度限制(受限于url长度),而post无限制 3、GET和POST还有一个重大区别,简单的说: GET产生一个TCP数据包;POST产生两个TCP数据包 长的说: 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。 因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么? 1. GET与POST都有自己的语义,不能随便混用。 2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。 3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次

代码逆流成河,深入C++如何又快又有效?

爷,独闯天下 提交于 2021-01-31 11:19:12
C++ 作为一门底层可操作性很强的语言 ,广泛应用于游戏开发、工业和追求性能、速度的应用。 比如鹅厂,无论游戏,还是IM, 整个体系的后台几乎都是 C++ 开发, 对 C++ 开发者的需求非常大 。 但问题是C++入门和精通都比较困难,所以市面上的优秀人才很少。 因此网上有句话说“ C++就是入职大厂的敲门砖! ” 最近,一直有粉丝想让我推荐C相关的课程,但从来都没推荐过。 不是没有,而是我看过后都感觉讲的不透彻。 但是今天要特别推荐1个 《C+ + 项目开发4天实战特训营》。 是我的老朋友胡船长专门开的一门课,我听过他讲的不少课,把C++讲的非常透彻! 计软专业的同学基本都知道ACM竞赛,它是公认最顶级的算法竞赛,被称为『算法竞赛的奥林匹克』。 胡船长就曾拿过ACM亚洲区金牌,并2次晋级全球总决赛,与来自麻省理工、哈佛等世界名校的顶尖团队同台竞赛。 这个特训营他会全程亲自授课,通过4天时间带你 深入C++核心编程 , 完成1个google测试框架 ,并教你如何 撰写简历 、 应对大厂面试! 特训营 原价 399 元 ,限量 100 个优惠 名额, 仅需 1 元 即可入学! 只要你是统招本科及以上学历,就可以抢占! 长按3秒 即可扫码 你现在长按识别上方二维码或点击阅读原文,即可了解课程详情或直接抢占 1 元优惠名额, 快速掌握 C++ 核心知识。 本文分享自微信公众号 -