前端计网面试题(二)

news2024/11/26 11:39:48

一、在浏览器中输入url并且按下回车之后发生了什么?

  • 首先解析url,判断url是否合法,如果合法再判断是否完整。如果不合法,则使用用户默认的搜索引擎进行搜索。
  • DNS域名解析获取URL对应的ip地址。(首先看本地是否有缓存,没有查找本地DNS服务器,没有的话再向根域名服务器发送请求获取顶级域名服务器的地址,然后再向顶级域名服务器发送请求,获得权威域名服务器的地址,最终向权威域名服务器发送请求获取到域名的ip地址)
  • 获取MAC地址
  • TCP三次握手建立连接(首先客户端向服务器端发送一个SYN请求报文和一个随机序号,服务器收到请求后向客户端发送一个ACK确实报文段,并且也发送一个随机序号,客户端收到后再发送一个ACK确认报文,服务器收到后确认。
  • HTTPS握手(如果使用https协议则存在,主要利用到SSL/TSL协议保障信息的完整和安全性,防止数据在传输过程中被篡改,冒充,窃听。具体主要是通过混合加密(对称和非对称加密算法),摘要算法(哈希函数进行比较,判断信息是否被篡改),数字签名,以及申请数字证书实现身份验证,信息加密以及完整性校验)
  • 返回数据:页面请求发送以后,服务器会返回相应的响应头和HTML正文。
  • 浏览器解析渲染:首先处理HTML文件并构建DOM树,然后处理CSS标记构建CSSDOM树,将DOM树和CSSOM树合并为一颗渲染树,然后根据渲染树来布局,计算每个节点的几何信息,将各个节点的信息渲染到屏幕上,完成页面的渲染。
  • TCP四次挥手释放连接:首先客户端发送一个FIN报文和一个序列号,服务器收到后会发送一个ACK确认报文,此时服务器还可以发送数据给客户端,然后服务器发送一个FIN报文和一个序列号,客户端收到后发送确认。经过2MSL(最长段报文生命周期)后,连接关闭。

二、URL的组成部分

主要包括协议,域名,端口号,虚拟目录(/与/之间的内容),文件名(/到?之间的内容),参数部分(?后面的内容)

三、TCP(传输控制协议)和UDP(协议数据报协议)

  • 都是传输层协议

1.TCP协议特点

  • 面向连接(发送数据之前必须建立连接)
  • 仅支持单播传输(点对点),不支持广播和多播。
  • 面向字节流传输
  • 可靠传输(利用确认重传机制)
  • 提供拥塞控制

2. TCP和UDP区别

在这里插入图片描述

3.使用场景

TCP:文件传输,接收邮件,远程登录
UDP:QQ聊天,语音,视频

4.TCP重传机制

基于时间:TCP在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送数据的ACK确认报文,则对该报文进行重传。
基于确认信息:数据可能出现丢失、重复或失序的情况,为保证数据传输的正确性,TCP会重传其认为已丢失的包。

5.TCP拥塞控制机制

  • 慢启动:开始的时候不要发送大量数据,而是先测试一下网络的拥塞程度,由小到大增加拥塞窗口的大小。
  • 拥塞避免:当窗口值到达慢开始门限值的一半时,执行拥塞避免,每经过一个返回时间RTT就把发送方的拥塞控制窗口加一。
  • 快速重传:快重传要求接收方在收到一个失序的报文段后就立即发出重复确认,发送方只要连续收到三个重复确认就立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。
  • 快恢复:当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。

6.流量控制

流量控制就是为了让发送方发送数据的速度不要太快,要让接收方来得及接收。TCP采用大小可变的滑动窗口进行流量控制,窗口大小的单位是字节。

  • 当一个连接建立时,连接的每一端分配一个缓冲区来保存输入的数据,并将缓冲区的大小发送给另一端。

四、websocket

WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。

WebSocket 的出现就解决了半双工通信的弊端。它最大的特点是:服务器可以向客户端主动推动消息,客户端也可以主动向服务器推送消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【干货】SaaS出海业务必看的五个海外流量渠道

一、Product Hunt 月访客约500万 Product Hunt拥有巨大的用户流量和影响力,其全球Alexa排名在前四千以内。许多知名的产品,如ChatGPT、Notion等,都在这里成功上线并获得广泛关注。在美国有什么新产品(不论网站、APP还是插件&…

ThinkPHP+Bootstrap简约自适应网址导航网站源码

使用 ThinkPHPbootstrap 开发,后台采用全局 ajax 无刷新加载,前后台自适应,前台页面非常简洁适合自己收藏网站或做导航网站。 搭建教程: 1.整个主机 2.绑定解析域名 3.上传源码,解压 把解压出来的 nav.sql 文件导入数…

25.入口点注入

钩子注入是利用SetWindowsHookEx函数这是一个被动的注入方式,入口点注入是一个主动注入,就是做这件事什么都不为就是为了注入,入口点注入有很多优势比如说做一个游戏的多开器,多开的检测事情是在游戏一启动的时候完成的&#xff0…

两种典型的嵌入式系统架构模式

大多数嵌入式系统都具备实时特征,那么,这种嵌入式系统的典型架构可概括为两种模式,即层次化模式架构和递归模式架构。 1.层次化模式架构 为了达到概念一致性,许多系统通过层次化的方法进行搭建。这样做的结果是:位于高…

Offline : How to Leverage Diverse Demonstrations in Offline Imitation Learning

ICML 2024 paper code Intro 文章提出一种从混合质量数据中高效抽取有用状态动作数据用于模仿学习。算法基于一种假设,即使当前状态并非属于专家状态,但是若在该状态下采取动作导致下一状态是专家状态,那么该状态相较于随机状态更有价值。 …

【漏洞复现】海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统,灵活、方便、人性化设计、内容的专业网站。海洋CMS基于PHPMySql技术开发,完全开源免费、无任何加密代码。简单易用是最大的特色,可快速建立一个海量 0x02 漏洞概述 海…

Redis高并发高可用

1. 复制机制 在分布式系统中,为了解决单点问题,通常会将数据复制多个副本部署到其他机器,以满足故障恢复和负载均衡等需求。Redis提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,后面的…

1224 - 过河卒

题目描述 AA 点有一个过河卒,需要走到目标 BB 点。 卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如下图的 CC 点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。 例如&#xff…

LabVIEW RT环境中因字符串拼接导致的系统崩溃问题

在LabVIEW实时操作系统(RT)环境中运行的应用程序出现字符串拼接后死机的问题,通常涉及内存管理、内存泄漏或其他资源管理问题。以下是一些指导和步骤,帮助解决这个问题: 1. 内存泄漏检测 字符串拼接会在内存中创建新…

Could not resolve dependencies for project XXX

大家好,这里是教授.F 如果项目上使用的是idea ide的多模块话,需要模块之间的依赖,比如说系统管理模块依赖授权模块进行认证和授权,而认证授权模块需要依赖系统管理模块进行,然后,就开始相互依赖&#xff0…

大水文之------端午练练JS好了

最近有点不太知道要干啥了,昨天看了集cocos的介绍,下载了个DashBoard,看了看里面的内容,确实有点小震惊,还有些免费的源码可以学习,挺好的。 昨天学习ts,感觉自己的js水平好像不太行&#xff0c…

【Three.js】知识梳理十一:Three.js高级纹理类型

在使用Three.js创建3D图形时,纹理扮演着重要的角色,它们可以增加模型的视觉效果,使模型看起来更加真实。本文将深入讨论几种高级纹理类型:法线贴图(Normal Maps),凹凸贴图(Displacem…

CentOS7发送邮件的设置教程?有哪些步骤?

CentOS7发送邮件时如何配置SMTP?怎样设置群发功能? 无论是系统通知、错误警报还是应用程序的邮件发送,邮件服务都是不可或缺的。在CentOS7中,设置邮件服务可能需要一些配置和调整。AokSend将详细介绍如何在CentOS7上设置并配置邮…

树结构的实现

树的概念 树是一种非线性的数据结构,它是由n个有限节点组成一个具有层次关系的集合,它看起来像棵树,所以称其为“树”。如下图: 树可以分为根和子树,而子树又可以被分为根和子树,故我们可以用递归对其进行实…

.NET周刊【6月第2期 2024-06-09】

国内文章 C#开源实用的工具类库,集成超过1000多种扩展方法 https://www.cnblogs.com/Can-daydayup/p/18230586 文章介绍了一个免费的C#工具类库Z.ExtensionMethods,可以通过NuGet包管理器轻松集成。该库支持.NET Standard 2.0和.NET Framework 4.0&am…

低价和低俗

无底线的低价可不就是低俗了吗? O(∩_∩)O哈哈~ AI说的(引导他说的) 以下几个角度可以进行论证: 低价竞争可能导致质量下降:为了达到极低的价格,商家可能会降低产品或服务的质量标准,使用劣质材料或减少投入。这样可能会影响产品的功能、安全性和使用体验,给消费…

clipboard.js(web页面实现点击复制)

文章目录 codeshow 一个很简单的需求&#xff0c;一个单页面需要一个点击复制的功能 后来在线上找到一个clipboard.js可以实现&#xff0c;这里只用到了最基础的用法&#xff0c;页面样式布局基于bootstrap5.2.3 code <div class"d-flex align-items-center justify-co…

从零实现KV存储项目实战

本项目是从零实现一个完整的、兼容Redis协议的KV数据库项目。 通过每一行代码的编写。你会对整个系统了如指拿&#xff0c;这样对自己基本功的锻炼、对编程能力的提升都是很大的 项目提供完整的视频教程代码 下面是关于KV存储项目的技术大纲&#xff1a; 如果你在学习的过程…

登Cell Press子刊,武汉理工大学团队基于集成学习提出简化电化学模型,0.17s完成3500s的1C恒流放电

2022 年 7 月&#xff0c;不老男神林志颖突发车祸&#xff0c;作为专业赛车手的他驾驶的特斯拉 Model X 在行驶过程中忽然偏离既定轨迹&#xff0c;一头撞向路边的隔离带&#xff0c;随后车辆起火&#xff0c;并在救援车拖吊过程中二次起火&#xff0c;最终整辆车被烧到只剩下了…

NET 使用UDP协议

1.简单的使用UDP对接示例&#xff1a; /// <summary>/// 定时器&#xff0c;每秒定时获取是否有udp数据/// </summary>public DispatcherTimer Timer1 new DispatcherTimer() { Interval new TimeSpan(0, 0, 0, 1) }; public UdpClient SocketUDP { get; set; }/…