前端网络基础查漏补缺篇

1.进程和线程

  进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用

程序运行的载体。进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。

  线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或

多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成。

  a.线程是cpu调度最小单位,程序执行的最小单位,进程是资源分配的最小单位

  b.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

  c.进程之间相互独立,同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信

号等),某进程内的线程在其他进程不可见;

  d.调度和切换:线程上下文切换比进程上下文切换要快得多

  总之,线程和进程都是一种抽象的概念,线程是一种比进程还小的抽象,线程和进程都可用于实现并发。

在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位,它相当于

一个进程里只有一个线程,进程本身就是线程。所以线程有时被称为轻量级进程

  后来,随着计算机的发展,对多个任务之间上下文切换的效率要求越来越高,就抽象出一个更小的概念-线程,一般一个进程会有多个

(也可以是一个)线程。

2.五层因特网协议栈

  应用层、传输层、网络层、数据链路层、物理层

  应用层:应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则,http协议、WebSocket、域名系统(域名和 IP 地址相互映射的一个分布式数据库),报文传输

  传输层:传输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。传输控制协议TCP、用户数据协议UDP

      1、TCP是有连接的,UDP无连接

      2、TCP一对一连接,UDP可一对多,多对一,多对多

      3、TCP面向字节流,UDP面向报文

      4、UDP 的首部开销小8字节,TCP 20字节

      5、TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达,UDP 是尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态

      6、TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据

      7、UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如直播,实时视频会议等)

  网络层: 计算机通信的数据及时传送,报文段或用户数据报封装成分组和包进行传送,IP协议

  数据链路层:主机之间的数据传输,IP 数据报组装成帧

  物理层:实现相邻计算机节点之间比特流的透明传送,比特

 3.http和https

  1、http 运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份, https身披 SSL( Secure Socket Layer )外壳的 HTTP,运行于 SSL 上,SSL 运行于 TCP 之上, 是添加了加密和认证机制的 HTTP。

  2、http端口80, https端口443

  3、http资源消耗较少,https由于加解密处理,会消耗更多的 CPU 和内存资源

  4、http无开销,无需证书,https需要证书,而证书一般需要向认证机构购买

  5、http无加密机制,安全性 弱 https通过共享密钥加密和公开密钥加密并用的混合加密机制加密,安全性强

加密机制

  对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;

而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。

由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢.

综上:我们还是用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

4、当你在浏览器的地址栏输入网址发生了什么

  游览器缓存=>操作系统缓存=>host文件=>本地配置的DNS服务器=>根域的DNS=>IP地址=>TCP三次握手=>http请求

5、http协议的特点

  简单、灵活、无状态、无连接

6、post和get区别

 1、GET在浏览器回退时是无害的,而POST会再次提交请求

 2、GET请求会被浏览器主动缓存,而POST不会,除非手动设置

 3、GET请求参数会被完整保留在浏览器的历史记录里,而POST中的参数不会被保留

 4、GET参数通过URL传递,POST放在Request body中

 5、因为GET是URL传递所以有长度限制,只能进行 url 编码,地址可以被收藏更不安全不能用来传递敏感信息

7、http状态

 1XX、信息

 2XX、成功

 3XX、重定向

 4XX、客户端端

 5XX、服务端

 常见的200、302、400、500、

8、HTTPS请求的过程  

  1、客户端发送请求到服务器。

  2、服务器返回证书和公钥到客户端(证书中包含公钥)。

  3、客户端接收后会验证证书的安全性,如果通过了,则会随机生成一个随机数,用公钥对其加密发送到服务端。

  4、服务端接收到这个加密后的随机数会用私钥对其解密,得到真正的随机数,随后用这个随机数当做私钥,对需要发送的数据进行对称加密。

  5、客户端在接收到加密后的数据,会使用私钥(即生成的随机数)对数据进行解密,并且解析数据呈现给用户。

  6、SSL加密建立。  

   

原文地址:https://www.cnblogs.com/tllw/p/15393970.html