1 Star 0 Fork 31

霍月龙 / Ebooks

forked from dearHaoGeGe / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
2021年网络编程面试题大汇总附答案.md 7.91 KB
一键复制 编辑 原始数据 按行查看 历史

2021年网络编程面试题大汇总附答案

全部面试题答案,更新日期:01月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

网络编程

题1:如何解决 HTTP 协议无状态协议?

解决HTTP协议无状态协议可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。

题2:HTTP 协议中常用的请求方法有哪些?

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法:GET、POST和HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT方法。

方法 描述 是否包含主体
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
TRACE 回显服务器收到的请求,主要用于测试或诊断
OPTIONS 允许客户端查看服务器的性能。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

题3:网络传输协议本质和作用是什么?

协议本质是双方约定好的一种传输规则,其作用是为了让传输数据的双方节点能建立连接,按照约定去传输和解析数据。

题4:为什么要对网络协议分层?

1、简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。

2、灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。

3、易于实现和维护。

4、促进标准化工作。分开后,每层功能可以相对简单地被描述。

题5:为什么 TCP 握手三次,挥手四次?

因为只有在客户端和服务端都没有数据要发送的时候才能断开TCP。而客户端发出FIN报文时只能保证客户端没有数据发了,服务端还有没有数据发客户端是不知道的。

服务端收到客户端的FIN报文后只能先回复客户端一个确认报文来告诉客户端,服务端已经收到FIN报文,但服务端还有一些数据没发完,等这些数据发完了服务端才能给客户端发FIN报文,所以不能一次性将确认报文和FIN报文发给客户端,就是这里多出来了一次。

题6:HTTP 和 HTTPS 有什么区别?

1、HTTP的URL以http://开头,而HTTPS的URL以https://开头。

2、HTTP是不安全的,而HTTPS是安全的。

3、HTTP标准端口是80,而HTTPS的标准端口是443。

4、在OSI网络模型中,HTTP工作于应用层,而HTTPS的安全传输机制工作在传输层。

5、HTTP无法加密,而HTTPS对传输的数据进行加密。

6、HTTP无需证书,而HTTPS需要CA机构wosign的颁发的SSL证书。

区别 HTTP HTTPS
协议 运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份 身披SSL(Secure Socket Layer)外壳的HTTP,运行于SSL上,SSL运行于TCP之上, 是添加了加密和认证机制的HTTP。
端口 80 443
资源消耗 较少 由于加解密处理,会消耗更多的CPU和内存资源
开销 无需证书 需要证书,而证书一般需要向认证机构购买
加密机制 共享密钥加密和公开密钥加密并用的混合加密机制
安全性 由于加密机制,安全性强

题7:RPC 和 HTTP 有什么区别?

RPC和HTTP的存在重大不同的是:

HTTP请求是使用具有标准语义的通用的接口定向到资源的,这些语义能够被中间组件和提供服务的来源机器进行解释。结果是使得一个应用支持分层的转换(layers of transformation)和间接层(indirection),并且独立于消息的来源,这对于一个Internet规模、多个组织、无法控制的可伸缩性的信息系统来说,是非常有用的。

与之相比较,RPC的机制是根据语言的API(language API)来定义的,而不是根据基于网络的应用来定义的。

题8:什么是数据链路层?

数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。

在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。

题9:什么是应用层?

应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。

对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。

题10:通信双方如何进行端口绑定?

通常服务端启动时会绑定一个端口提供服务,而客户端在发起连接请求时会被随机分配一个端口号。

题11:什么是-java-序列化串行化

题12:什么是物理层

题13:socket-是全双工通信的吗

题14:http-协议是全双工通信的吗

题15:socket-如何唯一标识一个进程

题16:什么情况下需要序列化为什么-rpc-参数需要序列化参数中日期类型用-sql.date-还是-util.date

题17:同步异步阻塞非阻塞概念是什么

题18:应用层中常见的协议都有哪些

题19:为什么客户端发出第四次挥手确认报文后要等-2msl才能释放-tcp-连接

题20:http-中请求报文包含哪几部分

题21:socket-前后端通信是如何实现服务器集群

题22:tcp-中粘包问题有什么解决策略

题23:什么是-http-协议无状态协议

题24:http-中常见的请求头有哪些

题25:什么是网络层

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/huo-yuelong/ebooks.git
git@gitee.com:huo-yuelong/ebooks.git
huo-yuelong
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891