前端面试必备 | 通信协议 篇(P1-10)
1. 什么是HTTP协议?请解释其工作原理。
HTTP协议是一种用于在Web浏览器和Web服务器之间通信的协议。
它是一个客户端-服务器协议,用于请求和传输超文本标记语言(HTML)文档。
HTTP定义了:
- 客户端如何发送请求
- 服务器如何响应请求
工作原理:
当用户通过浏览器访问网页时,浏览器会向服务器发送HTTP请求。 服务器接收请求并根据请求内容进行处理。 服务器处理完成后,将相应的HTML文件或其他文件返回给浏览器,浏览器将文件解析后显示给用户。
HTTP工作基于请求-响应模型。 客户端发送一个请求给服务器,然后等待服务器的响应。 请求和响应都包含了一个Header和一个Body部分。
-
Header部分包含了请求或响应的元数据,如请求类型、URL、协议版本、身份验证信息、缓存控制等。
-
Body部分包含了实际的数据,如HTML文件、图像、视频、音频等。
HTTP协议使用TCP/IP
协议传输数据。当建立连接时,客户端与服务器之间将建立一条TCP连接,并在连接上发送HTTP请求和响应。连接还可以保持开放状态,以允许多个请求和响应使用同一连接。当不再需要连接时,可以通过关闭TCP连接来终止通信。
HTTPS
是在HTTP上添加了安全层(SSL / TLS),提供了数据加密和身份验证功能,以保护用户的隐私和安全。
2. 请列举几种常见的HTTP请求方法,并解释它们的用途。
常见的HTTP请求方法有以下几种:
-
GET
:用于从服务器获取资源。GET请求是幂等的,即多次执行相同的GET请求应该返回相同的结果。它通常用于向服务器请求数据,并将响应作为正文返回给客户端。 -
POST
:用于向服务器提交数据,创建新资源或处理一些操作。POST请求不是幂等的,即多次执行相同的POST请求可能会产生不同的结果。它通常用于向服务器发送数据,并将响应作为正文返回给客户端。 -
PUT
:用于更新服务器上已存在的资源。PUT请求也是幂等的,即多次执行相同的PUT请求应该具有相同的效果。它通常用于替换服务器上指定位置的资源。 -
DELETE
:用于删除服务器上指定的资源。DELETE请求也是幂等的,即多次执行相同的DELETE请求应该具有相同的效果。它通常用于删除服务器上指定位置的资源。 -
PATCH
:用于对服务器上已存在的资源进行局部更新。PATCH请求是非幂等和非安全(可能会引起副作用)的。它通常用于对资源进行部分更新,而不需要替换整个资源。
这些HTTP请求方法提供了一种标准化和统一化的方式来与Web服务器进行交互,并实现不同类型操作对应不同类型HTTP动词,以满足各种需求。
3. 什么是RESTful API?它与传统的API有什么区别?
RESTful API指的是一种符合REST(Representational State Transfer,即表述性状态转移)架构风格标准的API。RESTful API是一种基于HTTP协议构建的API,并且通过URL来确定资源,使用HTTP方法(如GET、POST、PUT、DELETE等)来定义操作行为,以及使用JSON等数据格式传输数据。
与传统的API相比,RESTful API具有以下区别:
-
关注资源:RESTful API将每个URL看做一个资源,并针对这些资源定义相应的操作。
-
无状态:RESTful API是一种无状态协议,即请求之间相互独立,不会保存上下文信息。
-
基于HTTP协议:RESTful API基于HTTP协议,使用HTTP方法来定义操作行为,并使用HTTP状态码来反映请求处理结果。
-
数据格式:RESTful API通常使用JSON等轻量级数据格式来传输数据。
-
可缓存性:由于RESTful API具有无状态特性和代表资源的URL地址,因此可以使客户端缓存资源或结果以提高性能和可伸缩性。
-
语义化:RESTful API倡导使用自描述消息,即请求和响应中包含足够的信息让技术和非技术人员理解它们之间的交互。
4. HTTP状态码中,常见的200、404和500是什么意思?
常见的HTTP状态码包括:
- 200:请求成功。表示服务器成功处理了请求。
- 404:未找到。表示服务器无法找到请求的资源。
- 500:服务器内部错误。表示服务器在处理请求时遇到了不可预料的错误。
这些状态码是根据服务器对请求的处理情况返回的,用于客户端了解服务器的操作结果或错误原因。
5. 什么是WebSocket协议?它与HTTP协议有何不同?
WebSocket
协议是一种基于TCP
的协议,用于实现客户端和服务器之间的全双工通信。 它提供了一种在单个TCP连接上进行长期交互的方式,使得服务器可以主动向客户端推送数据。
相比之下,HTTP协议是一种无状态的请求-响应协议,通常用于客户端向服务器发送请求并接收响应。 HTTP协议是基于请求-响应模式的,意味着每次客户端想要获取新的数据时,都需要通过新的HTTP请求来获取。
以下是WebSocket协议与HTTP协议的不同之处:
-
连接方式:HTTP协议是短连接,即每次请求都需要建立和关闭连接。而WebSocket协议是长连接,在连接建立后,可以持续保持通信状态。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试必备知识点:HTML和CSS、JS(变量/数据类型/操作符/条件语句/循环;面向对象编程/函数/闭包/异步编程/ES6)、DOM操作、HTTP和网络请求、前端框架、前端工具和构建流程、浏览器和性能优化、跨浏览器兼容性、前端安全、数据结构和算法、移动端开发技术、响应式设计、测试和调试技巧、性能监测等。准备面试时,建议阅读相关的技术书籍、参与项目实践、刷题和练习,以深化和巩固你的知识。