
计算机基础知识
文章平均质量分 81
计算机基础知识
秀秀_heo
一个学习前端开发的大学生,博客为自己的学习笔记,仅供个人学习使用。
展开
-
【浏览器】JavaScript 引擎
但是,机器码实际上也会被去优化为ByteCode(Deoptimization),这是因为如果后续执行函数的过程中,类型发生了变化(比如sum函数,原来执行的是number 类型,后来执行变成了string类型),之前优化的机器码并不能正确的处理运算,就会去优化的转换成字节码;比如如果一个函数被多次调用,那么就会被标记为热点函数,那么就会经过TurboFan转换成优化的机器码,提高代码的执行性能。字节码是一种低级的、比机器码更抽象的代码,它可以快速执行,但比直接的机器码慢。原创 2024-10-10 17:04:23 · 531 阅读 · 0 评论 -
【Node.js】事件循环
Node.js 的事件循环是一个 Event Loop,通过异步回调函数的方式实现非阻塞的处理。事件循环会在主线程上不断地执行,监听和处理事件,执行相应的回调函数。Node.JS的事件循环比浏览器端复杂很多。V8引擎解析JavaScript脚本。解析后的代码,调用Node API。libuv 库(C++)负责Node API的执行。它将不同的任务分配给不同的线程,形成一个事件循环,以异步的方式将任务的执行结果返回给V8引擎。V8引擎再将结果返回给用户。原创 2024-05-14 14:14:36 · 1914 阅读 · 0 评论 -
【JavaScript】事件循环——浏览器进程模型和渲染主线程
根据 W3C 官方的解释,每个任务有不同的类型,同类型的任务必须在同一个队列,不同的任务可以属于不同的队列。具体做法是当某些任务发生时,比如计时器、网络、事件监听,主线程将任务交给其他线程去处理,自身立即结束任务的执行,转而执行后续代码。在Chrome 的源码中,它开启一个不会结束的 for循环,每次循环从消息队列中取出第一个任务执行,而其他线程只需要在合适的时候将任务加入到队列末尾即可。不会立刻渲染在页面上!当其他线程完成时,将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程调度执行。原创 2023-10-22 13:05:46 · 548 阅读 · 0 评论 -
【JavaScript】事件循环——宏任务和微任务
从上到下解析,原创 2023-09-23 13:54:36 · 180 阅读 · 0 评论 -
【Nginx】快速入门
Nginx(engine x)是一个高性能的HTTP和反向代理web服务器。特点是占有内存小,并发能力强,简单易配置,支持高达 50000 个并发连接数的响应。原创 2024-08-24 15:15:14 · 478 阅读 · 0 评论 -
【浏览器】深入讲解浏览器渲染原理
合成线程拿到每个层、每个块的位图后,生成一个个指引(quad)信息。指引信息会识别出每个位图应该画到屏幕的哪个位置,以及会考虑到旋转,缩放等变形。变形发生在合成线程,与渲染主线程无关,这就是 transform 效率高的本质原因。合成线程会把 quad 提交给GPU进程,由GPU进程产生系统调用,提交给GPU硬件,完成最终的屏幕成像。reflow的本质就是重新计算layout树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发layout。原创 2023-10-22 17:35:05 · 1604 阅读 · 0 评论 -
【浏览器】缓存
的请求头)到服务器,验证协商缓存是否命中,如果协商缓存命中,请求响应返回的HTTP状态为304 (Not Modified),该请求不携带实体数据,若未命中,则返回200并携带资源实体数据。如果是第一种情况一一缓存已经失效,那么非常简单,服务器再次给予一个正常的响应(响应码 200 带响应体),同时可以附带上新的缓存指令,这就回到了上一节一一来自服务器的缓存指令。所谓客户端缓存,顾名思义,是将某一次的响应结果保存在客户端(比如浏览器)中,而后续的请求仅需要从缓存中读取即可,极大的降低了服务器的处理压力。原创 2024-12-30 17:24:05 · 1315 阅读 · 0 评论 -
【操作系统】内存和外存
以下外存主要以磁盘为例。原创 2024-12-09 14:31:21 · 352 阅读 · 0 评论 -
【计算机网络】期末速成(2)
传输层提供之间的逻辑通信,靠**套接字Socket=(主机IP地址,端口号)**找到应用进程。传输层会对收到的报文进行差错检测。传输层有两个协议 TCP(可靠,面向连接,时延大,适用于大文件) 和 UDP(不可靠,无连接,时延小,适用于小文件)。1.TCP是面向连接(虚连接)的传输层协议。2.每一条TCP连接只能有两个端点,TCP 层主要任务是向用户提供可靠的端到端服务。3.TCP提供可靠交付的服务,无差错不丢失、不重复、按序到达。可靠有序,不丢不重4.TCP提低全双工通信。原创 2024-12-06 09:09:46 · 985 阅读 · 0 评论 -
【计算机网络】期末速成(1)
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合,实现数据通信和资源共享。互连:是指计算机之间可以通过有线或无线的方式进行数据通信自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用集合:是指至少需要两台计算机中国的三大ISP:中国电信,中国联通和中国移动。一旦某个用户能够接入到因特网,所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户可以和他相连。因特网的两大组成部分是边缘部分 和 核心部分。原创 2024-12-03 09:12:31 · 1193 阅读 · 0 评论 -
前端开发调试之 PC 端调试
以下内容来自稀土掘金青训营课程。原创 2024-11-11 20:34:33 · 402 阅读 · 0 评论 -
【计算机网络】滑动窗口和拥塞控制
相反,流量控制往往是点对点通信量的控制,是个端到端的问题。由于大家不知道网络拥塞状况,同时发送数据,导致中间节点阻塞掉包,谁也发不了数据,所以就有了滑动窗口机制来解决此问题。,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。TCP 也维持了一个滑动窗口,解决端到端的问题,并且动态变化。原创 2024-10-11 10:34:53 · 927 阅读 · 0 评论 -
【计算机网络】CDN
CDN(,内容分发网络)是一种分布式的服务器网络,旨在通过将内容缓存到多个地理位置的服务器上,加速内容的分发和传递。CDN 的主要目的是减少用户访问网站时的延迟,提升用户体验,并缓解源服务器的负载压力。原创 2024-10-07 19:59:22 · 1285 阅读 · 0 评论 -
【浏览器】前端存储的方式
【代码】【浏览器】前端存储的方式。原创 2024-10-07 16:05:25 · 1372 阅读 · 0 评论 -
【浏览器】HTTP 状态码
表示客户端需要进一步的操作来完成请求,通常用于 URL 重定向。表示请求已接收,服务器继续处理。表示服务器在处理请求时发生错误。表示客户端发送的请求存在问题。表示请求已成功处理。原创 2024-10-07 14:46:37 · 1605 阅读 · 0 评论 -
【浏览器】回流与重绘
回流是指在渲染页面时,由于DOM结构或尺寸的改变,需要重新计算元素的几何属性和页面布局。当发生回流时,浏览器需要重新计算每个受影响元素的位置和尺寸,然后重新绘制整个页面。回流(Reflow)和重绘(Repaint)是浏览器渲染过程中的两个关键概念,它们与修改DOM和CSS相关。虽然这两个过程都是渲染的一部分,但它们的开销和影响是不同的。通过合理优化和设计,可以减少回流和重绘的次数,提高网页的响应速度和用户体验。因此,需要尽量避免频繁的DOM和样式改变,以减少回流的次数。原创 2023-08-29 15:35:38 · 494 阅读 · 0 评论 -
【浏览器】本地存储
本地存储是一种可以在浏览器中存储数据的机制。原创 2023-08-06 01:52:07 · 958 阅读 · 0 评论 -
【计算机网络】HTTP 版本
TCP的主要作用是以正确的顺序将整个字节流从一个端点传输到另一个端点,但是当流中的某些数据包丢失时,TCP需要重新发送这些丢失的数据包,等到丢失的数据包到达对应端点时才能够被HTTP处理,这被称为TCP队头阻塞问题。在上传/下截资源时,如果资源过大,将其分割为多个部分,分别上传/下载,如果遇到网绍故障,可以从已经上传/下载好的地方继续请求,不用从头开始,提高效率。http2.0通过字典的形式,将头部中的常见信息替换为更少的字符,极大的减少了头部的数据量,从而实现更小的传输量。避免了每次都要进行三次握手。原创 2024-05-25 10:33:54 · 648 阅读 · 0 评论 -
SSL、TLS、HTTPS
SSL劫持攻击是指攻击者劫持了客户端和服务器之间的连接,将服务器的合法证书替换为伪造的证书,从而获取客户端和服务器之间传递的信息。SSL剥离攻击是指攻击者劫持了客户端和服务器之间的连接,攻击者保持自己和服务器之间的HTTPS连接,但发送给客户端普通的HTTP连接,由于HTTP连接是明文传输的,即可获取客户端传输的所有明文数据。如果没有权威机构对证书进行签名,客户端就无法知晓\证书是否是伪造的,从而增加了中间人攻击的风险,https就变得毫无意义。HTTPS 握手过程中,客户端如何验证证书的合法性。原创 2024-05-25 10:33:21 · 367 阅读 · 0 评论 -
XSS 攻击
XSS(Cross site Scripting,跨站脚本攻击),是指攻击者利用站点的漏洞,在表单提交时,在表单内容中加入一些恶意脚本,当其他正常用户浏览页面,而页面中刚好出现攻击者的恶意脚本时,脚本被执行,从而使得页面遭到破坏,或者用户信息被窃取。原创 2024-05-25 10:32:19 · 390 阅读 · 0 评论 -
CSRF 攻击
CSRF(Cross-site request forgery,跨站请求伪造)。它是指攻击者利用了用户的身份信息,执行了用户非本意的操作。它首先引导用户访问一个危险网站,当用户访问网站后,网站会发送请求到被攻击的站点,这次请求会携带用户的cookie发送,因此就利用了用户的身份信息完成攻击。原创 2024-05-25 10:31:49 · 442 阅读 · 0 评论 -
本地域名 127.0.0.1 / localhost
在地址栏输入 域名 之后,浏览器会先进行 DNS(Domain Name System)查询,获取该域名对应的 IP 地址。文件也可以设置域名与IP 的映射关系,在发送请求前,可以通过该文件获取域名的IP 地址。本机和域名服务器一般都会有高速缓存,它存在的目的是为了减少查询次数和时间。所谓本地域名就是 只能在本机使用的域名 ,一般在开发阶段使用。请求会发送到 DNS 服务器,可以 根据域名返回 IP 地址。如果修改失败,可以修改该文件的权限。查看本机的DNS服务器。原创 2023-11-08 09:33:28 · 825 阅读 · 0 评论 -
【浏览器】同源策略及跨域问题
实际工作场合并不会用。JSONP 是⼀种跨域请求数据的⽅式,它利⽤了<script>标签不受同源策略限制的特性,可以从不同的域名请求数据。实现原理是在服务端⽣成⼀个 JavaScript 函数,客户端使⽤<script>标签请求该函数,服务端返回该函数的调⽤,并将需要传输的数据作为函数参数传⼊。所以jsonp解决的跨域问题具有很明显的不⾜,它只能实现get⽅法的请求。对于post put delete 等其它请求⽆法实现。// 前端// 后端 这⾥⽤ express 来模拟})})原创 2023-11-01 22:10:15 · 1079 阅读 · 0 评论 -
【计算机网络】浏览器的通信能力
这个约定深刻的影响着后续的前后端各种应用,现在,几乎所有人都在潜意识中认同了这一点,无论是前端开发人员还是后端开发人员。其中,input 中的 name 属性即为后端需要的 属性名(键),value 即为后端需要的 属性值(值)。浏览器会拿到当前页面的地址,以及当前页面的请求方法,重新发一次请求,同时抛弃当前页面。浏览器能够自动识别响应码,当出现一些特殊的响应码时浏览器会自动完成处理,比如。属性值,然后把表单中的数据组织到请求体(payload,负荷)中,发出。:css代码,浏览器会将它视为样式。原创 2023-10-30 19:09:19 · 934 阅读 · 1 评论 -
【计算机网络】应用协议
发起请求的称之为客户端,接收请求并完成响应的称之为服务器。举个例子:国内 bing 的重定向(不会还有人不知道自己一直访问的是 cn.bing.com,而不是 www.bing.com,不会吧不会吧~~~)具体使用的时候,我们发现京东是可以正常展示数据的,原因是使用会话技术(Cookie、Session)来解决这个问题。无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。,发送请求,然后可以查看响应的响应行,响应头和响应体。每次请求-响应都是独立的。原创 2023-10-29 20:25:02 · 554 阅读 · 0 评论 -
【计算机网络】SSH
SSH还支持安全文件传输。使用工具如SCP(Secure Copy Protocol)或SFTP(SSH File Transfer Protocol),用户可以安全地上传和下载文件到远程服务器,确保数据的保密性和完整性。总之,SSH是一种关键的网络协议,用于保护远程访问和数据传输的安全性。SSH的主要目的是提供对远程计算机的安全访问和管理,同时保护数据的隐私和完整性。:SSH还允许端口转发,这意味着你可以通过SSH连接来创建安全的隧道,将网络流量从一个计算机路由到另一个计算机,以保护敏感数据的传输。原创 2023-09-07 17:34:54 · 324 阅读 · 0 评论 -
【计算机网路】数据包的通讯过程
在发送数据之前,大部分情况下,数据会被分成较小的块,称为数据段或数据包。数据分段的目的是确保数据可以在网络中有效传输,即使网络会将数据包拆分成更小的片段。需要注意的是,不同的网络和协议可能会对数据包通信过程进行不同的优化和细化。在传输过程中,数据包可能会经过多个网络设备,例如路由器和交换机,这些设备负责将数据包从源传输到目标。这可以是用户在计算机上键入的文本、从文件中读取的内容、摄像头捕捉的图像或任何其他形式的数字信息。:通常,在数据包的接收端,会生成一个应答或确认数据包,以通知发送端数据已经成功接收。原创 2023-09-07 17:29:01 · 174 阅读 · 0 评论 -
【计算机网络】http 和 https
通常HTTPS抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。通常 HTTPS 抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。原创 2023-09-07 16:59:56 · 179 阅读 · 0 评论 -
【计算机网络】CDN 内容分发
它的目标是通过在全球多个位置分布服务器来存储和分发网站的静态资源,从而减少用户访问这些资源的延迟,提高网站的加载速度和性能。CDN节点会定期检查资源的有效性,如果资源发生了更新,CDN节点会自动更新缓存,以确保用户获取到最新的版本。CDN的DNS解析会返回一个最佳节点的IP地址,选择基于用户的地理位置、服务器的负载情况和其他因素。通过分布式存储和就近访问,CDN可以大大减少用户访问资源时的延迟,提高网站的加载速度,减轻源服务器的负载,提供更好的用户体验。许多大型网站和应用都使用CDN来优化其内容分发。原创 2023-08-29 15:52:00 · 441 阅读 · 0 评论 -
【浏览器】浏览器处理 URL 的过程
它会分解URL,识别出协议(例如HTTP、HTTPS)、主机名(例如www.example.com)、端口号(如果没有指定,默认是协议的默认端口)、路径(例如/、/page等)以及查询参数(例如?浏览器向服务器发送HTTP请求,包括请求方法(GET、POST等)、路径、协议版本、请求头(User-Agent、Accept等)以及可能的请求体(POST请求中的数据)。当浏览器完成渲染并处理完所有资源时,它会关闭与服务器的连接,释放相关资源,但可能会保持与服务器的长连接以获取进一步的资源(例如Ajax请求)。原创 2023-08-29 15:44:28 · 526 阅读 · 0 评论 -
【计算机网络】TCP 的三次握手和四次挥手
简述TCP连接的过程三次握手:TCP协议通过三次握手建立可靠的点对点连接,具体过程是:首先服务器进入监听状态,然后即可处理连接第一次握手:建立连接时,客户端发送 syn 包到服务器,并进入 SYN_SENT 状态,等待服务器确认。在发送的包中还会包含一个初始序列号 seq。此次握手的含义是客户 端希望与服务器建立连接。第二次握手:服务器收到 syn 包,然后回应给客户端一个 SYN+ACK 包,此时服务器进入SYN_RCVD 状态。原创 2023-08-29 14:49:44 · 277 阅读 · 0 评论 -
【计算机网络】网络模型
可以把 TCP 比作打电话,电话接通、通话、结束挂断整个过程都是可靠的,也可以把 UDP 比作写信,对方能否收到,信发出的顺序等都是不可靠的。这一层常被称为数据段。(MAC地址:每个网卡的唯一标识,明确发送者和接收者,直到数据内容和进行分组)通过广播的形式传播,局域网的所有计算机都能收到消息。OSI七层模型的每个层次都有特定的功能,数据从发送方开始从应用层逐层封装,直到物理层,然后在接收方,从物理层开始在逐层解封装,使得不同的设备和应用程序能够在网络上进行通信。物理层的设备有网卡,网线,集线器,中继器等。原创 2023-08-29 00:40:13 · 589 阅读 · 0 评论