「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
面试开始
面试官:今天聊聊计算机网络吧
面试官:来讲讲网络分层结构?
独白:计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。
大彬:TCP/IP五层模型分别是:应用层、传输层、网络层、数据链路层、物理层。
- 应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。
- 传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。
- 网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。
- 数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
- 物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。
面试官:嗯,刚提到TCP,说说TCP有哪些特点?
独白:哈哈,这个简单啦~
大彬:主要有以下5个特点:
- TCP是面向连接的运输层协议。
- 点对点,每一条TCP连接只能有两个端点。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- 面向字节流。
面试官:知道UDP吗,TCP和UDP有什么区别呢?
独白:老八股文了哈哈
大彬:主要区别如下:
- TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
- TCP提供可靠的服务;UDP不保证可靠交付。
- TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的。
- TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如实时视频会议等)。
- 每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的通信方式。
面试:讲一下浏览器中输入URL返回页面过程?可以详细点
大彬:首先是解析域名,找到主机 IP。
大彬:浏览器利用 IP 直接与网站主机通信,三次握手,建立 TCP 连接。浏览器会以一个随机端口向服务端的 web 程序 80 端口发起 TCP 的连接。
大彬:建立 TCP 连接后,浏览器向主机发起一个HTTP请求。
大彬:服务器响应请求,返回响应数据。
大彬:浏览器解析响应内容,进行渲染,呈现给用户。
面试官:知道session不?
大彬:由于HTTP是无状态协议,需要用某种机制来识具体的用户身份,用来跟踪用户的整个会话。常用的会话跟踪技术是cookie与session。
大彬:Session就是用于在服务器端保存用户状态的协议。通常用来保存用户的登录状态。
面试官:讲讲它的原理
独白:动不动就是原理...
大彬:session工作原理如下:
大彬:首先浏览器请求服务器访问web站点时,服务器首先会检查这个客户端请求是否已经包含了一个session标识(sessionid)
大彬:如果已经包含了一个sessionid,则说明以前已经为此客户端创建过session,服务器就按照sessionid把这个session检索出来使用
大彬:如果客户端请求不包含session id,则服务器为此客户端创建一个session,并且生成一个与此session相关联的独一无二的sessionid存放到cookie中,这个sessionid将在本次响应中返回到客户端保存
大彬:这样在交互的过程中,浏览器端每次请求时,都会带着这个sessionid,服务器根据这个sessionid就可以找得到对应的session。以此来达到共享数据的目的。
面试官:不错,今天面试就到这吧