1.5k 词
介绍Rspress 是一个由字节跳动团队开发的基于 Rsbuild 的静态站点生成器,基于 React 框架进行渲染,内置了一套默认的文档主题,你可以通过 Rspress 来快速搭建一个文档站点,同时也可以自定义主题,来满足你的个性化静态站需求,比如博客站、产品主页等。当然,你也可以接入官方提供的相应插件来方便地搭建组件库文档。 对于这类静态站点生成器,常见的还有: VuePress Vue 驱动的静态网站生成器 VitePress Vite 和 Vue 强力驱动的静态网站生成器, VitePress 甚至比 VuePress 要更轻更快,但它在灵活性和可配置性上作出了一些让步,比如它不支持插件系统。 Hexo 快速、简洁且高效的博客框架 Hugo Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 docsify docsify 可以快速帮你生成文档网站。不同于 GitBook、Hexo 的地方是它不会生成静态的 .html 文件,所有转换工作都是在运行时, 所以对SEO不太友好,更合适用于公司内部的技术文档等。可直接部署在 G...
606 词
HTTPSHTTPS 在HTTP的基础上多了一层TLS协议的建立 TLS四次握手(非对称加密过程)客户端发给服务端 客户端随机数 支持的协议,如TLS1.2 支持的加密算法,如RSA 服务端发给客户端 服务端随机数 接下来加密用的协议和加密算法 CA证书 客户端发给服务端 取出CA证书中的服务器公钥 生成pre_master_key, 用公钥加密然后发给服务器 将三个随机数:客户端随机数、服务端随机数、pre_master_key 计算得出一个会话密钥 将迄今为止的通信数据生成一个摘要,也叫finish报文,用会话密钥加密后传给服务端做校验 服务端发给客户端 服务端使用服务端私钥解密,得到pre_master_key, 集齐三个随机数 将三个随机数:客户端随机数、服务端随机数、pre_master_key 计算得出一个会话密钥 将迄今为止的通信数据生成一个摘要,也叫finish报文,用会话密钥加密后传给客户端做校验 后续就一直使用会话密钥进行对称加密了 问题: 为什么不直接传公钥,而是使用CA证书加密后的公钥 为什么是三个随机数,而不是一个或者两个 http发...
561 词
TCP/IP 四层模型应用层 负责应用与应用之间的通信 HTTP、FTP、Telnet、DNS、SMTP等 应用层是不用去关心数据是如何传输的 传输层 应用层的数据包会传给传输层,传输层(Transport Layer)是为应用层提供网络支持的。 在传输层会有两个传输协议,分别是 TCP 和 UDP。 TCP 的全称叫传输控制协议(Transmission Control Protocol)。TCP 相比 UDP 多了很多特性,流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。 当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块, 这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。 一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口。 网络层 网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文 如果 IP 报文大小超过 MTU(以太网...
96 词
从输入网址到网页显示发生了什么解析URL、生成生产 HTTP 请求信息DNS解析 有一种服务器就专门保存了 Web 服务器域名与 IP 的对应关系,它就是 DNS 服务器。 在域名中,越靠右的位置表示其层级越高。
382 词
网络复习指南从输入一个URL到网站显示,过程发生了什么 合法校验 DNS解析 IP解析 TCP/IP 建立连接 HTTP建立连接 服务端返回数据 Dom树渲染 CSSom树渲染 生成渲染树 网络七层模型,TCP/IP四层模型什么是HTTP 超文本传输协议 应用层协议,基于TCP 简单可扩展 无状态 HTTP的发展历程,各个版本的特点,解决了什么问题 HTTP/0.9 HTTP/1.0 HTTP/1.1 HTTP/2/0 HTTP/3.0 HTTP报文分析 请求体 请求体 空行 常见的请求方法常见的API设计风格 RESTful API GraphQL API SOAP API 常见的请求头cookiehttp缓存HTTP和HTTPS的区别跨域问题 跨域问题常见的解决方案: CORS 代理 JSONP Websocket PostMessage CORS ​
598 词
跨域问题背景跨域问题导致了浏览器无法拿到服务器的响应结果,把它拦截了下来,请求实际上是到达了服务器的,跨域是在浏览器同源策略的校验不通过产生的。 具体过程对于浏览器来说,对于不同的请求内容,它会有不同的处理方式。 简单请求概念 请求方法为GET POST HEAD 头部字段符合CORS安全规范 请求体内容为 text/plain multiple/form-data multiple/x-www-form-urlencoded 请求流程 浏览器发送请求到服务器。 服务器处理请求并返回响应。 浏览器检查 Access-Control-Allow-Origin,决定是否拦截响应。 复杂请求概念不是简单请求的都是复杂请求,复杂请求在实际请求发送之前会发送一个预检请求(preflight)Options方法。 请求过程 浏览器发送预检请求(OPTIONS)到服务器。 服务器返回预检响应。 预检响应里面会有服务器允许的请求体和请求体格式、以及这个预检校验生效时间(Access-Control-Max-Age),在这个时间以内,浏览器不用发送预检请求询...
93 词
变与不变前面提到了设计模式的核心是封装和变化 将不变的东西封装稳定,使变化的东西扩展灵活 于是乎我们如何去理解不变和变就变成了一个核心,有时候你认为的变其实是不变,你认为的变有一部分是不变。
581 词
学习设计模式的必要性我相信每个团队都不缺会用 Node,或者说用任何一门语言去写 Hello World 的同学,缺的是能够驾驭这门语言,能凭借自己深刻的架构思想和工程思想去支配这门语言,利用它去创造牛逼产出的人。 驾驭技术的能力。 具体来说,它分为以下三个层次: 能用健壮的代码去解决具体的问题; 能用抽象的思维去应对复杂的系统; 能用工程化的思想去规划更大规模的业务。 SOLID原则 “SOLID” 是由罗伯特·C·马丁在 21 世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。 设计原则是设计模式的指导理论,它可以帮助我们规避不良的软件设计。SOLID 指代的五个基本原则分别是: 单一功能原则(Single Responsibility Principle) 开放封闭原则(Opened Closed Principle) 里式替换原则(Liskov Substitution Principle) 接口隔离原则(Interface Segregation Principle) 依赖反转原则(Dependency Inversion Pri...
2k 词
PM2 简单入门介绍PM2 是一个守护进程管理器,它将帮助您管理并保持您的应用程序。 简单来说有以下场景: 当进程崩溃或异常退出时,默认情况下,PM2 会无限次重启崩溃的进程,除非你设置了重启限制。 当进程内存或 CPU 占用过高时,你可以为进程配置内存或 CPU 使用的上限。当超过设定的阈值时,PM2 会自动重启该进程,以避免系统资源被消耗殆尽。 当服务器重启或宕机时,PM2可以在服务器重启时自动启动并恢复之前运行的进程 当应用代码更新后自动重启,可以使用 watch 选项让 PM2 自动监控文件变化,并在检测到代码更新时自动重启进程。 日志管理,PM2 提供了强大的日志管理功能,可以通过命令查看、清除日志,也可以将日志存储在文件中,方便日后分析。 负载均衡,PM2 提供了内置的负载均衡(cluster mode),可以在多核服务器上启动多个实例,并自动分配流量给不同的实例。 持久性配置与状态恢复,通过 pm2 save 保存进程列表,pm2 resurrect 恢复上一次保存的进程状态。 操作启动1pm2 start index.js 重启pm2 restart 是简单...