1.OSI七层模型
物理层-数据链路层-网络层-传输层-会话层-表示层-应用层
1.物理层 物理设备将模拟型号转为数字信号(0/1流),称为比特流。尽量减少不同设备的差异。
2.数据链路层 在比特流的基础上加入帧的概念,提高数据发送的准确性,同时加入检错机制。
3.网络层 这时候涉及更多主机,所以主机之间需要编号来标识自己,所以加入IP协议
4.传输层 这时候涉及到数据传输,在传输的过程中可能发生中断,所以,需要一段一段的发送数据,也就是形成了报文,这时候涉及到的协议有TCP和UDP协议,TCP传输效率会低一些,但是发送包会检验完整性。UDP不管别人能不能接受到完整的包。
5.会话层 这时候别人已经拿到了数据包,但是主机上可能会有很多程序需要包,所以主机需要根据端口来判断这个包是谁需要的。
6.表示层 程序拿到了自己需要的数据包,但是由于各种协议包数据封装起来,程序需要对应的把数据进行解析。
7.应用层 直接面向用户,用户需要的数据,直接通过接口来请求。
2.TCP与UDP区别
1、TCP面向连接,UDP无连接;
2、TCP占用系统资源较多,UDP少;
3、TCP结构复杂,UDP绞简单;
4、TCP基于流模式,UDP时数据报模式;
5、TCP保证数据正确性,UDP可能丢包;
6、TCP保证数据顺序,UDP不保证。
3.SSL
客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
客户端的浏览器与Web服务器开始协商SSL/TLS连接的安全等级,也就是信息加密的等级。
客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
Web服务器利用自己的私钥解密出会话密钥。
Web服务器利用会话密钥加密与客户端之间的通信。
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。
简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。HTTPS提高了安全性,但其他方面就不如HTTP了
1、因为HTTPS要保证安全,所以HTTPS协议握手阶段比较费时,会消耗更多的CPU
2、HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗。
3、SSL证书需要钱,功能越强大的证书费用越高。
4、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
5、HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。
总结
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
4.http 响应码
1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误
200 - 服务器成功返回网页
400(错误请求)服务器不理解请求的语法。
404 - 请求的网页不存在
500(服务器内部错误)服务器遇到错误,无法完成请求。
503 - 服务器超时
404页面不存在,500服务器错误,301重定向,302临时重定向,200ok,401未授权
5.cookie/session
- cookie数据存放在客户的浏览器(客户端)上,session数据放在服务器上,但是服务端的session的实现对客户端的cookie有依赖关系的;
- cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
- session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
- 单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
6.get和post区别
(1)post请求更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会缓存,如果是数据,则不会缓存)
(2)post请求发送的数据更大(get请求有url长度限制,http协议本身不限制,请求长度限制是由浏览器和web服务器决定和设置)
(3)post请求能发送更多的数据类型(get请求只能发送ASCII字符)
(4)传参方式不同(get请求参数通过url传递,post请求放在request body中传递)
(5)get请求的是静态资源,则会缓存,如果是数据,则不会缓存
(6)get请求产生一个TCP数据包;post请求产生两个TCP数据包(get请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据;post请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 返回数据)
7.DNS
8.B树、B+树
9.堆排序
10.进程与线程