- 博客(39)
- 收藏
- 关注
原创 结束语:网络协议
大家好,我是Chris。我其实很早就有想要讲这个专题的准备,但是一直在“Come on”,“放弃吧,时间不够”来回的挣扎。你们知道,我是有一份全职的工作,而且还兼职在一家培训机构做讲师。再加上写文章和专栏。所以这个难度也是可想而知的。这个专栏也是从筹备到上线到完结大概100天吧。很多事情就是这样,做的时候觉得很难,现在回头看,感觉一切的挣扎都是值得的。当然如果可以得到你的一个肯定,我肯定会更加的开心。我原本的计划可能只有20篇,后来再和编辑不断的交流以及我偶尔爆发的洪荒之力下,硬是写出了32篇。这哪里能
2021-05-28 18:55:46 209
原创 7-6 安全实战(ntop,cacti,Snort)
我们来学习如何利用一些特别智能的工具,这些工具可以为你提供有关网络运行状况的稳定,快速,直观的更新,提供深入的历史数据表示,当发现可疑的行为时会及时警告,并持续进行涉及你所关心的网络节点的漏洞评估。如果你要启动一些面向互联网的应用程序,那么你确实应该考虑将某些甚至全部这些功能集成到你的基础架构中。ntop像Unix中的top指令一样,能够实时显示系统中各个进程的资源占用状况,ntop使你可以密切注意网络上的情况。当以混杂模式(默认设置)运行时,ntop将监视和报告所有流量,无论它是否针对你的特定主机。在
2021-05-28 18:54:18 234
原创 7-5 网络攻击防范-渗透测试
Internet Edge现在,Internet边缘已成为我们内部专用设备和Internet之间的网络中的一个位置。我们的内部专用设备通常假定内部网络中传递的数据是安全的。如果我们的其中一台设备上装有病毒或恶意软件,那可能会改变。但是在大多数情况下,我们假设内部网络中的流量与Internet上的流量相比是安全的。数据包仅需满足在互联网上传递的最低要求,这使得攻击者可以将有效载荷放置在几乎任何他们想要的数据包上,这使攻击者经常可以利用我们内部设备中的漏洞。因此,我们要防止发生的事情就是像在防火墙中那样做。防
2021-05-28 18:54:02 389
原创 7-4 常见的攻击方式
DOS 攻击我们这里来讲一下DOS(拒绝服务)攻击。DoS攻击是很久以前开始的,可以追溯到90年代中期,即Windows 95出来之后,就出现了DOS攻击,这是利用了Windows 95设备上的一个漏洞。这个漏洞就是你可以发送一条专门的ping消息,该消息中的有效负载包含“专门的“一个消息,这将导致Windows崩溃并给出著名的死亡蓝屏。这就是一种拒绝服务攻击(DOS Attack)。当然数十年前就已对此进行了修补,但这是最早在家用设备中流行的DOS攻击之一。另一种攻击类型是分布式拒绝服务攻击(Distr
2021-05-28 18:53:49 202
原创 7-3 漏洞和漏洞利用的讲解
漏洞和漏洞利用我们今天来开始看一下漏洞,我之前就有提到过,其实漏洞是到处都存在的。我现在以我的房子为例,从安全角度来看,我的房屋中也存在一些漏洞。谁家都有窗户对不对。就是那种玻璃窗,其中一些在房子前面,这些玻璃很容易损坏。每天都会有成百上千的人在我家前面走过,但是没有人利用该“漏洞“并为其创造漏洞利用程序。那什么叫做漏洞利用(Exploits)?漏洞利用就是有个人走过来说:这房子很容易进入呀,然后拿起一块巨石,扔进我的窗户。这个时候,这个石头已经成为了一种攻击,对不对?石头利用了我的窗户是玻璃的的这种漏
2021-05-28 18:53:35 243
原创 7-2 身份验证和访问控制
AAA我们先从AAA开始(你一定很迷惑,什么是AAA)英文就是(authentication, authorization, and accounting)- 身份验证,授权和审计。我们先来看一下身份验证部分。身份验证就是你的用户名和密码。你输入用户名和密码以后,以此来获得进入的权限。没有此处的第二个组件,用户名和密码显得有一点毫无意义那就是 - 授权授权就是你的特权和访问权限。换句话说,也就是在你登入的系统中,你可以访问哪些软件,你可以访问哪些文件共享,你可以访问哪些计算机和服务器?因此,.
2021-05-28 18:53:23 139
原创 7-1 物理安全设备的安全
从这一章开始,我们要开始讲解和介绍网络安全。我们先来看一下物理安全设备,可能这个是最被大家所忽视的一部分。因为基本不会有哪一门课会讲解这个。让我们来一起开始吧。视频监控提到视频监控,我相信大家都不会陌生,当然有好的有坏的,比如某些你上的网站(你懂得),我就不说了,还有我们马路上的监控,商场里的监控等等。如今,摄像头已经变得非常便宜。其实我们大多数人都会随身携带一个摄像头(你的手机),这在15或20年前是完全闻所未闻的。另外,你也在网上可以购买连接网络或者无线网路的摄像头,而这在过去10到20年中是没有.
2021-05-28 18:53:07 168
原创 6-5 SSH是如何通信和调试的
通信协议我们今天来谈论一下SSH,Secure Shell和Telnet,这是两种广泛使用且非常有用的基于UNIX和Linux的远程通信协议。首先来看一下基本的概念,通信协议是一组公认的规则,用于建立同步方法和通信会话的各方将使用它们来管理其交换。广泛采用的协议允许硬件制造商设计能够与其他网络设备和软件开发人员进行可靠通信的产品,以满足他们的软件可能面临的连接需求。开放系统互连模型OSI是网络连接的通用且有用的概念,它将整个过程分为七个不同的层,这是我们最开始就讲过的。例如,如果我在访问Internet
2021-05-28 18:52:52 162
原创 6-3 SMTP通信的原理
什么是通信?什么是通信?这个可能是一个比较文绉绉的词,说白了就是计算机之间的交流,唠嗑。我们从出生开始就一直在唠嗑。所以你应该对这个词不陌生。你细想一下,你唠嗑是为了啥,是不是在交流我们的需求。而且唠嗑也是我们用来了解某人的方法,比如你看上了一位美女,你直接要微信是不是比较鲁莽,除非你和老师一样帅(开玩笑)。你是不是应该先去聊聊天,唠唠嗑,然后再要微信。在微信上可以继续的聊天,交流你们之间的感受。因此,交流是将我们的想法与其他人联系起来的机制。好,现在不要想小姐姐了,想想比较实际的。思考一下每天与.
2021-05-28 18:52:23 291
原创 6-2 NAT的优势与劣势
为什么需要NAT?IP地址被设计为全球唯一且可全球访问。IP寻址是支持Internet端到端体系结构的基础。1990年代初期,Internet的爆炸性增长不仅预示了IP地址空间耗尽的危险,而且对IP地址本身也产生了即时的需求。现在,我们需要连接大量的用户网络和家用计算机,它们都需要大量的IP地址。 IPv4寻址方案中只有40亿个地址,而我们拥有的计算机比这多出十亿,当然也有比这个数字大的多的多的人口。这就更加造成了IP地址的不足。NAT就在这个时候出现了。它可以满足这一快速上涨的需求(这就是所谓的,站在风
2021-05-28 18:52:06 175
原创 6-1 DNS的运作原理
我们的课程已经过一大半了。先给自己一个奖励。当然也感谢你愿意继续的和我这段学习旅程。我们今天一起来看一下DNS。其实前面已经多多少少讲了一些DNS的工作原理。今天还是由浅入深的来看一下。主机文件和DNS缓存我将从hosts文件开始我们DNS的旅程。自DNS诞生以来,hosts文件就已存在。当Internet还仅仅由MIT,军方和少数其他组织组成的时候,hosts文件时一种对IP地址解析名称的简便方法。但是随着互联网的发展和壮大,你能否想象拥有一个包含每个网站及其相应IP地址的主机文件?答案当然是不可能
2021-05-28 18:51:41 97
原创 5-5 HttpClient api的讲解
HttpClient APIHttpClient API是在2018年9月发布的Java 11中引入的。但是,它早在Java 9的前一年就已经可以作为预览功能使用。因为API需要一段时间的打磨才能变得成熟和完善。所以,从Java 11开始,HttpClient API是Java标准库的一部分。这意味着你不需要再向应用程序添加任何外部依赖关系即可使用此API。 HttpClient API替代了在Java标准库中存在了很长时间的HttpURLConnection API。稍后,看我心情要不要说一下为什么需要
2021-05-28 18:51:26 500
原创 5-4 HTTPS的安全是来自SSL吗?
我们前面在讲解HTTP1和HTTP2的时候,有意无意的提到过HTTPS。现在来认真的分析一下这位名正言顺的皇亲国戚。Certificate AuthoritiesCertificate Authorities - 证书颁发机构(CA)是HTTPS能够实现安全通信的必要的基本组成部分。这些颁发的证书要加载到网站中,以便客户可以安全地进行通信。每次你通过HTTPS的连接来浏览网站时,该网站的拥有者都会使用颁发机构给的证书来验证其对该域名的所有权(这么好的事,怎么会是免费的呢?这个是需要花钱买的,比如Glob
2021-05-28 18:51:07 83
原创 5-3 HTTP2的优势在哪里?
上一小节我们讲了HTTP1的缺点以及简单的介绍了一下HTTP2。这一小节,让我们来认识HTTP2多一点。多向请求和响应(解决了http1.x的队列阻塞)多向请求与响应在 HTTP 1.x中,如果客户端想发送多个并行的请求以及改进性能,那么必须使用多个TCP连接。这是HTTP 1.x交付模型的直接结果,该模型会保证每个连接每次只交付一个响应(多个响应必须排队)。更糟糕的是,这种模型也会导致队首阻塞,从而造成底层TCP连接的效率低下。HTTP 2.0中新的二进制分帧层突破了这些限制。客户端和服务器可以把H
2021-05-28 18:50:44 109
原创 5-2 HTTP流量控制的问题
上一小节我们做了这个关于HTTP的介绍。那我们今天来看一下, 到底Http有什么缺点, 我们必选要把这个功不可没的元老换掉呢。队头阻塞(Head-of-line blocking) :你想这么一个场景呀。客户发了Data1,回复收到,然后发了Data2, 但是丢了, 客户端这边不会等呀, 继续发Data3,但是server这边收到了Data3,却没有Data2,就苦苦的等呀等。直到收到了Data2,发ack2给客户端, 才会继续。所以在server这边,这个就会增加时间。也就是不能给他的应用层发送任何
2021-05-28 18:50:31 301
原创 5-1 HTTP的介绍以及常见的状态码
我们今天开始来看一个重中之重的话题,那就是HTTP。开始我们的话题之前,不知道你面试的时候有没有遇到过HTTP的问题呀。我们先来自我检测一下,下面的这些题你都能回答上来吗?Http与Https的区别?URI和URL的区别?HTTP方法有哪些?一次完整的HTTP请求所经历。常见的HTTP相应状态码。什么是HTTP?http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。题外话->我面试阿里的时候呢, 就被问到了知不知
2021-05-28 18:50:16 141
原创 4-4 TCP拥塞机制和算法
首先我们可以肯定的是TCP协议是可靠的。这就是我们前面讲的TCP知识。它是可靠地从网络上的一个端点到另一端点获取数据,但是它不希望使两者之间的网络不堪重负。TCP不想非常快的就开始发送数据,这样会导致拥塞和数据包丢失。同样,TCP也不想“欺负”其他的网络,把其他所有协议都淘汰掉,优先考虑自己的流量。因此,通过TCP拥塞控制,TCP能够确定网络上的拥塞并相应地调整其传输速率。这可能与你想象的有一点不同。通常,我们开始传输该文件,并且我们想象的是,发送速度逐渐提高,并逐渐接近带宽。我们能够用吞吐量完全填满网络
2021-05-28 18:50:01 79
原创 4-3 UDP通信
我们前两小节学习了传输层的TCP,其实在同一层上存在着两名王者,另一位就是UDP。一山不容二虎,为什么在同一层需要TCP和UDP两个类似的协议呢?那他们的区别和优势又各是什么呢?还是那句老话,存在即合理,我们之前讲的TCP在传输数据之前需要通过三次握手来确保稳定的连接,然后再开始传输数据,而UDP却不然。UDP是客户端说我需要数据ABC,服务器会直接发送过来,所以这个传输自然是没有任何的保证。他们之间没有任何的会话连接,只是说我需要数据,然后服务器就会给数据,就是这么简单,就是这么“美好”。所以这里没有.
2021-05-28 18:49:44 113
原创 4-2 TCP通信的详解
我们之前学习IP的时候,就是把IP的header彻底的分析了一番是不是,既然我已经给自己挖了这个坑,就一定要把这个坑填好,我们现在来一起学习一下TCP的header。TCP Header上图就是一个TCP Header的文件。我们还是一点点的来分析。Source Port(源端口):源TCP的用户Destination Port(目标端口):目标TCP 用户的端口Sequence Number(序列号): 第一个数据字节的序列号(SYN标志除外)。如果设置了SYN,则此字段包含初始序列号(ISN
2021-05-28 18:49:27 118
原创 4-1 TCP之三次握手和四次分手
不知不觉我们已经来到了第四部分,这里我们会开始来详细的讲解TCP和UDP,也就是传输层部分。我们首先来看一下协议中的王者TCP。相信你最熟悉的就是三次握手了。我们上一章详细讲解了IP,也就是第三层网络层的主要协议,现在我们开始看一下传输层的重要协议TCP。TCPTCP的全称是Transmission Control Protocol。这个协议的目的就是创建一个Session,通过这个Session来传输数据。我们在数据链路层查看了源和目标Mac地址,并看到了这些Mac地址是使我们能够将流量从一台设备
2021-05-28 18:49:03 87
原创 3-4 网络拆分与子网的框架
我们上一小节了解了未来的这个钻石王老五IPV6,现在让我们回来继续了解当今还高高在上的IPV4。这就是理想很丰满,现实很骨感,IPV6固然好,但是现在还是IPV4的世界,所以我们还是要知己知彼。子网的框架我们先来看一下子网的框架。还是先看一个例子IP:203.0.113.10子网:255.255.255.0我们前面是不是已经讲过或者说介绍过了子网掩码的问题。为了进行子网划分,我们必须首先转换为二进制。也许还有别的方法,但是我始终觉得二进制是解决这类问题的杀手锏。所以,当我们使用这些地址时,请切记
2021-05-28 18:48:45 164
原创 3-3 IPV4与IPV6的硬钢
IPV6的成长史IPV6其实已经是一位80后。它生于八十年代后期,当时的工程师们已经意识到IPV4的空间正在迅速耗尽。然后到了1995年左右,IPV4进行了一次挣扎。那就是实现了子网技术(我们前面有讲过),这样就可以缓解IP地址不足和遍及全球的问题。从那时起已经过去了20多年,我们现在才刚刚开始看到IPV6在世界上的快速发展和部署。(我记得我2011年的时候想要去考CCNA,IPV6的知识设计的很少)。那么这是否意味着我们将立即转成IPV6吗?那当然是极不可能的。比如在医疗保健领域。IT的技术不是那么的先
2021-05-28 18:48:27 92
原创 3-2 IP地址的种类
通过上一小节,相信你对IP有了一个初步的认识。这一小节,和我一起来了解一下IP地址的黑历史。以及它的演变进程。分类网络现在和我一起来一次时间旅行,boom!我们回到了1981年,这一年开始出现了分类网络。我们来看一下它的工作方式是什么。这是子网掩码出现之前的事情。因此,如果你生活在1985年,那么你要在设备上输入IP地址。是没有子网掩码的。我们不需要子网掩码,为什么?因为它还不存在呢。也就是说还没有出生呢。分类网络确定了网络部分和地址的主机部分。根据地址类别,我们有5个A,B,C,D和E类。具体的分类
2021-05-28 18:48:11 53
原创 3-1 IP地址的类型
今天开始我们来看一下你可能听过的最多的一个概念,即使你不是工程师,你可能也听过这个词IP,当然可能IP的意思不一样。所以为了澄清,首先我们要来说一下我们的IP是什么?这里的IP不是Intellectual property,不是指的disney的Star wars。而是网络里面的IP即Internet Protocol。IP是一个很有用而且很复杂的概念。这也是为什么我要用一整章来讲解。什么是IP?那什么是IP或者说什么是IP地址呢?IP地址用由句点分隔的四组数字组成。我们前面的二进制里面也讲了这一点对不
2021-05-28 18:47:50 138
原创 2-3 16进制与十进制的互换
十六进制这个词可能你第一次听会觉得很吓人,但是当你了解了它之后,很快你就会发现它是你的好朋友并且会爱上他。现在让我们一起来看看这个小可爱。我们前面已经讲过了二进制,8进制以及你从小就知道的十进制,让我们来对比一下这些数值。对于从0 到9,对于16进制来说其实是没有区别的。Binary(二进制) 十进制 16进制0000 0 00001
2021-05-28 18:39:30 184
原创 2-2 二进制与十进制的互换方法
Hello, 大家好,希望上一节课的基础,大家都已经掌握了。那我们就来继续这一小节的学习,来看一下1+1=2这一道永远的难题。二进制的运算 - 加法和减法加法加法从基础来说,和普通数字的加法也没有什么太大的区别。加法都是从右向左,一次一个数。在每一个点上,都会生成一个和的数字以及一个要进位的数字。当然我们这里不是每到9才产生一个进位,而是每到2就会产生一个进位。那我们现在来做一道小小的加法11 + 3 = ?你肯定知道是14吧。哈哈。那让我们来看一下在二进制里是怎么做呢?11 的二进制表达式 -&g
2021-05-28 18:39:02 173
原创 2-1 二进制与十进制的互换方法
我们今天开始进入新的一章-二进制。相信很多人知道二进制是0和1,但是具体的细节可能没有那么的清楚。如果你已经了解了,完全可以跳过这一章(虽然我还是建议你把这章好好看一下)。因为这一章本身就是为了温习一下基础知识。现在就我们一起坐上这辆时光机器来重温一下曾经的学习。让我们进入二进制101的世界。正常计数时,我们以10为基数。我们通常不会去考虑规则,因为计数已成为我们生活中如此重要的一部分。大多数时候,我们使用的编号系统甚至没有怀疑或者注意过是什么规则,为什么只有从0-9。我们最有可能以10为底数,因为我们有
2021-05-28 18:38:40 152
原创 1-5 应用层
可能细心的小可爱-你已经观察到了,我们虽然讲的是OSI,章节却是按照TCP/IP四层来讲的。所以我们今天会把会话层,表示层以及应用层一起讲。之所以这么讲就是也是因为第五和第六层可以不用考虑。在现代网络中,我认为它们并不完全重要(不重要在这里是说你在debug的时候,可以不用考虑,即使是网络工程师,当然作为软件工程师的你也不需要考虑这些)。我同意其他某些人的观点,存在即合理。有些协议确实在第五层和第六层起作用(当然是因为之前网络还没有那么发达,或者类似于IBM这种一家独大的时候,可以做一些事情来垄断,现在已经
2021-05-28 18:37:12 107
原创 1-4 传输层-TCP与UDP
现在,让我们继续前进。我们来一起看下一层。在上小节中,我们通过了IP知道要把包裹发给谁。我们现在必须进行设置在客户端和服务器之间建立某种会话或者说是连接,这其实和打电话时的情况非常相似,仔细想一下是不是?你打电话的时候,知道对方的电话号码也就是IP,那你怎么和对方通话呢。你不可能拿起电话就能直接说话了吧。你肯定希望它能和想要说话的人连接。你必须在自己和与之通话的人之间建立会话,对不对?我可以拿起手机,找到要呼叫的人的名字,或者在电话上拨打他们的电话号码。然后我会听并等待它响起。我会等我的朋友回答,当他们回答
2021-05-28 18:36:53 88
原创 1-3 网络层-IP
网络对网络的连接使互联网成为可能。 “网络层”是Internet通信过程的一部分,通过在不同网络之间来回发送数据包来进行这些连接。在7层OSI模型中,网络层是第3层。该层确定如何将数据发送到接收设备。它负责数据包转发,路由和寻址。在网络之间以数据包的形式传输数据段。当你向朋友发送消息时,此层将源IP地址和目标IP地址分配给数据段。你的IP地址是源,而你的朋友的IP是目的地。第3层还确定了数据传递的最佳路径。Internet协议(IP)是该层使用的主要协议之一,另外还有一些其他路由,测试和加密协议。假设美
2021-05-28 18:36:33 152
原创 1-2 物理层与数据链路层
物理层本来是想要一层层的来介绍。但是物理层确实没有太多你需要知道的内容。你可以理解为就是物理连接,(如果面试问你网线怎么做的话,转身就跑,这是要让你去干苦力呀)。还好TCP/IP模型也为我开了这个后门,把这两层放到了一起叫做数据链路层,所以我就可以冠冕堂皇的说我是按照TCP/IP来讲解的。即使没有太多要讲的,还是要讲,存在即合理。说明物理层肯定是做了一些有作用的工作(只是作为工程师的你没有必要知道这些细节)。不然也就没有存在的必要了对不对,我们来试想一下,每一层是不是都有它的作用,物理层也必然如此。它的
2021-05-28 18:35:58 118
原创 1-1 OSI与TCP/IP模型的比较
相信很多人即使没吃过猪肉也看过猪跑(不知道谁说的老话,我要是猪肉都吃不起,去哪里看猪跑)。Anyway,我相信你即使不知道OSI 模型的详细内容,但你一定听过OSI 7层协议(可能不知道是哪7层)和TCP/IP 4层协议。你一定会很疑惑,既生瑜何生亮,为什么有了OSI,还需要TCP/IP协议。那我们先来看一下什么是OSI网络模型?什么是TCP/IP模型?以及这两种模型的比较。什么是OSI网络模型?OSI英文全称叫做(Open System Interconnection Model). 中文全称叫做开
2021-05-28 18:34:57 236
原创 开篇词:网络协议 让我来揭开你神秘的面纱
你好,我是Chris。现在在亚马逊任职工程师。本硕留学美国,之后在美一直工作至今,本科方向通信,研究生毕业于美国纽约大学 - 研究网络方向。从毕业至今,我一直从事软件工程师的工作,包括前端,后端,devops,架构。做过资深工程师也做过Tech Lead,有着丰富的和网络相关的经验。经过多年的摸爬滚打深深的体会到网络协议和数据机构还有算法一样都是必备的基础知识。前端 - 比如怎么去优化网页的加载,包括DNS,TCP等等。。后端 - 为什么需要HTTPS?为什么HTTP1.1已经不够好了,我需要HTTP
2021-05-28 18:34:09 137
原创 NPM是什么?
npm是什么?我们来谈谈npm - Node Package Manager。npm使JavaScript开发人员可以做三件事。与他人共享代码。在项目中重用自己的代码。以及在项目中使用其他人编写的代码。因此,npm基本上是关于代码共享和可重用性的。如果你想与他人共享一段JavaScript代码,或者只是想在其他项目中重用,那么npm是你需要的工具。但是npm也是关于使用较小的程序包来组合成较大的应用程序。其他人已经努力的完成了某些任务,因此你不必从头开始。通常,npm是从事任何JavaScr
2021-03-01 10:57:25 1187
原创 字节跳动 2021 春招面试高频题3
描述给定一系列的会议时间间隔intervals,包括起始和结束时间[[s1,e1],[s2,e2],…] (si < ei),找到所需的最小的会议室数量。案例样例1输入: intervals = [(0,30),(5,10),(15,20)]输出: 2解释:需要两个会议室会议室1:(0,30)会议室2:(5,10),(15,20)样例2输入: intervals = [(2,7)]输出: 1解释:只需要1个会议室就够了解析我们来看一下这道题,你仔细想一下,虽然题的
2021-02-22 11:00:26 543
原创 字节跳动 2021 春招面试高频题2
今天我们来看一下字节跳动的另一类高频提,叫做Meeting Room。先来看一下题问题描述给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。例子输入: intervals = [(0,30),(5,10),(15,20)]输出: false解释:(0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突输入: intervals = [(5,8),(9,15)]输出: true
2021-02-19 10:02:08 439
原创 字节跳动 2021 春招面试高频题1-有序数组的平方
字节跳动 2021 春招面试高频题1-有序数组的平方问题描述给定一个以升序排序的整数A数组,返回每个数字的平方的数组,也以排序的升序排序。示例输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]解法首先拿到一个算法题,除非是你做过,知道算法,或者是对算法了然于胸,可以一步到位,对于大多数的同学,可以先试着用暴力的方法先来考虑,首先,暴力的算法你能想到怎么做?解法1既然是求平方的数组,那是不是我可以第
2021-02-17 22:11:38 200
原创 unittest详解-你给我过来呀!
最初,Python单元测试模块unittest是JUnit的一部分,该部分由Kent Beck和Erich Gamma于1997年创建。Unittest在2001年首次包含在Python 2.1版中,当时,JUnit是一个新兴标准,被翻译成多种编程语言。所有这些小弟都被称为xUnit框架,它们的工作方式基本上相同。当然,从那时起,JUnit和unittest模块都进行了很多改进,实际上它们不再完全相似。但是随着时间的流逝,这些原因变得不那么重要了。废话不多说,直接上干货。小试牛刀 - 第一个小案例我现
2021-02-10 10:40:23 311
原创 爬虫和数据分析初体验
爬虫和数据分析初体验为什么要抓取网络?Web 抓取的过程准备环节实操环节我们要了解一个东西,要知道为什么做,而不是因为别人做而做。为什么要抓取网络?我们来看一下Web抓取有什么用。为什么这么多人趋之若鹜。基本问题是为什么我要抓取网络。当然是因为有利可图,无利谁肯早起,对不对?Web抓取有什么好处呢处?我将以一个Web抓取的业务模型来作为例子,每个Web页上面有大量的数据。在所有这些Web网页中,Google已经识别出超过100万亿页,并且每天还在不停的新增。这是大量,不,应该说是海量的数据。如果有AP
2021-02-08 05:25:45 302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人