【计算机网络】 ------ 前端面试必备 --- 复习专用

      最后更新:2022-06-11 07:04:27 手机定位技术交流文章

      目录

      • 1. HTTP协议
          • 1.1常见的HTTP请求方法
          • 1.2常见的HTTP状态代码
          • 1.3GET和 POST请求之间的区别
          • 1.4HTTP协议与HTTPS之间的区别(需要)
          • 1.HTTP请求/响应消息是什么
          • 1.6.HTTP1.0和HTTP1的区别是HTTP1.1和HTTP2.0的区别
          • 1.7HTTP缓存
          • 1.8当你在浏览器中输入URL并按返回时会发生什么
      • 2.HTTPS协议
          • 对称加密/非对称加密
      • 3.DNS域名分析过程
      • 4. 网络模型
          • 4.1OSI7层模型
          • 4.2TCP/IP参考模型
      • 5.TCP和UDP
          • 5.1TCP和UDP之间的区别
          • 5.2 三次握手
          • 5.3 四次挥手
      • 6. WebSocket

      1. HTTP协议

      HTTP超文本传输协议(HTTP supertext transport protocol)是实现客户端与服务器之间的通信的响应协议,是互联网应用中最广泛的网络传输协议之一。

      客户端(浏览器)向服务器提交HTTP请求,服务器向客户端返回响应,该响应包含关于请求的状态信息,并可能包含请求的内容。

      1.1常见的HTTP请求方法

      • 获取:从服务器获取数据
      • POST:向服务器发送数据
      • PUT:上传文件,更新数据
      • 删除:删除服务器上的对象
      • 头:与GET方法相同,但没有响应体,只发送状态行和头条
      • 选项:查询支持的跨域请求请求方法
      • 步骤:逆显示服务器接收的请求,主要用于测试或诊断
      • 连接:需要设置一个隧道来与代理服务器通信,使用隧道来通信TCP

      1.2常见的HTTP状态代码

      在这里插入图片描述

      • 2XX 成功
        200 OK 请求正常处理
        204未成功处理内容请求,但未返回资源
        206部分内容执行范围请求,服务器只执行请求资源的部分GET方法
      • 3××重定向
        301 永久地移动,永久地重新定位请求资源已经分配给一个新的URL
        302 找到临时向请求重新指向的资源被临时定位到一个新的URL
        303 参见其他一个资源在另一个URL上存在,应该使用GET方法获取
        304未修改的浏览器缓存相关, 发送附加条件请求, 返回条件未满足, 不与重新定位有关
      • 4××客户端错误
        400 请求消息的语言中错误的请求
        401未授权用户身份验证失败
        403禁止服务器拒绝
        404没有找到服务器没有找到的资源
      • 5××服务器错误
        500个内部服务器错误
        503服务不可用服务器忙

      1.3GET和 POST请求之间的区别

      Post和Get是HTTP请求的两个方法

      • 从服务器获取数据(例如请求网页资源)
        发送是发送数据到服务器(例如注册用户)的操作
      • 获取请求的数据将在地址栏中显示,而邮件请求则不会显示
        获取请求数据被添加到URL中,并将邮件数据置于HTTP封筒中
      • 安全问题:邮件比收到的更安全
      • 获取请求发送少量数据,后请求发送大量数据

      1.4HTTP协议与HTTPS之间的区别(需要)

      • HTTP是一个超文本协议,信息以纯文本传输,HTTPPS是一个安全的SSL加密协议
      • HTTP和HTTPPS连接完全不同,不同的端口,HTTP协议端口为80,HTTP协议端口为443
      • HTTP协议连接简单无状态;HTTPS协议由SSL+HTTP协议构建,是可加密和认证的网络协议,比HTTP更安全
      • HTTPS需要更高成本的CA证书;HTTPS不需要

      1.HTTP请求/响应消息是什么

      所要求的报告包括四个部分

      • 请求行:请求方法字段,URL字段,HTTP协议版本字段,由空间分隔
      • 请求标题:关键字/值对,每行一对,以英文缩写分开
      • 空⾏
      • 请求机构:如邮寄等请求所载的数据

      答复信息由四个部分组成

      • 响应线:由网络协议版本、状态代码和状态代码推理语句组成
      • 反应头:反应头的组成
      • 空⾏
      • 响应机构:服务器响应数据

      1.6.HTTP1.0和HTTP1的区别是HTTP1.1和HTTP2.0的区别

      HTTP 1.0和HTTP1有以下区别

      • 连接: http1.0默认使用非永久连接, http1代替。1默认使用持久连接
      • 资源请求, http1.只允许资源请求的一个部分,即返回代码为206
      • 缓存, http1.引入更多的缓存控制策略
      • http1.1添加一个主机字段,以指定服务器的域名
      • http1.1与http1.0相符,增加了许多请求方法,如PUT、HEAD、OPTIONS等。

      HTTP 1.1和HTTP 2.0的区别

      • 二进制协议:HTTP/2是一个完整的二进制协议
      • 多路复制:HTTP/2实现多路复制以避免队列阻塞
      • 数据流:HTTP/2使用数据流的概念
      • 头部信息压缩:HTTP/2引入头部信息压缩机制
      • 服务器传送:HTTP/2允许服务器发送资源给客户端,无需请求

      1.7HTTP缓存

      哪些资源可以缓存-静态资源(js,css,img)

      有两个类型的HTTP缓冲策略:强缓冲和谈判缓冲,两者都由服务器设置HTTP字节实现

      强缓存:直接从浏览器中缓存的本地读取资源,不要求服务器;
      过期控制缓存过期,已被缓存控制取代

      咨询缓存:在使用本地缓存之前,向服务器发送请求,以查看当前浏览器缓存是否过期,如果不:返回304,使用本地资源,如果过期,请求最新的资源

      1.8当你在浏览器中输入URL并按返回时会发生什么

      1. 分析URL:使用传输协议和请求资源的路径
      2. DNS域名分析: DNS将域名分析为IP地址
      3. 浏览器通过IP地址找到服务器并建立TCP连接(三个手)
      4. 在三个TCP握手之后,开始发送HTTP请求
      5. 服务器处理请求并返回HTTP响应消息
      6. 在浏览器收到响应文本HTML后,分析渲染页面
      7. 数据传输完成后切断TCP连接(四手)

      2.HTTPS协议

      HTTP超文本传输协议采用文本传输信息,存在信息黑客、信息操纵和信息劫持的风险;
      HTTPS(Hypertext Transport Security Protocol):通过HTTP通信,使用SSL/TLS加密包,协议TLS/SSL具有身份验证、信息加密和完整性检查的功能;HTTPS的主要目的是向网站服务器提供身份验证,保护数据交换的私隐和完整性;

      对称加密/非对称加密

      TLS/SSL工作原则
      TLS/SSL = 散布函数hash + 对称加密 + 非对称加密

      • 基于散射函数的信息完整性验证
        常见的散射函数是MD5、SHA1、SHA256
      • 使用协商键加密数据的对称加密算法
        常见的对称加密算法是AES-CBC, DES, 3DES, AES-GCM等。
      • 不对称加密实现身份验证和关键咨询
        常见的不对称加密算法是RSA, ECC, DH等。

      HTTPS的缺点
      (1)除了通过TCP连接发送HTTP请求之外,它还必须与SSL通信,因此通信是缓慢的;
      (二)SSL必须进行加密处理,服务器和客户需要进行加密和解密操作处理,从而增加硬件资源和复杂处理成本;
      (三)申请SSL证书的费用

      3.DNS域名分析过程

      DNS(域名系统)是转换主机名称到IP地址的服务
      操作:分析域名为IP地址,客户端发送域名查询请求给 DNS服务器, DNS服务器通知客户端Web服务器的IP地址

      • 首先,它将在浏览器缓存中搜索相应的IP地址。如果它找到它,它将直接返回,如果它不能继续
      • 向本地DNS服务器发送请求,在本地域名服务器缓存中查询,如果找到,直接返回搜索结果,如果没有找到继续
      • 本地DNS服务器向根域服务器发送请求,该请求返回查询域中顶层域服务器的地址
      • 本地DNS服务器向顶层域名服务器发送请求,接收请求的服务器查询自己的缓存,如果存在记录,返回查询结果,如果不返回有关下层授权域名服务器的地址
      • 本地DNS服务器向授权域名服务器发送请求,域名服务器返回相应的结果
      • 本地DNS服务器将将返回的结果存储在缓存中,以便下次使用
      • 本地DNS服务器将返回结果返回浏览器

      4. 网络模型

      4.1OSI7层模型

      在这里插入图片描述

      • 应用层:HTTP(超文本传输协议),HTTPPS,FTP(文件传输协议),SMTP(简便邮件传输协议)
      • 传输层:TCP UDP
      • 网络层:IP协议层

      4.2TCP/IP参考模型

      在这里插入图片描述

      • 物理层通过物理手段连接计算机
      • 通过对特殊流的数据进行比较,将数据链层分开
      • 建立主机至主机通信的网络层
      • 传输层建立从港口到港口的通信
      • 应用程序层最终负责建立连接、数据格式转换和最终向用户渲染

      5.TCP和UDP

      TCP和UDP是OSI模型中的传输层中的协议

      • TCP

      TCP是一个面向连接的传输层协议,你必须首先建立传输数据之间的连接,在数据传输后释放链接。TCP提供可靠的传输,其可靠性在数据传输前在三手之间反映,以建立连接,而且在数据传递时,有确认 、 窗口 、 再传输 、 交通堵塞控制机制,在数据传输结束时切断连接

      • UDP

      UDP是无连接的,在发送数据之前不需要三进制的握手,而远程主机在接收UDP消息后不需要任何确认。虽然不可靠,但效率高,可以用于即时通讯

      5.1TCP和UDP之间的区别

      • TCP是连接导向的,UDP是非连接导向的(在发送数据之前不需要创建链接)
      • TCP可靠的传输(数据序列和精度),使用流量控制和拥塞控制;UDP只提供最基本的数据传输能力,不能保证可靠性
      • TCP是一个单向传输,UDP支持单向、单向、多向、多向、多向交互式通信
      • TCP为节点流动,UDP为消息
      • TCP数据传输缓慢,UDP数据传输快速
      • TCP适用于需要可靠传输的应用程序(文件传输、远程登录);UDP适用于实时应用(视频会议、语音广播)

      5.2 三次握手

      三个手实际上是客户端和服务器在创建TCP连接时需要发送的三个包。 实质上,连接服务器指定端口,建立TCP连接,并同步两个连接的序列数和确认数,交换关于TCP窗口大小的信息。

      最初,客户端处于关闭状态,服务端处于倾听状态

      • 第一次握手:客户端向服务端发送连接请求消息。报告部分包含自己的数据通信初始序列。

      • 第二次握手:接收连接请求消息后,服务器如果同意连接,则发送响应,并包含自己的数据通信初始序列,并在发送消息时输入SYN-RECEIVED状态。

      • 第三次握手:当客户收到对连接的同意的回应时,一个确认消息也发送到服务端。该消息发送后,客户端将输入“ ESTABLISHED ”状态,接收此响应后,服务端也进入“ ESTABLISHED ”状态,此时连接建立成功。

      • 第一个握手:客户端发送网络包,服务端接收网络包。 这样,服务端可以得出客户端的发送能力和服务端的接收能力为正常。

      • 第二次握手:客户端接收的服务端口包。 这样,客户端可以得出结论,服务端的接收和发送能力,客户端的接收和发送能力是正常。

      • 第三个握手:客户端交付包,服务端接收包。 这样,服务器可以得出结论,客户端的接收和发送能力是正常,服务器本身的发送和接收能力是正常。
        因此,需要三个手来验证接收和发送功能是否正常

      5.3 四次挥手

      如果客户首先启动关闭请求,则最初会建立双方:

      • 第一波:如果客户端认为数据传输已经完成,则需要向服务器发送连接释放请求
      • 第二波:服务终止后收到连接释放请求,通知应用程序层释放TCP链接。然后发送ACK包,并输入CLOSE_WAIT状态,这表明客户端与服务端的连接已经释放,不再接收客户端发送的数据。但由于TCP连接是双向的,所以服务器仍然可以向客户端发送数据
      • 第三波:服务端将继续发送数据,如果数据仍未完成,在完成后向客户端发送连接释放请求,然后服务端将输入LAST-ACK状态
      • 第四波:客户收到释放请求后,向服务端发送确认,客户端此时输入“时间等待”状态。状态持续2msL,如果服务终止在该期间内没有重复请求,进入封闭状态。在服务结束时收到确认后,同时输入关闭状态

      为什么三次握手,四次挥手?

      • 由于TCP是一种双向运输方式,它不区分客户与服务端,建立连接是双向的过程。 三手确认双方的接受和传输能力是正常的,只有两手确认双方的接受和传输能力,建立双向连接是不可能的
      • 由于TCP连接是完全双重的,双方需要分别释放连接,而单个连接的释放只代表数据不能再发送给另一方,并且连接处于半释放状态。

      6. WebSocket

      WebSocket的出现使浏览器能够以实时双向的方式进行通信。
      它的最大特点是服务器可以自行向客户端发送消息,而客户端可以自行向服务器发送消息。

      WebSocket是一个由HTML5提供的浏览器和服务器之间提供完全双重通信的Web技术,属于应用程序层协议。
      浏览器和服务器可以直接创建一个持久的连接,并将数据传送到两个方向,只有一只手握住。

      优点
      支持双向通信, 更灵活, 更高效, 更可扩展.
      更好的二进制支持

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/27079.html

          热门文章

          文章分类