前端-网络常见考点一

注:牛客职导前端课程笔记

1.TCP/IP四层协议族

1.1网络连接

OSI(Open System Interconnection 开放系统互联模式):

应用层、表示层(为在应用过程之间传送的信息提供表示方法的服务,它只关心信息发出的语法和语义。)、会话层、传输层、数据链路层、物理层。

TCP/IP四层协议族:

应用层(HTTP)、传输层(TCP、UDP)、网络层(IP)、数据链路层。

1.2网络层:IP网络三层传输

IP头信息:IP头是IP数据包开头的信息,包含IP版本、源IP地址、目标IP地址、生存时间等信息。

IP层数据传输步骤:

上层将含有“data”的数据包交给网络层;

网络层再将 IP 头附加到数据包上,组成新的 IP 数据包,并交给底层;

底层通过物理网络将数据包传输给主机 B;

数据包被传输到主机 B 的网络层,在这里主机 B 拆开数据包的 IP 头信息,并将拆开来的数据部分交给上层;

1.3传输层:UDP四层网络连接

UDP作用:IP 通过 IP 地址信息把数据包发送给指定的电脑,而 UDP 通过端口号把数据包分发给正确的程序 。

UDP头信息:端口号会被装进 UDP 头里面,UDP 头再和原始数据包合并组成新的 UDP 数据包。UDP 头中除了目的端口,还有源端口号等信息 。

UDP层传输步骤:

上层将含有“data”的数据包交给传输层。

传输层会在数据包前面附加上 UDP 头,组成新的 UDP 数据包,再将新的 UDP 数据包交给网络层。

网络层再将 IP 头附加到数据包上,组成新的 IP 数据包,并交给底层;

数据包被传输到主机 B 的网络层,在这里主机 B 拆开 IP 头信息,并将拆开来的数据部分交给传输层;

在传输层,数据包中的 UDP 头会被拆开,并根据 UDP 中所提供的端口号,把数据部分交给上层的应用程序;

UDP数据传输的特点:对于错误的数据包,UDP不提供重发机制,只是丢弃当前的包,UDP在发送数据之后也无法知道是否到达目的地。

应用:UDP虽不能保证数据可靠性,但传输速度非常快,常应用于在线视频、互动游戏等。

1.4传输层:TCP四层网路连接

TCP头信息:除了包含目标端口和本机端口号外,还提供用于排序的序列号,以便接收端通过序列号来重排数据包。

TCP连接的生命周期:

建立阶段(三次握手):客户端向服务器发送请求,服务器做出应答,客户端回复收到应答。

目的:确保客户端和服务器端发出的消息都能收到回复。

数据传输阶段:接收端需要对每个数据包进行确认操作,也就是接收端在接收到数据包之后,需要发送确认数据包给发送端 ,大文件传输中会被拆分为带有序号的小的数据包。

当发送端发送一个数据包后,在规定时间没有接收到接收端反馈的确认信息会触发重发机制。

断开连接阶段(四次挥手):

可由客户端或者服务器端任何一端发起断开请求。

客户端和服务器端都需要是断开就绪状态,才能真正断开。

TCP数据传输的特点

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议

  • 对于数据包丢失的情况,TCP 提供重传机制;

  • TCP 引入了数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件。

2.http

2.1http0.9

HTTP都是基于TCP协议的,所以客户端先要根据IP地址、端口和服务器建立TCP连接,建立连接的过程就是TCP协议三次握手的过程。

HTTP/0.9实现的三个特点

①只有一个请求行,没有HTTP请求头和请求体。

②服务器没有返回头信息,只需要返回数据。

③返回的文件内容是以ASCLL字符流来传输的,都是HTML格式。

2.2http1.0

①支持多种类型、格式、编码、语言的文件,添加请求头和响应头。

accept: text/html;

accept-encoding: gzip,deflate,br;

accept-Charset: ISO-8859-1,utf-8;

accept-language: zh-CN,zh;

content-encoding: brcontent-type: text/html; charset=UTF-8

②状态码 有的请求服务器可能无法处理或者处理出错,这时候需要告诉浏览器服务器最终处理该请求的情况。状态码是通过响应行的方式来通知浏览器的。

