WebSocket与HTTP的区别,异步编程async/await解析

需积分: 0 1 下载量 109 浏览量 更新于2024-08-03 收藏 23KB MD 举报
"面经" 面试经验分享涉及到多个技术知识点,包括WebSocket与HTTP的区别、WebSocket与HTTP的联系、HTTP与HTTPS的区别、JavaScript中的async与await以及CSS中的rem与em单位。 1. WebSocket与HTTP的区别: - 含义:WebSocket是一种在单一TCP连接上建立全双工通信的协议,而HTTP是一个基于TCP的简单传输-响应协议,通常是单向通信。 - 连接方式:WebSocket需要浏览器和服务器通过握手协议建立连接,而HTTP由浏览器发起连接请求,服务器被动响应。 - 连接长度:WebSocket保持持久连接,而HTTP是短连接,尽管可以通过Ajax和长轮询模拟长连接,但本质上仍是短连接。 - 连接状态:WebSocket是双向有状态的连接,而HTTP是无状态的单向连接。 - 协议标识:WebSocket的URL以ws或wss开头,HTTP则对应http或https。 2. WebSocket与HTTP的联系: - 基础:两者都基于TCP协议,具有良好的兼容性。 - 错误处理:在连接建立过程中,它们对错误的处理方式相似。 - 连接模型:它们都采用Request/Response模型建立连接,但WebSocket在建立连接后能持续双向通信。 3. HTTP与HTTPS的区别: - 安全性:HTTPS是HTTP的安全版本,使用SSL/TLS加密,提供数据传输的安全保障,而HTTP不加密,数据传输可能存在被窃取的风险。 - 协议标识:HTTP的URL以http开头,HTTPS的URL以https开头。 4. JavaScript中的async与await: - `async`关键字用于定义一个函数为异步函数,它返回一个Promise对象。这使得异步操作可以被封装在函数内部,便于管理。 - `await`关键字用于在异步函数中等待Promise的解决。当Promise解决时,`await`表达式的结果就是Promise的结果,随后函数会继续执行。 5. CSS中的rem与em单位: - `rem`(root em)是相对于根元素(通常是html元素)的字体大小单位,用于创建统一的布局。 - `em`是相对于父元素的字体大小单位,这可能导致元素的大小随着其父元素大小的变化而变化,有时会导致计算复杂。 这些面试中的知识点涵盖了网络协议、前端开发和CSS布局,是现代Web开发中不可或缺的基础知识。理解和掌握这些概念对于开发高效、安全且用户体验良好的Web应用至关重要。