前端面试必备 | 通信协议 篇(P1-10)

alt

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请求方法有以下几种:

  1. GET:用于从服务器获取资源。GET请求是幂等的,即多次执行相同的GET请求应该返回相同的结果。它通常用于向服务器请求数据,并将响应作为正文返回给客户端。

  2. POST:用于向服务器提交数据,创建新资源或处理一些操作。POST请求不是幂等的,即多次执行相同的POST请求可能会产生不同的结果。它通常用于向服务器发送数据,并将响应作为正文返回给客户端。

  3. PUT:用于更新服务器上已存在的资源。PUT请求也是幂等的,即多次执行相同的PUT请求应该具有相同的效果。它通常用于替换服务器上指定位置的资源。

  4. DELETE:用于删除服务器上指定的资源。DELETE请求也是幂等的,即多次执行相同的DELETE请求应该具有相同的效果。它通常用于删除服务器上指定位置的资源。

  5. 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倡导使用自描述消息,即请求和响应中包含足够的信息让技术和非技术人员理解它们之间的交互。

alt

4. HTTP状态码中,常见的200、404和500是什么意思?

常见的HTTP状态码包括:

  • 200:请求成功。表示服务器成功处理了请求。
  • 404:未找到。表示服务器无法找到请求的资源。
  • 500:服务器内部错误。表示服务器在处理请求时遇到了不可预料的错误。

这些状态码是根据服务器对请求的处理情况返回的,用于客户端了解服务器的操作结果或错误原因。

5. 什么是WebSocket协议?它与HTTP协议有何不同?

WebSocket协议是一种基于TCP的协议,用于实现客户端和服务器之间的全双工通信。 它提供了一种在单个TCP连接上进行长期交互的方式,使得服务器可以主动向客户端推送数据。

相比之下,HTTP协议是一种无状态的请求-响应协议,通常用于客户端向服务器发送请求并接收响应。 HTTP协议是基于请求-响应模式的,意味着每次客户端想要获取新的数据时,都需要通过新的HTTP请求来获取。

以下是WebSocket协议与HTTP协议的不同之处:

  1. 连接方式:HTTP协议是短连接,即每次请求都需要建立和关闭连接。而WebSocket协议是长连接,在连接建立后,可以持续保持通信状态。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试必备 文章被收录于专栏

前端面试必备知识点:HTML和CSS、JS(变量/数据类型/操作符/条件语句/循环;面向对象编程/函数/闭包/异步编程/ES6)、DOM操作、HTTP和网络请求、前端框架、前端工具和构建流程、浏览器和性能优化、跨浏览器兼容性、前端安全、数据结构和算法、移动端开发技术、响应式设计、测试和调试技巧、性能监测等。准备面试时,建议阅读相关的技术书籍、参与项目实践、刷题和练习,以深化和巩固你的知识。

全部评论
HTTP/2是一种网络传输协议,用于在客户端和服务器之间传输超文本传输协议(HTTP)消息。😀
点赞 回复 分享
发布于 2023-08-30 16:25 广东
点赞 回复 分享
发布于 2023-08-30 16:35 广东
点赞 回复 分享
发布于 2023-08-30 16:35 广东
请求和响应都包含了一个Header和一个Body部分。 Header部分包含了请求或响应的元数据,如请求类型、URL、协议版本、身份验证信息、缓存控制等。 Body部分包含了实际的数据,如HTML文件、图像、视频、音频等。
点赞 回复 分享
发布于 2023-08-31 15:13 广东

相关推荐

上几次聊了互联网公司的商业模式和组织文化,今天以线上电商互联网为例,做个案例分析。在互联网电商出现前,如果你需要买东西,你往往需要去超市,百货商场,电器店,挑选好商品后一手付钱一手拿货。如果商品有问题,你还需要送到店里退货或者换货。互联网电商出现后,你只需要在电脑上动动鼠标或者在手机上动动手指,你需要的商品就可以送到你面前。互联网电商首要是卖货,往往遵守零售基本原则:价廉物美服务好。我们需要采销同学研究市场和特定用户群,打造创新产品,然后在市场上寻源采购。如果一切顺利,你通过买卖就可以赚差价。随着你进的货大卖成爆品,你的流量也激增。这个时候有人也想来你这里开店卖货,这样你除了自己卖货赚钱外,还可以赚别人卖货的服务费,比如广告费,流量费等。除了个人用户想来你这里买,企业也想,这样你的卖货业务不仅2C还开始2B。总之,你主要赚卖货的钱。你在线上卖货,一般你会找物流公司帮你发货和配送,但是你为了保证物流服务效率和客户体验,你组建了自己电商物流部门,建了仓库,买了车辆,请了配送小哥。电商的淡旺季决定了淡季物流部门资源和人员效率不高,你决定开放物流部门来给外部客户提供服务,这样你也赚物流服务钱。还有那些钱可以赚?我们明天继续聊。
点赞 评论 收藏
分享
评论
2
14
分享
牛客网
牛客企业服务