月黑雁飞高,计网全知道

文章目录

  • 计算机网络知识

计算机网络知识

  1. 互联网的组成:

    • 边缘部分(所有连接的主机,用户可以直接的使用)
    • 核心部分(由大量网络和连接网络的路由器组成,为边缘部分的主机提供服务)
  2. 三大交换方式:

    • 电话交换:建立专用的物理链路,始终占用;简单粗暴,资源利用率不高,
    • 报文交换:就是把整个报文完整的发送到链路中,在某个节点存储下来之后再发送到下一个节点。
    • 分组交换:将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。
  3. 时延=发送时延+传播时延+处理时延+排队时延。

    • 发送时延(传输时延):从开始发送数据帧,到数据帧发送完毕所需的全部时间。
    • 传播时延:发送端开始发送数据到接收端收到数据所需要的全部时间。(电磁波在信通中的时间)
  4. 七层协议:应用层-表现层-会话层-传输层-网络层-数据链路层-物理层

    • 应用层:各种应用程序协议:HTTP、FTP
    • 表现层:信息的语法语义以及他们的关联,:加密解密,转换翻译,解压缩。
    • 会话层:不同机器上的用户之间建立及管理会话。
    • 传输层:提供的是进程间的通用数据传输服务端到端的连接。(TCP、UDP)
    • 网络层:为主机间提供服务,网络层把运输层产生的报文段或者用户数据报封装成分组来进行传输。(路由器)
    • 数据链路层:为相邻结点之间提供服务,数据链路层把网络层传来的分组封装成帧。(网桥)
    • 物理层:考虑的是怎么在传输媒体上传输数据比特流,尽可能的屏蔽传输媒体和通信手段的差异。(中继器。)

    ​ 数据在各层之间的传递过程:在向下的过程中,需要添加下层协议所需的各种首部或者尾部,而在向上的过程中不断地拆分首部和尾部,路由器只有三层协议,因为路由器位于网络的核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。

  5. OSI模型:

    月黑雁飞高,计网全知道_第1张图片

  6. TCP/IP 分为四层

    月黑雁飞高,计网全知道_第2张图片

  7. 复用技术:

    • 频分复用:在相同的时间占用不同的频率带宽资源。
    • 时分复用:在不同的时间占用相同的频率带宽资源。
  8. 交换机与路由器的区别:

    • 交换机工作于数据链路层,能识别MAC地址,根据MAC地址转发链路层数据帧。具有自学机制来维护IP地址与MAC地址的映射。
    • 路由器位于网络层,能识别IP地址并且根据IP地址转发分组。维护路由表,根据路由表选择最佳的路线。
  9. 路由器分组转发的流程:

    • 首先从数据报的首部提取目的主机的IP地址D,得到目的网络地址N。如果N与此路由器之间相连的某个网络地址,则直接交付。
    • 若路由表有目的地址为D的特定主机路由,则把数据报直接传送给表中所指明的下一跳路由器。
    • 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器。
    • 如路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由。报告转发分组出错
  10. UDP和TCP的特点:

  • UDP:是无连接的,尽最大的可能交付,没有拥塞控制,面向报文,支持一对一、一对多、多对一、多对多。
  • TCP是面向连接的,提供可靠交付,有流量的控制、拥塞控制,提供全双工通信,面向字节流。需要维护连接状态,报文头里面的确认序号,累计确认以及超时重传机制保证不丢包,不重复,按序到达。一对一
  1. UDP和TCP首部格式

    • UDP首部格式:

      • 只有八个字节,包括源端口,目的端口,长度,检验和
      • 12字节的伪首部是为了计算检验而临时添加的。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MKdzgnKc-1583117494913)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200302102355.png)]

    • TCP首部格式:

      • 序号:对于字节流进行编号。
      • 确认号:期望收到的下一个报文段的序号。例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
      • 数据偏移:指数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
      • 确认ACK:当ACK=1时确认号字段有效,否则无效,TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.
      • 同步SYN:在连接建立时,用来同步序号,当SYN=1,ACK=0表示这是一个连接请求报文段。若对方同意建立连接,则相应报文中SYN=1,ACK=1。
      • 终止FIN:用来释放一个连接,当FIN=1时表示此报文段的发送方的数据已发送完毕,并要求释放运输连接。
      • 窗口:窗口值作为接收方让发送方设置其发送窗口的依据,之所以要有这个限制是因为接收方的数据缓存空间是有限的。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBDrGxll-1583117494915)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200302102408.png)]

  2. TCP的三次握手:采用请求——应答——应答之应答

    • 首先服务器端处于监听状态,等待客户的连接请求。
    • 然后客户端发送连接请求的报文段SYN=1,ACK=0.选择一个初始的序号x(随时间变化)。
    • 服务器端收到连接请求报文段,如果同意建立建立,则向A发送连接确认报文段其中SYN=1,ACK=1,确认号为x+1,同时也选择一个初始的序号y。
    • 客户端收到服务器端的连接确认报文后,还要向服务器发送确认,确认号为y+1,序号为x+1、
    • 服务器端收到客户端的确认后连接建立。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAffhaav-1583117494915)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200302102013.png)]

  3. TCP的四次挥手:

    • 客户端发送连接释放报文段,FIN=1;
    • 服务器端收到以后发送确认,此时TCP处于半关闭的状态,服务器端能向客户端发送数据,但是客户端不能像服务器端发送数据。
    • 当服务器端不在需要连接的时候,发送连接释放请求报文段FIN=1.
    • 客户端收到发送确认,此时连接释放。
    • TIME_WAIT:客户端收到服务器端的FIN报文后进入此状态,此时并不是直接进入CLOSED状态,还需要等待一个时间计时器设置的时间,为了确保最后一个确认报文段能够到达。可能存在已失效的连接请求报文段,为了防止这种报文段出现在本次连接意外,需要等待一段时间。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7oiYQmDy-1583117494915)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200302102043.png)]

  4. TCP滑动窗口:窗口是缓存的一部分,用来暂存字节流,发送方和接受方各有一个窗口,接收方通过TCP报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其他信息设置自己的窗口大小。

  5. TCP拥塞控制:

    • 慢开始
    • 拥塞避免
    • 快重传
    • 快恢复
  6. TCP粘包:发送方发送的多个数据包,到接收方缓冲区收尾相连,粘成一个包,被接收

    • 原因:TCP 协议默认使用 Nagle 算法可能会把多个数据包一次发送到接收方。读取速度小于接收速度,缓存中的多个数据包会被应用程序当成一个包一次读取。
    • 处理方式:
      • 发送方使用 TCP_NODELAY 选项来关闭 Nagle 算法;
      • 数据包增加开始符和结束,应用程序读取、区分数据包
      • 在数据包的头部定义整个数据包的长度,应用程序先读取数据包的长度,然后读取整个长度的包字节数据,保证读取的是单个包且完整。
  7. 域名系统DNS:它作为将域名和IP地址相互映射的一个分布式数据库。

  8. 解析过程:

    • 主机将本地域名服务器解析过程采用递归
    • 本地域名服务器向其他域名服务器解析可以使用递归和迭代两种发放。
      • 迭代的方式下,本地域名服务器向一个域名服务器解析请求解析以后,结果返回本地域名服务器,然后本地域名服务器继续向其他域名服务器请求解析。
      • 在递归下,结果不是直接返回而是继续向前请求解析,最后的结果才会返回。
  9. 文件传输协议FTP:FTP在运输层使用TCP,并且需要建立两个并行的TCP连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕以后就关闭。控制连接使用端口号21,数据连接使用端口号20。

  10. WEB页面请求过程:

    • 向DNS服务器发送DNS查询报文来解析域名。
    • 开始进行HTTP会话,需要先建立TCP连接。
    • 在运输层的传输过程中,HTTP报文被封装进TCP中。HTTP请求报文使用端口号80,因为服务器监听的是80端口。连接建立以后,服务器会随机分配一个端口号给特定的客户端,以后的TCO传输都是使用这个端口号。
    • 在网络层的传输过程中,TCP报文段会被封装进IP分组中,IP分组经过路由选择,最后到底目的地。
    • 在链路层,IP分组会被封装进MAC帧中,IP地址解析成MAC地址需要使用ARP。
    • 客户端发送HTTP请求报文,请求获取页面。
    • 服务器发送HTTP相应的报文,客户端从而获取该页面。
    • 浏览器得到页面内容以后,解析并渲染,向用户展示页面。
  11. 网络系统:

    • LAN:局域网
    • MAN:城域网
    • WAN:广域网
    • 无线局域网:有固定基础设施的和无固定基础设施(自组网络)的。其中自动自组网络和移动IP并不相同。
  12. MAC地址是12位16进制的。

    • 127.0.0.1是送回地址,指本机一般用于测试。
    • 192.168.0.1属于IP地址的C类地址,属于保留IP专门用于路由器设置。
    • 10.0.0.1是内部地址,与172.15..-172.31.. 192.168.*.*一样,内部网用的地址,不会出现在公网Internet上;
  13. 当一个主机请求查询域名时,先查本地缓存;没有缓存时请求本地域名服务器;本地域名服务器没有请求根域名服务器。

  14. 以太网的MAC协议提供的是无连接不可靠的服务。

  15. 数据通信中:单工通信,半双工通信,全双工通信。

  16. ICMP协议是IP协议:a.差错报告报文;b.ICMP询问报文。

  17. HTTP的基础是TCP/IP。

    • X.25:分组交换网。
    • IPX/SPX:全称顺序包交换协议的组合,它是Novell公司为了适应网络的发展而开发的通信协议,具有很强的适应性,安装方便,同时还具有路由功能,可以实现多网段间的通信。其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。
  18. SNMP 简单网络管理协议。该协议能支持网络管理系统,用于监测连接到网络上的设备是否有任何引起管理者关注的情况。

    FTP 文件传输协议,用于Internet上的控制文件的双向传输。

    ICMP Internet控制报文协议。用于IP主机、路由器之间传递控制消息。

    SMTP 是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,帮助每台计算机在发送或中转信件时找到下一个目的地。是TCP协议支持的应用协议。

    一般地,邮件客户端只能用SMTP发送邮件,接收邮件一般采用IMAP或者POP3。

  19. 交换机有五种攻击类型:vlan跳跃攻击;生成树攻击;MAC表洪水攻击;arp攻击;vtp攻击。

  20. 局域网拓扑结构一般有三种:星形,总线形,环形。

 A类网络的IP地址范围为:1.0.0.1-126.255.255.254; 

 B类网络的IP地址范围为:128.1.0.1-191.255.255.254; 

 C类网络的IP地址范围为:192.0.1.1-223.255.255.254
  1. IP地址中的网络号:指定了主机所属的网络。

  2. 路由协议的选择:首先路由选择协议都是自适应的,一般分为两类

      内部网关协议IGP在自治系统内部使用,如RIP和OSPF。
      
      外部网关协议EGP在自治系统之间使用,如BGP。
      
      内部网关协议RIP:是一种分布式的基于距离向量的路由选择协议。距离是指跳书。RIP按固定的时间间隔仅和相邻的路由器交换自己的路由表,经过若干次交换以后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。实现简单,开销小,但是最大距离15限制了网络的规模。并且当网络出现估值的时候需要较长的时间才能将消息传递到所有的路由器。	
      
      内部网关协议OSPF:最短路径优先OSPF,是为了克服RIP缺点而开发出来的。是只用了最短路径算法SPF,具有以下的特点,向本自治系统中的所有路由器发送信息,发送的信息及时与相邻路由器的链路状态,链路状态包括与那些路由器相连以及链路度量,度量用的费用,距离,时延,带宽来表示。只有当链路状态发生变化的时候,路由器才会发送信息。
      
      外部网关协议BGP:BGP只能寻找一条比较好的路由但是不一定是最佳路由,它采用路径向量路由选择协议,每一个AS都必须配置BGS发言人,通过在两个相邻BGP发言人之间建立TCO连接来交换路由信息
    
  3. 浏览器输入URL按下回车发送了什么:

    • 浏览器查找域名的IP地址:
      • 查找浏览器缓存:DNS记录
      • 查找系统缓存:hosts文件
      • 查找路由器缓存:DNS缓存
      • 递归查询
      • 迭代查询
    • 浏览器与目标服务器建立TCP连接
      • 通过DNS解析找到IP地址建立TCP连接
      • 三次握手
    • 浏览器通过http协议发送请求
      • 浏览器向主机发送一个HTTP—GET方法报文请求。
    • 某些服务器会做永久重定向响应
      • 重定向的作用:为了负载均衡或者导入流量,提高SEO排名,利用一个前端服务器接受请求,然后负载到不同的主机上,可以大大提高站点的业务并发处理能力;重定向也可将多个域名的访问,集中到一个站点;
    • 浏览器跟踪重定向地址
    • 服务器处理请求
    • 服务器发送一个HTML响应
    • 释放TCP连接
    • 浏览器显示页面
    • 浏览器发送获取嵌入在HTML中的其他内容
  4. jsp和servlet区别:Servlet适合动态输出Web数据和业务逻辑处理,对于html页面内容的修改非常不方便;JSP是在Html代码中嵌入Java代码,适合页面的显示。内置对象不同,获取内置对象的方式不同。

    • Servlet
      • 一种服务器端的Java应用程序,是接收网络服务的请求和产生响应的一种方式。
      • 由Web容器加载和管理
      • 用于生成动态Web内容
      • 接受 http 请求,产生动态 http 响应。Web容器负责将 HTTP 请求转换为 HttpServletRequest 对象
    • Jsp
      • 是Servlet的扩展,本质上还是Servlet
      • 每一个Jsp页面就是一个Servlet实例
      • Jsp页面会被Web容器编译成Servlet,Servlet再负责响应用户请求
  5. JSP内置对象

    内置对象 作用
    1 request 客户端的请求信息:Http协议头信息、Cookie、请求参数
    2 response 用于服务器响应客户端请求、返回信息
    3 pageContext 页面的上下文
    4 session 客户端与服务端之间的会话
    5 application 用于获取服务端应用生命周期的信息
    6 out 用于服务器传输内容到客户端的输出流
    7 config 初始化时,Jsp引擎向Jap页面传递的信息
    8 page 指向Jsp页面本身
    9 exception 页面发送异常,产生的异常对象
  6. JSP的作用域

    作用域 名称 描述
    page 当前页面作用域 相当于Java关键字中this。在这个作用域中存放的属性值,只能在当前页面中取出,一个页面相关的对象和属性
    request 请求作用域 范围是从请求创建到请求消亡这段时间,一个请求可以涉及的多个页面。jsp:forward和jsp:include跳转到其他页面,也在作用域范围。
    session 会话作用域 范围是一段客户端和服务端持续连接的时间,用户在会话有效期内多次请求所涉及的页面。seesion会话器,服务端为第一次建立连接的客户端分配一段有效期内的属性内存空间。
    application 全局作用域 范围是服务端Web应用启动到停止,整个Web应用中所有请求所涉及的页面。当服务器开启时,会创建一个公共内存区域,任何客户端都可以在这个公共内存区域存取值。
  7. session和cookie区别(确定会话中的身份):

    • session:在服务器端记录信息,保存的数据大小取决于服务器的程序设计。可以被服务器的程序处理为key-value类型的如何对象;存在服务器端,安全性高。量用户会话服务器端保存大量 session 对服务器资源消耗较大。
    • cookie:在浏览器端记录信息,保存数据大小不超过4kb,大多数浏览器显示一个站点最多20个cookie;存在浏览器里的一端文本;可能被其他程序分析获取,安全性低。信息保存在 cookie 中缓解了服务器存储用信息的压力
      • 生命周期:
        • Expires:过期时间
        • Max-Age用的是一段时间间隔,单位是秒,从浏览器收到报文开始计算
      • 作用域:Domainpath, 给 Cookie 绑定了域名和路径,在发送请求之前,发现域名或者路径和这两个属性不匹配,那么就不会带上 Cookie。值得注意的是,对于路径来说,/表示域名下的任意路径都允许使用 Cookie。
      • 缺点:
        • 容量太小
        • 性能缺陷:请求都会带上Cookie,请求增多性能浪费,可以通过Domain和Path指定作用域来解决
        • 安全缺陷:以纯文本来传递,有危险

    一般实际使用中,都是把关键信息保存在 session 里,其他信息加密保存到cookie中。

  8. forward和redirect的区别:

    • 浏览器url地址显示不同:服务端通过 forward 返回,浏览器 url 地址不会发生变化;服务器通过 redirect 返回,浏览器会重新请求, url 地址会发生变化
    • 前后台两者页面跳转的处理方式不同:forward 跳转页面,是服务端进行页面跳转加载(include)新页面,直接返回到浏览器;redirect 跳转页面,是服务端返回新的 url 地址,浏览器二次发出 url 请求
    • 参数携带情况不一样,forward 跳转页面,会携带请求的参数到新的页面;redirect 跳转页面,属于一次全新的 http 请求,无法携带上一次请求的参数
    • http请求次数不同:forward 1次;redirect 2次
  9. HTTP报文结构

    • 对于TCP来说,在传输的时候分为两个部分:TCP头和数据部分
  • HTTP类似,也是header+body的结构
    * 起始行+头部+空行+实体
  • 请求报文和响应报文有所不同
    • 起始行
    • 请求报文
      * 方法+路径+http版本 GET /home HTTP/1.1
      • 响应报文(状态行)
      • http版本+状态码+原因 HTTP/1.1 200 OK
        • 每两个部分之间用空格隔开,最后一个部分应该接一个换行
  • 头部
    * 字段众多,且牵扯到http很多特性
    • 格式
      * 字段名不区分大小写
      * 字段名不允许出现空格,不可以出现下划线_
      * 字段名后面必须紧接:
      • 空行
        • 区分头部和实体
        • 空行后面全部被视为实体
      • 实体
        • 就是具体的数据,也就是body部分。
      • 请求报文对应请求体
        • 响应报文对应响应体
  1. HTTP请求方法

    • HTTP/1.0:支持GET、POST、HEAD三种HTTP请求方法。
    • HTTP/1.1:该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。新增了
      • GET: 通常用来获取资源
      • HEAD: 获取资源的元信息
      • POST: 提交数据,即上传数据
      • PUT: 修改数据
      • DELETE: 删除资源(几乎用不到)
      • CONNECT: 建立连接隧道,用于代理服务器
      • OPTIONS: 列出可对资源实行的请求方法,用来跨域请求
      • TRACE: 追踪请求-响应的传输路径
  2. GET和POST区别

    • GET: 通常用来获取资源
    • HEAD: 获取资源的元信息
    • POST: 提交数据,即上传数据
    • PUT: 修改数据
    • DELETE: 删除资源(几乎用不到)
    • CONNECT: 建立连接隧道,用于代理服务器
    • OPTIONS: 列出可对资源实行的请求方法,用来跨域请求
    • TRACE: 追踪请求-响应的传输路径
  3. URI的结构

    月黑雁飞高,计网全知道_第3张图片

    • scheme 表示协议名,比如http, https, file等等。后面必须和://连在一起。
    • user:passwd@ 表示登录主机时的用户信息,不过很不安全,不推荐使用,也不常用。
    • host:port表示主机名和端口。
    • path表示请求路径,标记资源所在位置。
    • query表示查询参数,为key=val这种形式,多个键值对之间用&隔开。
    • fragment表示 URI 所定位的资源内的一个锚点,浏览器可以根据这个锚点跳转到对应的位置。
  4. Http状态码

    • 1xx: 表示目前是协议处理的中间状态,还需要后续操作。
      • 101 Switching Protocols。在HTTP升级为WebSocket的时候,如果服务器同意变更,就会发送状态码 101。
    • 2xx: 表示成功状态。
      • 00 OK是见得最多的成功状态码。通常在响应体中放有数据。
      • 204 No Content含义与 200 相同,但响应头后没有 body 数据。
      • 206 Partial Content顾名思义,表示部分内容,它的使用场景为 HTTP 分块下载和断点续传,当然也会带上相应的响应头字段Content-Range
    • 3xx: 重定向状态,资源位置发生变动,需要重新请求。
      • 301 Moved Permanently即永久重定向,存在缓存优化
      • 302 Found,即临时重定向。
      • 304 Not Modified: 当协商缓存命中时会返回这个状态码。
    • 4xx: 请求报文有误。
      • 400 Bad Request: 开发者经常看到一头雾水,只是笼统地提示了一下错误,并不知道哪里出错了。
      • 403 Forbidden: 这实际上并不是请求报文出错,而是服务器禁止访问,原因有很多,比如法律禁止、信息敏感。
      • 404 Not Found: 资源未找到,表示没在服务器上找到相应的资源。
      • 405 Method Not Allowed: 请求方法不被服务器端允许。
      • 406 Not Acceptable: 资源无法满足客户端的条件。
      • 408 Request Timeout: 服务器等待了太长时间。
      • 409 Conflict: 多个请求发生了冲突。
      • 413 Request Entity Too Large: 请求体的数据过大。
      • 414 Request-URI Too Long: 请求行里的 URI 太大。
      • 429 Too Many Request: 客户端发送的请求过多。
      • 431 Request Header Fields Too Large请求头的字段内容太大。
    • 5xx: 服务器端发生错误。
      • 500 Internal Server Error: 仅仅告诉你服务器出错了,出了啥错咱也不知道。
      • 501 Not Implemented: 表示客户端请求的功能还不支持。
      • 502 Bad Gateway: 服务器自身是正常的,但访问的时候出错了,啥错误咱也不知道。
      • 503 Service Unavailable: 表示服务器当前很忙,暂时无法响应服务。
  5. Http

    • 介绍:超文本传输协议,是一个基于TCP/IP通信协议来传递数据,默认端口号80
    • 特点:
      • 灵活可扩展
        • 语义自由
        • 传输形式多样
      • 可靠传输
      • 请求-应答:
      • 无状态:状态指通信过程的上下文信息,而每次http请求都是独立、无关的、默认不需要保留状态信息
    • 缺点
      • 无状态:
        • 在需要长连接的场景中,需要保存大量的上下文信息,以免传输大量重复信息
      • 明文传输
        • 协议里的报文(头部)不使用二进制数据,而是文本形式
      • 队头阻塞问题
        • 当http开启长连接时,公用一个TCP连接,同一队列只能处理一个请求。
  6. Accept系列字段

    • 数据格式
    • 压缩方式
    • 支持语言
    • 字符集
  7. 对于定长和不定长的数据HTTP是怎么传输的

    • 定长包体:
      • 在传输的时候会带上Content-Length来指明包体的长度。太大会导致报错
    • 不定长包体:
      • 使用Thransfer-Encoding:chunked
        • 长度字段会被忽略
        • 基于长连接持续推送动态内容
  8. HTTP大文件传输

    • 采取了范围请求,运行客户端仅仅请求一个资源的一部分
    • 前提是服务器要支持范围请求
      • 加入响应头:Accept-Ranges:none
    • Range字段拆解
      • 格式bytes=x-y
        • 0-499:表示从开始到第499个字节
        • 500-表示从第500个字节到文件终点
        • -100表示文件的最后100个字节
      • 服务器收到请求以后,首先验证范围是否合法,如果越界了那么返回416错误码,否则读取相应片段,返回206状态码
  9. HTTP1.1如何处理队头阻塞

    • 队头阻塞:收发报文的任务被放到一个队列中串行执行,一旦队首的请求处理太慢,就会阻塞后面请求的处理
    • 解决
      • 并发连接:
        • 对于一个域名运行分配多个长连接。
      • 域名分片:
        • 分出多个二级域名
  10. HTTP代理

    • 功能
      • 负载均衡:代理服务器拿到请求后根据算法(随机算法、轮询、一致性hash、LRU)来分发到不同的服务器
      • 保障安全:发现故障将其剔除、对于上下文数据进行过滤,对非法ID限流
      • 缓存代理
    • 头部字段
      • Via:via中代理的顺序即为在HTTP传输中报文传达的顺序
      • X-Forwarded-For:记录的是请求方的ip地址
      • X-Real-IP:获得真实IP字段
  11. Http:

    • 介绍:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ElVh3nsn-1583117494916)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200302095201.png)]

你可能感兴趣的:(面试)