TCP的三次握手与四次挥手
一、三次握手第一次:SYN(同步请求) · 客户端发送带有SYN标志位(SYN=1)的报文,并随机生成一个初始序列号。 · 告知服务器希望建立连接,并提供初始序列号用于后续数据顺序校验。 第二次:SYN-ACK(同步确认) · 服务器收到SYN报文后,记录客户端的初始序列号(ISN_C),回复SYN-ACK报文(SYN=1,ACK=1)。 · SYN-ACK报文包含自己的初始序列号(ISN_S)和确认号(ACK=ISN_C+1). · 表示已收到客户端的SYN,确认客户端的连接请求,同时声明自身的初始序列号。 第三次:ACK(最终确认) · 客户端收到SYN-ACK报文后发送ACK报文(ACK=1),确认号为ISN_S+1。 · 客户端确认服务器的响应,双方确认连接可靠。 作用 · 交换初始序列号确保数据按需传输; · ...
从输入URL到出现页面
一、解析URL · 浏览器解析输入的URL,检查协议、域名、端口和路径。 · 若是非完整URL(如输入baidu.com),浏览器会尝试补全(自动添加https://)。 二、检查缓存 · 浏览器检查HSTS列表,若域名在列表中,自动将HTTP请求升级成HTTPS。 · 查看本地缓存是否有该资源的缓存副本,若有效则直接使用。 三、DNS解析 · 每个网址都有对应的ip地址,ip地址有数字组成,不便于记忆,将url地址解析为ip地址的过程就是DNS解析。 · DNS就是一个记录着url与其对应的ip地址的数据库。 · 将域名转换为ip地址: 1.浏览器缓存–>系统缓存(hosts文件)–>路由器缓存–>ISP的DNS服务器。 2.若未命中缓存,DNS服务器通过递归查询(如根域名服务器–>顶级域名服务器–>权威域名服务器)。 四、建立TCP连接 · 通过三次握手建立连接 · ...
闭包
定义 当内部函数引用了外部函数的变量,即使外部函数执行完毕,其作用域也不会被销毁,而是被内部函数保留。 特性 · 允许函数访问并记住其定义时的词法作用域。 · 在定义时确定作用域,而非执行时,内部函数可以访问外部函数的变量、参数和函数。 代码示例12345678function outer(){ let count = 0; return () => { console.log(++count); }}outer(); // 输出1outer(); // 输出2 优缺点优点 1.数据封装私有化:隐藏变量,只通过特定变量接口暴露操作; 2.保留函数状态:可用于 计数器、缓存、防抖/节流函数; 3.模块化开发:结合立即执行函数可以隔离作用域,避免全局污染。 缺点 有内存泄漏风险:及时解除闭包引用,obj=null。
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment








