前端大厂面试题探索编辑部——第二期

目录

题目

单选题1

题解

关于TCP

关于UDP

单选题2

题解

A选项的HTTP是否是无状态协议

B选项的HTTP支持的方法

C选项的关于HTTP的状态码

D选项HTTP协议的传输格式


题目

单选题1

1.以下哪个描述是关于 TCP 和 UDP 的区别()

A. TCP 是无连接的,而 UDP 是面向连接的

B. TCP 和 UDP 都不提供数据包排序功能

C. TCP 提供数据包排序功能,而 UDP 不提供

D. TCP 和 UDP 都是无连接的

题解

正确答案选择C,下面我会细致讲解,拆解这里提到的TCP,UDP,等各种概念,有细节也有适用于面试的记忆点。读者在仔细阅读我下面的讲解后,并关注好加粗部分,自然回来再看题,就能知道每个选项是为什么了。

关于TCP

TCP,全称为Transmission Control Protocol,是一种面向连接的,可靠的,基于字节流的传输层通信协议 ,这意味着在数据包开始传输之前,它需要在发送方和接收方之间建立连接,所以显然TCP是有连接的。一旦连接建立,数据就可以在两个点之间双向传输。这里提到了一个概念,数据包,指的是封装在固定结构,比如帧的一系列字节或者负载。数据包的概念需要不断有应用场景去理解,这对我们未来更深入理解网络性能有帮助。

TCP提供了数据包排序功能,这能保证数据包按照发送的顺序到达接收端,这是TCP的一个关键特性。

关于UDP

UDP,全称为User Datagram Protocol,即用户数据包协议,是一种简单的面向数据包的通信协议UDP是无连接的协议,它不在通信双方之间建立固定的连接,而是直接发送数据包。UDP不提供错误检查和修正功能,因此他的传输速度通常比TCP快。

TCP DCP
是否面向连接 ×
传输速度 较慢 较快
是否提供数据包排序 ×
错误检查和修正功能 ×

单选题2

2.关于HTTP协议,以下哪个选项是不正确的()

A. HTTP是无状态的协议,即服务器不会保存用户的任何数据。

B. HTTP协议支持GET、POST、PUT、DELETE等多种请求方法。

C. HTTP响应状态码200表示请求成功,404表示请求的资源未找到。

D. HTTP协议中,客户端发送的请求消息和服务器返回的响应消息都是以二进制格式传输的。

题解

正确答案选择D

A选项的HTTP是否是无状态协议

HTTP是无状态的协议,意思就是服务器默认不会保存用户的任何数据,这么做是为了简化服务器的设计,使其更容易支持大量并发连接。每个请求都是独立的,服务器不会从一个请求中保留信息到下一个请求。

不过同时呢,我们未来实现会话管理、个性化设置、购物车等功能,通常会在比如服务器端的数据库或者客户端的cookie这些地方,保存一下状态信息。

B选项的HTTP支持的方法

HTTP协议中,是支持比如GET、POST、PUT和DELETE等方法的,相对应的,我们用来完成获取资源、提交数据、更新资源和删除资源的功能。

C选项的关于HTTP的状态码

状态码有固定的格式,所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型:

  • 1xx消息------请求已被服务器接收,继续处理

  • 2xx成功------请求已成功被服务器接收、理解、并接受

  • 3xx重定向------需要后续操作才能完成这一请求

  • 4xx请求错误------请求含有词法错误或者无法被执行

  • 5xx服务器错误------服务器在处理某个正确请求时发生错误

虽然RFC2616中,已经推荐了描述状态的短语,例如"200 OK","404 Not Found",但是WEB开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。

D选项HTTP协议的传输格式

客户端发送的请求消息和服务器返回的响应消息都是以文本格式传输的,而不是二进制格式。虽然HTTP消息的主体可以包含非文本数据,但消息的起始行、头部等都是文本。常见的文本格式,比如TXT、HTML,而二进制格式,比如图像文件的JPG和PNG,音频文件的MP3和WAV。

相关推荐
用户7783366132118 小时前
serpbase + Cloudflare R2 边缘持久化实战
前端·人工智能
এ慕ོ冬℘゜8 小时前
jQuery attr() 方法超详细讲解:属性获取、赋值、实战踩坑全解
前端·javascript·jquery
东方小月8 小时前
从零开发一个 Coding Agent(三):EventStream 事件流通道设计与实现
前端·人工智能·后端
深念Y9 小时前
P2P组网选型与折腾记录
网络·网络协议·p2p·局域网·远程·组网
程序员黑豆9 小时前
鸿蒙应用开发:Refresh + List 下拉刷新组件使用教程
前端·华为·harmonyos
Hilaku9 小时前
为什么大厂对前端算法要求极高?
前端·javascript·程序员
会编程的土豆9 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
阿kun要赚马内10 小时前
DNS了解
网络协议
Tkto10 小时前
我用 WebGL 从「画个点」一路画到「贪吃蛇」
前端
xiaobaoyu10 小时前
前端代码常用规范
前端