Node学习总结——网络计算机篇

1、谈谈对进程和线程的理解?

答:概括:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。

首先CPU + RAM + 各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。CPU太快了,当多个任务要执行的时候,在CPU看来就是轮流着来的。

执行一段程序代码,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就要被切换出去,等待下一次CPU的临幸。在被切换出去的最后一步工作就是保存程序上下文,因为这个是下次他被CPU临幸的运行环境,必须保存。

所以在CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文……

进程就是包括上下文切换的程序执行时间总和 = CPU加载上下文 + CPU执行 + CPU保存上下文。

进程的颗粒度太大,每次都要有上下的调入,保存,调出。如果我们把进程比喻为一个运行在电脑上的软件,那么一个软件的执行不可能是一条逻辑执行的,必定有多个分支和多个程序段,就好比要实现程序A,实际分成 a,b,c等多个块组合而成。那么这里具体的执行就可能变成:程序A得到CPU =》CPU加载上下文,开始执行程序A的a小段,然后执行A的b小段,然后再执行A的c小段,最后CPU保存A的上下文。这里a,b,c的执行是共享了A的上下文,CPU在执行的时候没有进行上下文切换的。

这里的a,b,c就是线程,也就是说线程是共享了进程的上下文环境的更为细小的CPU时间段。

2、什么是OSI七层模型。

答:一:物理层:

        电缆连线连接器,网卡等。

               物理层的任务就是为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性。如规定使用电缆和接头的类型、传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。

二:数据链路层:

               交换机。ppp点对点协议。 CSMA/CD。

               控制物理层和网络层之间的通讯,把网络层的数据分割成物理层可以传输的帧。

三:网络层:

               路由器。IP协议。地址解析协议ARP。网际控制报文协议ICMP,路由选择协议。RIP。

               将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B 的最佳路径。

四:传输层:

               用户数据报协议UDP。传输控制协议TCP。

               最重要的一层。可以对传输进行流量控制或是基于接收方的接受速度规定发送速率。如果数据包过大,可以将数据包分解,编序列号,到达接收端后,由于使用相同协议,可以按照编号重组,此过程称为排序。

五:会话层:

               负责网络中两个节点之间建立和保持通信,会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送。

六:表示层:

               应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理。在网络中传输需要加密数据的时候,表示层进行加密解密。对图片的编码解码也是表示层的工作。

七:应用层:

               文件传输协议FTP。HTTP。SMTP。

               负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

3、谈谈http的三次握手。

答:第一次握手:Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

4、简单说几个http的状态码。

答:200 - 请求成功。

301 - 资源(网页等)被永久转移到其它URL。

404 - 请求的资源(网页等)不存在。

500 - 内部服务器错误。

5、谈谈对GET和POST的理解。

答:首先什么是HTTP:HTTP是基于TCP/IP的关于数据如何在万维网中通信的一种协议。

实际上,get和post在本质上是一样的,它们无区别。get和post都是HTTP请求协议的请求方法,而 HTTP 又是基于TCP/IP的关于数据如何在万维网中如何通信的协议,所以 GET / POST 实际上都是 TCP 链接。

但是可以想象一下,如果我们直接使用 TCP 进行数据的传输,那么无论是单纯获取资源的请求还是修改服务器资源的请求在外观上看起来都是 TCP 链接,这样就非常不利于进行管理。所以由于 HTTP 的规定以及浏览器/服务器的限制,它们在应用过程中可能会有所不同,这才出现了GET、POST、PUSH等等不同的请求方法。

GET和POST的区别:

  • 1、GET参数通过URL传递,POST放在Request body中。
  • 2、GET请求在URL中传送的参数是有长度限制的,而POST没有。
  • 3、GET比POST更不安全,因为参数直接暴露在URL上。
  • 4、GET请求会被浏览器主动cache,而POST不会,除非手动设置。

6、webSocket与传统的http有什么优势。

答:1.客户端与服务器只需要一个TCP连接,比http长轮询使用更少的连接。

2.webSocket服务端可以推送数据到客户端。

3.更轻量的协议头,减少数据传输量。

http 协议是用在应用层的协议,他是基于 tcp 协议的,http 协议建立链接也必须要有三次握手才能发送信息。

http 链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个 request 对应一个 response。长链接是在一定的期限内保持链接。保持 TCP 连接不断开。客户端与服务器通信,必须要有客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。

WebSocket 他是为了解决客户端发起多个 http 请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用,他是全双工通信。在 webSocket 协议下客服端和浏览器可以同时发送信息。

建立了 WenSocket 之后服务器不必在浏览器发送 request 请求之后才能发送信息到浏览器。这时的服务器已有主动权想什么时候发就可以发送信息到服务器。而且信息当中不必在带有 head 的部分信息了与 http 的长链接通信来说,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息。

7、https用哪些端口进行通信,这些端口分别有什么用

答:443端口用来验证服务器端和客户端的身份,比如验证证书的合法性

80端口用来传输数据(在验证身份合法的情况下,用来数据传输)

8、身份验证过程中会涉及到密钥, 对称加密,非对称加密,摘要的概念,请解释一下

答:密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

非对称加密:非对称加密也叫做公钥加密。非对称加密与对称加密相比,其安全性更好。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

摘要: 摘要算法又称哈希/散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。算法不可逆。

9、为什么需要CA机构对证书签名

答:如果不签名会存在中间人攻击的风险,签名之后保证了证书里的信息,比如公钥、服务器信息、企业信息等不被篡改,能够验证客户端和服务器端的“合法性”。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值