计算机网络概论 | 青训营笔记

108 阅读2分钟

一、OSI参考模型

将网络通信分成七个层次(面试中考得多的是五层模型),每个层次都有特定的功能和协议

(1)应用层

与应用程序交互,用户直接交互,当中协议有(HTTP协议,SMTP协议,DNS...)

(2)传输层

负责将数据从表示层传输到会话层

(2.1)表示层

负责将数据转换为指定的格式

(2.2)会话层

负责建立、管理和终止会话,当中包括协议(TCP 和 UDP),定义了数据传输的格式和过程

(3)网络层

负责将数据从传输层传输到数据链路层,其中会选择合适的节点确保数据正常传送,包括(IP协议)

(4)数据链路层

负责将比特流组织成数据帧

(5)物理层

负责传输比特流,例如 0 和 1 的电信号(包括中继器、网卡)

二、HTTP协议

用于传输超文本的协议,由请求和响应组成

2.1 组成部分

2.1.1 请求

  • 请求行

请求方法、请求 URL 和 HTTP协议版本、状态码及状态描述

  • 请求头

请求的主机名、浏览器类型、请求的内容类型等

  • 请求体(可选)

请求的数据

2.1.2 响应

  • 状态行

包括 HTTP协议版本号、状态码和状态描述

  • 响应头

connection 、 content-Type 、 content-encoding 、content-length 、 set-cookie 、 last-Modified 、cache-control 、 Expores

  • 响应体

服务器返回的内容

2.2 HTTP1.0的特点

  • 无状态

每次请求都是独立的,服务器不会保留客户端的状态信息

  • 短连接

每一次请求都需要建立一个新的连接,处理后会立刻关闭连接

  • 不支持缓存

会造成过多的资源浪费

2.3 HTTP1.1的特点

  • 长连接(持久连接)

多次请求复用一个 TCP 连接,

  • 缓存控制

可以通过设置缓存信息头信息Connection字段指定为 keep-alive

  • 支持多个请求方法

get、post、put、delete 等等

2.4 HTTP2.0的特点

  • 首部压缩

使用特定的算法对对请求和响应的头部进行压缩,减少首部信息的大小,对于多个请求其中相同部分的数据不会重复发送,即第一次请求发送了首部信息,剩下的请求只需发送与前面请求不一样的数据即可

  • 服务器推送

允许服务器主动向客户端推送资源

  • 多路复用

一个连接中,允许同时发送多个请求或响应,而且它们之间不会阻塞,避免了 HTTP/1.x中的队头阻塞问题

  • 二进制格式

将请求和响应分成二进制的帧,解析传输更加高效