计算机基础
文章平均质量分 70
ScratKong
劝君惜取少年时
展开
-
单点登录 (SSO)
单点登录(SSO) 英文全称Single Sign On,人话:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。如图所示,图中有4个系统,分别是Application1、Application2、Application3、和SSO。Application1、Application2、Application3没有登录模块,而SSO只有登录模块,没有其他的业务模块,当App...转载 2019-07-19 11:49:23 · 520 阅读 · 0 评论 -
可扩展的事件复用技术:epoll和kqueue
什么是事件复用技术假设你有一个简单的web服务器,并且那里已经打开了两个socket连接。当服务器从两个连接那里都收到Http请求的时候,它应该返回一个Http响应给客户端。但是你没法知道哪个客户端先发送的消息和什么时候发送的。BSD套接字接口的阻塞行为意味着,如果你在一个连接上调用recv()函数,你就没办法去响应另外一个连接上的请求。这时你就需要I/O复用技术。 I/O复用技术的一个直接方...转载 2019-07-18 16:37:28 · 372 阅读 · 0 评论 -
什么是 DNS,有什么作用?为什么需要更换公共DNS服务器?
基本上接触过网络相关知识的人应该多少都会听过 DNS 这个名词。因为它非常重要,在我们上网的过程中扮演着重要的角色—“将网址/域名解析成 IP 地址”。如果配置了不合理的 DNS 服务器,可能会导致网速缓慢、打不开网站;一些恶意的 DNS 还会让你电脑出现弹窗广告、网站被劫持修改 (中间人攻击)、监听等等一系列的安全问题。DNS 的全称是 Domain Name System 或者 D...转载 2019-05-22 17:22:14 · 26799 阅读 · 0 评论 -
集线器、网桥、交换机、路由器、网关大解析
source:https://www.tianmaying.com/tutorial/NetWorkInstrument 1 集线器 1.1 功能概述集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(一...转载 2019-05-26 10:12:45 · 780 阅读 · 0 评论 -
详述银行卡支付方式
博主说:在众多的支付方式中,银行卡支付是一种比较常见的支付方式, 其包括线下支付和线上支付两种,线下支付就是常见的 POS 机支付;线上支付主要为网银支付和快捷支付等。本文主要讲述了银行卡支付的几种方式以及对接银行接口时需要着重注意的一些点。正文 说说大家比较熟悉的银行卡支付,它分为线上支付和线下支付两种形式。线下支付就是通常说的 POS 收单,这里不介绍这个内容。对线上支付,按照卡...转载 2019-03-18 20:48:21 · 4183 阅读 · 0 评论 -
跳跃表原理
最近看了一种数据结构叫做skipList,redis和levelDB都是用了它。Skip List是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,查找特定值的时间复杂度为O(logn),他是一种可以代替平衡树的数据结构。源地址:http://kenby.iteye.com/blog/1187303为什么选择跳表目前经常使用的平衡数据结构有:B树...转载 2019-03-16 21:54:04 · 262 阅读 · 0 评论 -
MySQL中char与varchar区别,varchar最大长度是多少?
一、首先来说下字符与字节的区别:字符与字节它们完全不是一个位面的概念,所以两者之间没有“区别”这一说法。在不同编码里,字符和字节的对应关系是不同的。一般来说,半角英文状态下一个字母或数字(称之为字符)占用一个字节,一个汉字用两个字节表示。在不同的编码方式下一个字符占的字节数是不同的,所以两者是不能划等号的。 1个字节(Byte)等于8个bit位,每个bit位是0/1两种状态,也就是说一个...转载 2019-03-04 21:25:56 · 478 阅读 · 0 评论 -
事件驱动模型与IO多路复用
传统模式传统的编程是线性模式的:开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据。输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->...转载 2019-03-04 21:52:09 · 712 阅读 · 0 评论 -
logN的底数究竟是多少
问题:关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。解答:算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。不过无论底数是什么,log级别的渐进意义是一样的。也就是说该算法的时间复杂度的增长与处理数据多少的增...转载 2019-03-01 09:36:29 · 6107 阅读 · 0 评论 -
Python目录
写在前面: 整个IT产业只是在共同做好一件事--------信息(数据)的处理,对有用信息提取,存、增、删、改、查,然后更好的呈现在客户面前。 本文主要涵括博主以Python为主的后端体系技术点介绍,以及关于工作、学习的心得,与同行、同好交流分享。 语言、框架都只是工具,重要的是思想。日常工作学习中不应只满足于熟练调用接口,虽然技术日新月异,但万变不离其宗...原创 2019-08-17 21:04:29 · 22849 阅读 · 16 评论 -
数据结构----图
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G(V,E), 其中 G表示为一个图, V 是图G中顶点的集合,E是图G中边的集合。对于图需要注意的点:线性表中,数据元素叫元素,树种将数据元素叫节点,图中的数据元素,叫顶点(Vertex)。 图中任意两个顶点之间都可能有关系,不像树层次关系的层级限制,而线性表只有相邻元素有线性关系。图中的定义:无...转载 2018-12-25 10:21:52 · 334 阅读 · 0 评论 -
HTTPS原理和CA证书申请(满满的干货)
众所周知,WEB服务存在http和https两种通信方式:http默认采用80作为通讯端口,对于传输采用不加密的方式。 https默认采用443,对于传输的数据进行加密传输。目前主流的网站基本上开始默认采用HTTPS作为通信方式,一切的考虑都基于对安全的要求,那么如何对自己的网站配置HTTPS通信,是本文着重介绍的。本文的主要内容包括:https加密传输的原理、 如何申请http...转载 2018-11-22 13:43:50 · 385 阅读 · 2 评论 -
二分查找Python实现
二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后...转载 2018-10-25 00:22:34 · 569 阅读 · 0 评论 -
数据结构之二叉树及其Python实现
目录二叉树二叉树的基本概念二叉树的性质(特性)二叉树的节点表示以及树的创建二叉树的遍历深度优先遍历广度优先遍历(层次遍历)二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(i-1)个结点...转载 2019-07-10 15:20:09 · 517 阅读 · 0 评论 -
数据结构之队列
目录队列队列的实现双端队列队列队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从...翻译 2018-08-08 14:25:17 · 691 阅读 · 0 评论 -
计算机操作系统
目录引言操作系统的发展微机操作系统的发展操作系统基本特性操作系统的主要功能引言计算机系统由硬件和软件两个部分组成,操作系统(OS operating system) 是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。操作系统的目标:有效性:提高资源利用率和系统吞吐量。 方便性:配置OS后可以使计算机更容易使用。 可扩充性:便于方便的增加新功能哦快。 开...原创 2018-08-25 09:59:06 · 905 阅读 · 0 评论 -
协程(微线程)、greenlet、gevent
协程 协程(Coroutine) 是python中另外一种实现多任务的方式,比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。通俗的理解: 在一个线程中的某个函数,可以在任何地方保存当前函数的...原创 2019-08-18 09:55:44 · 573 阅读 · 0 评论 -
多任务----进程
进程进程 vs 程序程序:例如xx.py这是程序,是一个静态的文件。 进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。多任务不仅可以通过线程完成多任务,进程也是可以的进程的状态 工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运...翻译 2019-08-17 21:01:04 · 443 阅读 · 0 评论 -
多任务----线程、同步、互斥锁、死锁
多任务 简单来说,就是同时进行多个任务,比如一边上班一边刷手机,咳咳。。。一边唱歌,一边跳舞,一边打篮球,一边还偷瞄旁边的妹子,嗯,这都是多任务。罗宾的技能,以及千手观音,哪吒三头六臂。通常的程序是这样式儿的:# 顺序执行(非多任务)from time import sleepdef work(): for i in range(3): ...原创 2019-08-16 15:57:39 · 737 阅读 · 0 评论 -
网络编程基础-------计算机网络快速一览
目录基本概念网络分类网络体系结构IP协议 IP地址及相关 关于地址转换端口网络编程的基础是计算机网络,计算机网络可以展开讲很多,这里只是 概括的讲述计算机网络体系的基本知识。基本概念计算机网络 通信的链路(分为有线/无线链路)连接到一起的一组计算机/设备的集合,通信技术与计算机技术的产物。以太网、因特网、互联网、...原创 2019-08-15 09:28:58 · 980 阅读 · 0 评论 -
正则-------Python re模块
什么是正则?假如现在你用python写一段代码,类似:phone_number = input('please input your phone number : ')你怎么判断这个phone_number是合法的呢?根据手机号码一共11位并且是只以13、14、15、16、17、18、19开头的数字这些特点,用python写如下代码:判断手机号码是否合法:# 方法1...转载 2019-08-06 17:42:02 · 443 阅读 · 0 评论 -
二十三种设计模式及其python实现
本文源码寄放于github:https://github.com/w392807287/Design_pattern_of_python参考文献:《大话设计模式》——吴强《Python设计模式》——pythontip.com《23种设计模式》——http://www.cnblogs.com/beijiguangyong/一、设计模式是什么?设计模式:经过总结、优化的,...转载 2019-02-16 17:16:28 · 615 阅读 · 0 评论 -
深入理解Linux守护进程
深入理解Linux守护进程 Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进...转载 2018-08-07 20:46:07 · 1454 阅读 · 0 评论 -
linux普通进程,后台进程,守护进程
一、普通进程与后台进程默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的:zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ./zkServer.sh start &[1] 21304z...转载 2018-08-07 20:34:10 · 229 阅读 · 0 评论 -
IP地址,MAC地址的区别与联系
一、IP地址是指互联网协议地址,是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。目前还有些ip代理软件,但大部分都收费。IP地址分为公网IP与局域网IP(因为IP地址数量有限,所以花分了3个私网IP网段,用来在(仅在)局域网使用)分别是:A类 10.0.0.0,B类 1...原创 2018-08-07 11:16:15 · 846 阅读 · 1 评论 -
docker与虚拟机实现原理比较
概要Docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论述docker与传统虚拟化方式的不同之处,并比较物理机、docker容器、虚拟机三者的性能差异及差异产生的原理。 docker与虚拟机实现原理比较如下图分别是虚拟机与docker的实现框架。 比较两图的差异,左图虚拟机的Guest OS层和Hypervis...转载 2018-08-14 22:37:11 · 303 阅读 · 0 评论 -
内核态、用户态。
用户空间就是用户进程所在的内存区域。系统空间就是操作系统占据的内存区域。用户进程和系统进程的所有数据都在内存中。 是谁来划分内存空间的呢?在电脑开机之前,内存就是一块原始的物理内存。什么也没有。开机加电,系统启动后,就对物理内存进行了划分。当然,这是系统的规定,物理内存条上并没有划分好的地址和空间范围。这些划分都是操作系统在逻辑上的划分。不同版本的操作系统划分的结果都是不一样的。 ...转载 2018-08-14 20:59:41 · 180 阅读 · 0 评论 -
数据库char、varchar的区别
在建立表的时候,给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下两者的区别。 1. char的长度是不可变的,而varchar的长度是可变的(不满不填充),定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了...原创 2018-08-10 11:35:36 · 334 阅读 · 0 评论 -
静态存储区、堆区、栈区
内存分配有三种:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。一、定义静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。栈区:在执行函数时,函数(包括main函数)内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容...转载 2018-08-09 20:53:26 · 267 阅读 · 0 评论 -
二进制、八进制、十六进制之间的转换
十进制---->二进制 : 待转换十进制数依次除2取余,所得余数序列反转即为所求。二进制----->十进制: 按位与权值相乘求和。(1,2,4,16.。。。。) 十进制-->八进制: 待转换十进制数依次除8取余,所得余数序列反转即为所求。八进制----->十进制: 按位与权值相乘求和。(1,8,64,。。。) 十进制---->十六进制:待转...原创 2018-08-09 11:52:46 · 380 阅读 · 0 评论 -
WSGI协议
WSGI(Web Server Gateway Interface )读作“wizgy”1.浏览器请求动态页面的过程2.WSGI是做什么的?比如要在建立的Web服务器上运行一个Django应用和Flask应用,如何不做任何改变而适应不同的web架构呢?在以前,选择 Python web 架构会受制于可用的web服务器,反之亦然。如果架构和服务器可以协同工作,问题便迎刃而解...原创 2018-08-09 09:29:00 · 950 阅读 · 0 评论 -
cookie 和session 的区别详解
cookie 和session 的区别详解这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内...转载 2018-06-24 21:38:23 · 166 阅读 · 0 评论 -
HTTP 与 HTTPS
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,...转载 2018-06-06 16:45:00 · 277 阅读 · 0 评论 -
从输入url到呈现页面
1.用户输入网址,浏览器发起DNS查询请求 用户访问网页,DNS服务器(域名解析系统)会根据用户提供的域名查找对应的IP地址。 域名解析服务器是基于UDP协议实现的一个应用程序,通常通过监听53端口来获取客户端的域名解析请求。DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分转载 2017-09-21 11:58:11 · 375 阅读 · 0 评论 -
看完让你彻底搞懂Websocket原理
闲话少叙,直接进入正题! 一、什么是websocket ? (websocket与http)WebSocket是HTML5出的东西(协议),与HTTP协议没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 什么?对HTTP也不太了解?可以看看Scrat的30分钟看懂HTTP首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个转载 2017-09-07 19:27:58 · 558 阅读 · 0 评论 -
TCP---三次握手四次挥手
什么是TCP? TCP是(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 传输层?对,简要的介绍下计算机网络的知识,计算机/计算机与服务器之间通过网络进行通信,为了规范通信数据的格式,普遍采用的分层的方式,常见的分层有OSI七层与TCP/IP五层网络架构,下图所示为OSI七层架构图示。 中间蓝色圆饼代表路由,原创 2017-09-19 10:15:14 · 533 阅读 · 0 评论 -
TCP之TIME_WAIT
在服务端可能会经常遇到有很多处于TIMEWAIT状态的TCP连接。如果上网一搜索,可以找到有很多关于处理TIMEWAIT不正确的博文(包括本文),很多文章就放了几个调整参数。至于这些参数有什么用,为什么要调整为那个值就没有深入地介绍了。这就好像生了病不去找医生了解病情,而是随便从别人的药箱里面找点药来吃,看看有没有效果,也不管别人的药是否过期,是否对症。所以,本文也来凑个热闹,来谈谈TIME_WA...转载 2018-08-07 21:55:17 · 385 阅读 · 0 评论 -
TCP长连接和短连接
TCP是面向连接的(在真正的读写操作之前,server与client之间必须建立一个连接)当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立通过三次握手,释放则需要四次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。TCP通信整个过程如下图:1. TCP短连接模拟一种TCP短连接的情况:client 向 server 发起连接请求 se...原创 2018-08-08 23:10:23 · 237 阅读 · 0 评论 -
什么是宏?什么是过程?
今天和大家分享一下比较有深度的理论知识:宏和过程。其实在写代码和操作EXCEL时很多的时候会有意无意的说出两句话“宏命令”,“过程函数”。那么这是怎么回事呢?宏又怎么称之为宏命令呢?过程又怎么能称之为函数呢?今天我就以我的视角来剖析一下,因为我不是专业的研究者,所以这里谈的只是自己的一家之言。首先,宏(Macro),是一种批量处理的称谓。就是把一些命令组织在一起,作为一个单独的命令完成一个特定...转载 2019-01-07 16:58:29 · 1326 阅读 · 0 评论 -
Ubuntu16.04虚拟机设置固定IP上网
由于经常需要直接在主机通过IP连接到虚拟机,所以上网搜了一些Ubuntu设置固定IP上网的方法,其中遇到了一些问题,参考了大神的博客内容,之后会列出原文链接,如果侵犯了您的权利,请与我联系删除,谢谢.设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:bridged、host-only和NAT, 其中NAT模式对应VMnet8虚拟网络,host-only模式对应VMnet1虚拟网络,bri...转载 2019-01-04 22:39:04 · 872 阅读 · 0 评论