1 Star 0 Fork 31

阿明 / Ebooks

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

最新面试题2021年网络编程面试题及答案汇总

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

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

网络编程

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

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

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

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

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

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

题3:什么是应用层?

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

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

题4:Socket 如何唯一标识一个进程?

socket基于tcp协议实现,网络层的ip地址唯一标识一台主机,而传输层的协议+端口号可以唯一标识绑定到这个端口的进程。

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

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

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

3、易于实现和维护。

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

题6:什么是 Socket?

socket是应用层与传输层的一个抽象,将复杂的TCP/IP协议隐藏在Socket接口之后,只对应用层暴露简单的接口。

socket是一种特殊的文件,它也有文件描述符,进程可以打开一个socket,并且像处理文件一样对它进行read()和write()操作,而不必关心数据是怎么在网络上传输的。

socket是一个tcp连接的两端。

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

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

题8:HTTP 状态码常见的都有哪些?

当浏览者访问网页时,浏览器会向网页所在服务器发出请求。浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code。

下面是常见的HTTP状态码:

200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。

HTTP状态码共分为5种类型:

“1**”状态码表示信息,服务器收到请求,需要请求者继续执行操作。

“2**”状态码表示成功,操作被成功接收并处理。

“3**”状态码表示重定向,需要进一步的操作以完成请求。

“4**”状态码表示客户端错误,请求包含语法错误或无法完成请求。

“5**”状态码表示服务器错误,服务器在处理请求的过程中发生了错误。

题9:什么是 Java 序列化(串行化)?

序列化是指一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

简单来说就是为了保存在内存中各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。

序列化的实现是将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,然后使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要想恢复的话需要使用输入流。

题10:同步、异步、阻塞、非阻塞概念是什么?

同步是指函数调用在没得到结果之前,没有调用结果,不返回任何结果。

异步是指函数调用在没得到结果之前,没有调用结果,返回状态信息。

阻塞是指函数调用在没得到结果之前,当前线程挂起。得到结果后才返回。

非阻塞是指函数调用在没得到结果之前,当前线程不会挂起,立即返回结果。

题11:http-中响应报文包含哪几部分

题12:http-中常见的响应头有哪些

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

题14:为什么-rpc-框架需要序列化

题15:序列化都有哪些使用场景

题16:如何解决-http-协议无状态协议

题17:什么是物理层

题18:rpc-和-http-分别有什么优缺点

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

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

题21:http-和-https-有什么区别

题22:为什么-tcp-握手三次挥手四次

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

题24:https-工作原理是什么

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

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/AminDev/ebooks.git
git@gitee.com:AminDev/ebooks.git
AminDev
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891