目录
进制转换
1、进制定义2、各进制间的转换方法
2.1 二进制转其他进制2.2 十进制转其他进制2.3 八进制转其他进制2.4 十六进制转其他进制 信息单位
1、单位定义2、换算公式 数据校验
1、奇偶校验 多媒体基础参数
1、参数定义2、计算公式 HTTP
HTTP特性
请求报文POST 提交响应报文 cookie 和 Session的区别 HTTPS
1、加密算法2、SSL3、TLS4、证书与证书链 OSI七层模型IP基础
1、IP地址2、IP地址分类3、无分类地址CIDR4、小知识 IPv6网络拓扑
星型结构总线型结构环型结构网状结构树型结构 域名解析
1、域名规则2、域名解析类型3、泛域名解析 常用网络命令和端口
1、常用网络命令2、常用网络端口 数据结构常识
数组(Array)栈(Stack)队列(Queue)链表(linked List)树(Tree)堆(Heap)图(Graph)散列表(Hash) 算法常识
1、查找算法
顺序查找二分查找 2、排序算法
冒泡排序选择排序
进制转换 1、进制定义
二进制:是指在数学和数字电路中以2为基数的记数系统,二进制只有0和1两个数字符号,其运算规律是逢2进1,例如101101。
八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7这八个数字符号,其运算规律是逢8进1,例如77。
十进制:一种以10为基数的计数法,采用0,1,2,3,4,5,6,7,8,9这十个数字符号,其运算规律是逢10进1,例如88。
十六进制:一种以16为基数的计数法,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这十六个数字和字母符号,其运算规律是逢16进1,例如9527。
2、各进制间的转换方法 2.1 二进制转其他进制
二进制转十进制: 采用位置计数法,其位权是以2为底的幂,顺序从右到左,从0开始计数。
例如二进制数1011(二进制) = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11(十进制)。
二进制转八进制: 采用三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位来计算,不足三位的前面补0
例如:10110011B = (0)10 110 011 = 263(八进制)。
二进制转十六进制: 采用四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位来计算,不足四位的前面补0
例如:10110011B = 1011 0011 = B3(十六进制)。
2.2 十进制转其他进制
十进制转二进制
整数采用“除2倒取余”,小数采用“乘2取整”。
例如十进制数135转换成二进制时,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取,结果为10000111(二进制)。
十进制转八进制
和转二进制的方法类似,整数采用“除8倒取余”,小数采用“乘8取整”。
例如十进制数10转换成二进制时,将10除以8,得余数,直到不能整除,然后再将余数从下至上倒取,结果为12(八进制)。
十进制转十六进制
思路和转二进制、八进制一样,十进制数25转换成十六进制时,结果为19(十六进制)。
2.3 八进制转其他进制
八进制转二进制:和二进制转八进制的方法相反,采用三合一法,例如:263(八进制) = 010 110 011(二进制)。
八进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以8为底的幂,顺序从右到左,从0开始计数。例如八进制数26(八进制) = 2 * 81 + 6 * 80 = 22(十进制)。
八进制转十六进制:不能直接转换,需要先转成二进制,再将二进制转成十六进制。
2.4 十六进制转其他进制
十六进制转二进制:和二进制转十六进制的方法相反,采用四合一法,例如:B3(十六进制) = 1011 0011 = 10110011(二进制)。
十六进制转八进制:不能直接转换,需要先转成二进制,再将二进制转成八进制。
十六进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以16为底的幂,顺序从右到左,从0开始计数。例如十六进制数26(十六进制) = 2 * 161 + 6 * 160 = 38(十进制)。
信息单位
在计算机内部,信息都是釆用二进制的形式存储、运算、处理和传输的。信息的存储和传输是以位(bit)、字节(Byte)、千字节(Kilo Byte)、兆字节(Mega Byte)等计量标准为单位的。
1、单位定义
存储单位: 存储在计算机硬盘或内存中的信息容量标准,最小计量单位是“位”(bit,比特),一个比特位表示一个二进制的0或1在计算机中所占用的存储空间
传输单位: 在计算机网络中称为带宽,宽带传输速率的单位为bps,bps是bit per second的缩写,表示每秒钟传输多少比特位信息(很多人都会把这里的bit误以为是Byte,也就是错把位当成字节),例如:带宽的单位是10Mb/s,这里其实指的是每秒传输10兆位,而不是10兆字节数据,因此将位数需要除以8换算成字节数,也就是每秒传输1.25兆字节,即10Mbit/s = 1.25MByte/s
2、换算公式
1字节(Byte)= 8位(bit)1KB(Kilo Byte,千字节)= 1024B(Byte)1MB(Mega Byte,兆字节)= 1024KB1GB(Giga Byte,吉字节)= 1024MB1TB(Tera Byte,太字节)= 1024GB1PB(Peta Byte,拍字节)= 1024TB1EB(Exa Byte,艾字节)= 1024PB1ZB(Zeta Byte,泽字节)= 1024EB1YB(Yotta Byte,尧字节)= 1024ZB1BB(Bronto Byte,珀字节)= 1024YB1NB(Nona Byte,诺字节)= 1024BB1DB(Dogga Byte,刀字节)= 1024NB
数据校验
数据在传输的过程中,会受到各种干扰的影响,如脉冲干扰,随机噪声干扰和人为干扰等,这会使数据产生差错。为了能够控制、减少甚至消除传输过程中的差错,就必须采用有效的措施来控制差错的产生。
1、奇偶校验
根据传输的二进制数据和奇偶校验位中“1”的个数进行校验。
如果连同校验位中“1”的个数是奇数,就是奇校验;反之,就是偶校验
技术特点: 简单,可以检测出错误,但无法确切地知道哪里有错,也无法修改,只能要求重传
适用场景: 应用广泛,但不适宜在信号噪声较多的环境中传输
多媒体基础参数
所谓多媒体(Multimedia)指的是多种媒体的综合,一般包括图像、声音和视频等形式或者它们的组合。可以通过基础参数来衡量多媒体文件质量的好坏。
1、参数定义
比特率: 音视频、图像都可以采用这个指标,它指的是规定时间内传输的比特数,单位是bps(bit per second),比特率越高,数据传输的速度就越快,流媒体的播放质量就越好(音视频越清晰),所需带宽也越大,比特率有时候也和码率混为一谈,但码率的单位一般是kbps(千位每秒)。
采样率: 专用于音频多媒体,也称为采样速度或者采样频率,它定义了每秒从连续信号中提取并组成离散信号的采样个数,单位为赫兹(Hz) 。采样率的意义在于将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少个点,常用的采样率为44.1KHz。
采样位深: 也被称为采样精度,单位为Bit,常见的位深有16Bit和24Bit,它其实就是每个采样样本中信息的比特数。
2、计算公式
视频码率计算公式(kbps,千位每秒) = 文件大小(KB,千字节)* 8 / 秒数
音频码率计算公式(kbps,千位每秒) = 采样率 × 采样位深 × 通道数
HTTP
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可以给服务器发送什么样的消息以及能够得到什么样的响应。这个简单的模型是早期Web应用得以普及的重要保障,可以说没有HTTP协议,就没有今天丰富多彩、繁荣兴旺的互联网。
HTTP特性
HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80
HTTP 是无连接无状态的
请求报文
HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:
HTTP 定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。
URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 HTTP 中的GET,POST,PUT,DELETE就对应着对这个资源的 查,增,改,删 4个操作。
GET 用于信息获取,而且应该是安全的 和 幂等的。
所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
幂等的意味着对同一 URL 的多个请求应该返回同样的结果。
GET 请求报文示例:
GET /books/?sex=man&name=Professional HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive
POST 表示可能修改变服务器上的资源的请求。
POST / HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Content-Type: application/x-www-form-urlencoded Content-Length: 40 Connection: Keep-Alive sex=man&name=Professional
注意:
GET 可提交的数据量受到URL长度的限制,HTTP 协议规范没有对 URL 长度进行限制。这个限制是特定的浏览器及服务器对它的限制
理论上讲,POST 是没有大小限制的,HTTP 协议规范也没有进行大小限制,出于安全考虑,服务器软件在实现时会做一定限制
参考上面的报文示例,可以发现 GET 和 POST 数据内容是一模一样的,只是位置不同,一个在 URL 里,一个在 HTTP 包的包体里
POST 提交
HTTP 协议中规定 POST 提交的数据必须在 body 部分中,但是协议中没有规定数据使用哪种编码方式或者数据格式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。
但是,数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 PHP、Python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。下面就正式开始介绍它们:
application/x-www-form-urlencoded
这是最常见的 POST 数据提交方式。浏览器的原生



