
网络协议
文章平均质量分 69
北海屿鹿
越努力,越幸运
展开
-
Linux网络:数据链路层&以太网
位于物理层和网络层之间,其作用是将源自物理层来的数据可靠地传输到相邻节点的目标主机的网络层,主要通过物理介质(如以太网,Wi-Fi等)将数据分割成帧,并在相邻节点之间进行传输。“以太网”不是一种具体的网络,而是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容。数据链路层的协议有很多种,常见的有以太网(Ethernet),无线局域网(Wi-Fi)和点对点协议(PPP)等。在路由转发的过程中,IP地址描述的是路途总体的起点和终点,MAC地址描述的是路途上的每一个区间的起点和终点。原创 2025-04-03 12:29:07 · 703 阅读 · 0 评论 -
访问者模式
访问者模式(Visitor Pattern)是一种行为设计模式,它允许你将数据操作与数据结构分离。ObjectStructure(对象结构):能够枚举其所有元素,并可以允许访问者访问这些元素。通常是一个集合,如列表或树。ConcreteVisitor(具体访问者):实现每个访问操作,这些操作对数据结构中的元素执行具体操作。Element(元素):定义一个接受访问者对象的操作,这个操作通常是 accept 方法。Visitor(访问者):定义一个或多个访问操作,这些操作应用于访问对象结构中的元素。原创 2024-10-15 15:07:14 · 324 阅读 · 0 评论 -
WebServer构建响应 && 发送响应
发送响应注意:分多次发和把所有内容合成一个字符串一次性发送是没区别的send只是把内容拷贝到发送缓冲区中具体什么时候发,一次性发多少,是由TCP决定的此处_response.response_body发送逻辑确保了_response.response_body能全部发完此次请求为ProcessNonCgi时,需要从磁盘读取文件内容,再把内容拷贝到发送缓冲区中,这样是效率低下的sendfile()可以在两个文件描述符之间拷贝数据即:sendfile()可以把文件内容,直接拷贝到Tcp的发送缓冲原创 2024-10-15 15:04:52 · 548 阅读 · 0 评论 -
WebSocket心跳机制(笔记大全)
第一种方式会对服务器造成很大的压力,因为即使WebSocket连接正常,也要定时发送心跳包,从而消耗服务器资源。WebSocket心跳机制是必要的,它可以使WebSocket连接保持长连接,避免断开连接的情况发生。WebSocket心跳机制的原理是利用心跳包及时发送和接收数据,保证WebSocket长连接不被断开。WebSocket需要心跳,因为WebSocket连接可能会因为长时间没有数据传输而被断开,而心跳机制可以及时检测连接状态,保持WebSocket长连接。原创 2023-07-25 10:32:06 · 21772 阅读 · 2 评论 -
WebSocket心跳机制
存在网络忽然断开的情况,这时服务器端并没有触发onclose的事件。服务器会继续向客户端发送多余的信息,这些数据会丢失。为了解决上面的问题,就需要⼀种机制来检测客户端和服务端是否处于正常的连接状态。因此就有了websocket的心跳机制。(1)websocket在连接后,如果长时间服务端和客户端不发消息,服务端会把websocket给断开。1、创建webSocket。2、websocket事件。3、WebSocket方法。原创 2023-07-25 10:21:11 · 2184 阅读 · 0 评论 -
HTTP请求中token、cookie、session有什么区别
cookieHTTP无状态的,每次请求都要携带cookie,以帮助识别身份服务端也可以向客户端set-cookie,cookie大小4kb默认有跨域限制:不可跨域共享,不可跨域传递cookie(可通过设置withCredential跨域传递cookie)cookie本地存储HTML5之前cookie常被用于本地存储HTML5之后推荐使用localStorage和sessionStorage现代浏览器开始禁止第三方cookie原创 2023-05-30 10:13:17 · 1368 阅读 · 0 评论 -
网络端口号和协议号(大全)
端口号的主要作用是表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务端口号25指的是SMTP服务等。端口号一般习惯为4位整数,在同一台计算机上端口号不能重复,否则,就会产生端口号冲突这样的例外。原创 2023-05-23 09:55:17 · 4634 阅读 · 0 评论 -
HTTP和HTTPS的区别?
也同样很明显,第一https的技术门槛较高,多数个人或者私人网站难以支撑,CA机构颁发的证书都是需要年费的,此外对接Https协议也需要额外的技术支持;其二,目前来说大多数网站并不关心数据的安全性和保密性,其https最大的优点对它来说并不适用;其三,https加重了服务端的负担,相比于http其需要更多的资源来支撑,同时也降低了用户的访问速度;相比于http,https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。原创 2023-05-22 10:11:49 · 397 阅读 · 0 评论 -
如何实现浏览器内多个标签页之间的通信
1.使用WebSocket可以实现多个标签页之间的通信2.调用localStorage在一个标签页里面使用localStorage.setItem(key,value)添加(修改、删除)内容;在另一个标签页里面监听storage事件。即可得到localstorge存储的值,实现不同标签页之间的通信3.调用cookie+setInterval()原创 2023-05-13 09:10:32 · 362 阅读 · 0 评论 -
对webpack的理解——打包样式资源
webpack是一种前端资源构建工具,一个静态模块打包器。在webpack看来前端的所有资源文件都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)。原创 2023-03-28 19:45:25 · 251 阅读 · 0 评论 -
webpack 的热更新是如何做到的?原理是什么?
Hot Module Replacement,简称 HMR,在不需要刷新整个页面的同时更新模块,能够提升开发的效率和体验。热更新时只会局部刷新页面上发生了变化的模块,同时可以保留当前页面的状态,比如复选框的选中状态等。热更新的实现webpack-dev-server 启动的时候会做三件事情监听文件变化。原创 2023-02-14 13:45:33 · 1212 阅读 · 1 评论 -
什么是强缓存和协商缓存?
强缓存策略和协商缓存策略在缓存命中时都会直接使用本地的缓存副本,区别只在于协商缓存会向服务器发送一次请求。它们缓存不命中时,都会向服务器发送请求来获取资源。在实际的缓存机制中,强缓存策略和协商缓存策略是一起合作使用的。浏览器首先会根据请求的信息判断,强缓存是否命中,如果命中则直接使用资源。如果不命中则根据头信息向服务器发起请求,使用协商缓存,如果协商缓存命中的话,则服务器不返回资源,浏览器直接使用本地资源的副本,如果协商缓存不命中,则浏览器返回最新的资源给浏览器。原创 2022-12-30 20:12:28 · 1166 阅读 · 0 评论 -
Webpack中常见的Loader?解决了什么问题?
做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成到指定的文件中。把识别出的资源模块,移动到指定的输出⽬目录,并且返回这个资源在输出目录的地址(字符串)所有的事情,但是遇到图片格式的模块,可以选择性的把图片转成。可以同时挂载多个,处理顺序为:从右到左,从下往上。顺序为相反的顺序执行,即上述执行方式为。加载文件,这时候页面代码设置的样式并没有生效。中,对小体积的图片比较合适,大图片不合适。文件以外的内容,这时候我们就需要配置响应的。内部中,任何文件都是模块,不仅仅只是。原创 2022-12-30 20:06:50 · 761 阅读 · 0 评论 -
如何提高webpack的构建速度?
随着项目涉及到页面越来越多,功能和业务代码也会随着越多,相应的 的构建时间也会越来越久构建时间与日常开发效率密切相关,当本地开发启动 或者 的时候,如果时间过长,会大大降低工作效率所以,优化 构建速度是十分重要的环节常见的提升构建速度的手段有如下:在使用时,可以通过配置、、属性来匹配文件,接触、规定哪些匹配应用如采用 ES6 的项目为例,在配置 时,可以这样:合理使用 resolve.extensions在开发中会有各种各样的模块依赖,这些模块可能来自于自己编写的代码,也可能来自第三方库,原创 2022-12-07 12:03:18 · 1369 阅读 · 0 评论 -
WebSocket的理解以及应用场景
WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。WebSocket 的出现就解决了半双工通信的弊端。客户端向 WebSocket 服务器通知一个带有所有接收者ID的事件,服务器接收后立即通知所有活跃的客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。支持双向通信,实时性更强。原创 2022-12-09 12:08:35 · 600 阅读 · 0 评论 -
【多任务的实现】
表示层:数据的表示、安全、压缩。传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层。并发:指的是任务数>CPU核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行。端口是通过端口号来标记的,端口号只有整数,范围是从0到65535,按照一定的规定进行分配。是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。原创 2022-10-15 11:14:11 · 1080 阅读 · 0 评论 -
cookie与session的区别
1)、存储位置不同cookie的数据信息存放在客户端浏览器上。session的数据信息存放在服务器上。2)、存储容量不同单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。3)、存储方式不同cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。session中能够存储任何类型的数据,原创 2022-04-01 16:19:09 · 234 阅读 · 0 评论 -
对浏览器内核的理解
内核的种类很多,常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。:负责解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。起初渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核倾向于渲染引擎。7)搜狗、遨游、QQ浏览器:Trident(兼容模式)+Webkit(高速模式)9)2345浏览器:以前是IE内核,现在也是IE+Chrome双内核。:负责获取网页的内容并显示,不同的浏览器内核对网页的解析渲染也不同。原创 2022-12-14 13:51:58 · 406 阅读 · 0 评论 -
从浏览器地址栏输入url到显示页面的过程
第二次挥手:服务器--->客户端 ACK=1,ack=u+1,seq=v 服务器状态变为CLOSE_WAIT,TCP进入半关闭状态。第三次挥手:服务器--->客户端 FIN=1,ACK=1,ack=u+1,seq=w 服务器状态变为LAST_ACK。第四次挥手:客户端--->服务器 ACK=1,ack=w+1,seq=u+1 客户端状态变为TIME_WAIT,(如元素大小、位置的改变)(字体颜色、背景颜色的改变)第二次握手:服务端--->客户端 ACK=1,ack=x+1,seq=y(y随机生成)原创 2022-12-14 13:44:23 · 619 阅读 · 1 评论