计算机网络复习(一)

一、网络体系

OSI 七层模型

TCP/IP 四层模型

五层模型

在这里插入图片描述

TCP/IP各层协议的作用

  • 应用层:通过应用进程(就是主机中正在运行的程序)之间的交互来完成网络应用;
  • 传输层:负责向两台主机进程之间的通信提供通用的数据传输服务
  • 网络层
    • 01、为分组交换网的不同主机提供通信服务;网络层会把传输层传下来的报文段或用户数据包封装成分组或包进行发送;
    • 02、网络层的另一个任务是选择合适的路由,使得传输层传下来的分组能够通过网络中的路由器找到目的主机;
    • 中间设备:路由器。
    • 交互的数据单元:报文(message)。
  • 数据链路层
    • 将网络层传下来的IP数据包组装成帧,在相邻接点之间的链路上传输帧;每一帧包括数据和必要的信息(同步信息、地址信息、差错控制等);
    • 中间设备:网桥、桥接器。
  • 物理层:实现在计算机网络中的硬件设备或传输介质之间传输数据比特流,而不是指具体的传输介质;
    • 交互的数据单元:比特。

二、应用层

向浏览器中输入一个网址后执行的全过程

  • DNS解析:先检查输入的URL是否合法,然后依次去浏览器缓存、系统缓存、路由器缓存、DNS缓存查找该URL对应的IP地址,如果上述缓存中都没有就去跟域名服务器查找对应的IP地址,根域名服务器会把请求转发到下一级查找IP,例如www.google.com的查找顺序是.、.com、google.com、www.google.com;
  • 建立连接:通过TCP的三次握手建立连接,建立连接后向服务器发送HTTP请求,请求数据包;
  • 服务端处理并返回HTTP报文
    • 浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;
    • 服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件;
    • 服务器将获取到的HTML 文件发送给浏览器;
  • 浏览器解析渲染页面
    • 解析HTML,生成DOM树;
    • 解析css,生成CSS规则树;
    • 合并HTML树和CSS规则树,生成render树;
    • 布局render树;
    • 绘制render树;
    • GPU将各层合成,将结果显示在浏览器窗口中;

HTTP和HTTPS的区别

  • 端口 :HTTP 的 URL 由“http://”起始且默认使用端口 80,而 HTTPS 的 UR 由“https://”起始且默认使用端口 443。
  • 安全性和资源消耗:HTTP 协议运行在 TCP 之上,所有传输的内容都是明文, 客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说, HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。

对称加密和非对称加密

  • 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型 的对称加密算法有 DES、AES 等;在这里插入图片描述
  • 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥 解密),相对对称加密速度较慢,典型的非对称加密算法有 RSA、DSA 等。在这里插入图片描述

HTTPS的加密过程

在这里插入图片描述

HTTP1.0和HTTP1.1的区别

  • 缓存处理:在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。
  • 带宽优化及网络连接的使用:HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,这样就可以自由地选择以便于充分利用带宽和连接。
  • 错误通知的管理:在 HTTP1.1 中新增了 24 个错误状态响应码,如 409 (Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
  • Host 头处理:在 HTTP1.0 中认为每台服务器都绑定一个唯一的 IP 地址,因此,请求消息中的 URL 并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机,并且它们共享一个 IP 地址。HTTP1.1 的请求消息和响应消息都应支持 Host 头域。
  • 长连接:HTTP 1.1 支持长连接(PersistentConnection)和请求的流水线 (Pipelining)处理,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减 少了建立和关闭连接的消耗和延迟,在 HTTP1.1 中默认开启 Connection: keep-alive,一定程度上弥补了 HTTP1.0 每次请求都要创建连接的缺点。

长连接和短连接的区别

在这里插入图片描述

HTTP2.0与HTTP1.x的区别

  • 新的二进制格式(Binary Format):HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮 。
  • 多路复用(MultiPlexing):即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
  • header压缩:HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自缓存一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
  • 服务端推送(server push):HTTP2.0具有server push功能。 在这里插入图片描述

HTTP协议中的GET和POST方式的区别

  • 参数位置:GET方法参数位置包含在URL,POST方法参数包含在请求主体。
  • 参数长度:GET方法的URL长度有限度,POST长度没有限制。
  • 参数编码:GET方法参数编码是ASCII码,POST没有限制。
  • TCP数据包:GET方法产生一个TCP数据包,把首部和数据一起发送,POST方法产生两个TCP数据包,先发首部,服务器响应后再发数据。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值