③Cache机制 为了减轻服务器的压力,1.0中提供了Cache机制用来缓存已经下载过的数据。

④统计客户端的基础信息,在请求头中加入了代理的字段。

2.3http1.1

①TCP持久连接,多个http请求可以在同一个TCP上进行。目前浏览器中对于同一个域名,默认允许同时建立 6 个 TCP 持久连接。

②管线化 将多个http请求整批交给服务器,虽然可以整批发送请求,但服务器依然需要根据请求顺序来回复浏览器的请求。 目的:解决队头拥塞问题。(但似乎未解决)

③提供虚拟主机的支持,1.1请求头中增加了Host字段。

④对动态生成的内容提供了 支持。 服务器会将数据分成若干任意大小的数据块,每块发送时会标注长度,最后一块以零长度作为结束标识。

⑤引入客户端Cookie机制。

⑥补充了缓存的请求头和响应头。

2.4http2.0

主要解决的问题:

①一个域名只使用一个TCP长连接

目的:解决TCP有慢启动(刚连接上传输数据慢),减少TCP连接的次数。

每个TCP连接都会占用部分带宽资源,且不会按照优先级来分配资源,导致需要先加载的数据慢返回。

②消除队头阻塞问题。

解决方法:多路复用

浏览器发送请求:将请求分成二进制分帧层,分成一帧一帧的数据去传输(一个请求可以分成多个帧)

服务器响应请求:服务器接收到所有帧之后,会将相同ID的帧合并为一条完整的请求信息,并将处理的响应行、响应头和响应体分别发送至二进制分帧层,返回时可以根据请求的优先级或者相应的速度返回帧数据。

浏览器接收数据:浏览器接收到响应帧后,会根据ID编号将帧的数据提交给对应的请求。

http2.0特性:

①多路复用:一个域名只使用一个TCP长连接、消除队头拥塞问题。

②可以设置请求的优先级。

③服务器推送。

④头部压缩。 对请求头和响应头进行了压缩。

2.5http状态码

状态码分类:

1**:请求已被接收,需要继续处理。

2**:请求已被接收、理解、并接受。

3**:需要进一步操作,用来重定向。

4**:请求错误。

5**:服务器处理请求时有错误或有异常状态发生。

http常用状态码

200:成功,服务器提供了请求的网页。

301:永久移动。

302:临时移动。

304:请求的网页自上次访问未修改。

403:服务器拒绝请求。

404:未找到。

500:服务器遇到错误。

504:网关超时。

2.6http请求头和响应头

http请求头:

Accept:text/html、Accept-Encoding:gzip,deflate、Accept-Language:zh-CN,zh;q=0.9

Connection:keep-alive(close)、Host:www.baidu.com、User-Agent、Cookie、content-type:application/json(发送数据的格式 get请求一般没有)

常见响应头:

Cache-Control:private(私有缓存)、public、must-recalidate(每次请求必须向服务器验证缓存是否过时)、no-cache(不应缓存)、max-age=10(10秒内客户端从缓存中读取数据)、no-store(不能存储在磁盘中)

Last-Modified:所请求对象的最后修改日期。

Etag:对象的标志值,如果修改了会改变。

Content-Type:text/html;charset=UTF-8 文件类型、字符编码。

Content-Encoding:gzip.

Date:发送资源时服务器的时间。

Server:服务器信息。

Expires:告诉客户端在这个时间前,可以直接访问缓存副本。max-age=date中的date是个相对时间 。

Connection:keep-alive

Access-Control-Allow-Origin: www.baidu.com 指定哪些网站可以跨域资源共享 。

Access-Control-Allow-Methods:GET,POST,PUT,DELETE 允许哪些方法来访问 。

Access-Control-Allow-Credentials: true 是否允许发送cookie。

2.7http缓存

通过缓存,使用资源副本,大大减少获取资源时间,

能够减少网络带宽消耗、减少延迟与网络阻塞,同时降低服务器压力,提高服务器性能。

强制缓存:响应头Cache-Control。

协商缓存:Last-Modified、Etag(Etag优先级高)。

请求头和响应头:

Etag/If-None-Match

Last-Modifed/If-Modified-Since

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值