网络基础
-
常说的四层、五层、七层网络模型有什么区别:四层是TCP/IP模型,五层是TCP/IP与OSI七层模型的混合,七层是OSI模型。区别主要在应用层,五层模型相对简洁,将七层模型的会话层、表示层功能归到应用层。
-
TCP和UDP的区别是什么:TCP面向连接、可靠、有序、有流量和拥塞控制、传输速度相对慢、面向字节流;UDP无连接、不可靠、不保证有序、无流量和拥塞控制、速度快、面向报文。
-
HTTP和HTTPS的区别是什么:HTTP信息明文传输,HTTPS经SSL/TLS加密;HTTP连接简单无状态,HTTPS可加密传输、身份认证;HTTP端口80,HTTPS端口443。
-
常见的HTTP状态码有哪些:1xx信息,如100 Continue;2xx成功,如200 OK;3xx重定向,如301 Moved Permanently;4xx客户端错误,如400 Bad Request;5xx服务器错误,如500 Internal Server Error。
-
HTTP1.1和HTTP1.0的区别有哪些:HTTP1.0默认短连接,HTTP1.1默认长连接;HTTP1.1支持流水线,HTTP1.0不支持;HTTP1.1有更多缓存控制机制。
连接过程
-
TCP建立连接的过程是怎样的:客户端发送SYN包到服务器,服务器收到后发送SYN+ACK包,客户端再发送ACK包,完成三次握手建立连接。
-
为什么是三次握手:为了确保双方都能正常收发数据,防止已失效的连接请求报文段突然又传送到服务器,产生错误。
-
TCP断开连接的过程是怎样的:客户端发送FIN包,服务器收到后发送ACK包,服务器处理完数据后发送FIN包,客户端收到后发送ACK包,等待2MSL后关闭连接,这就是四次挥手。
-
第四次挥手为什么要等待2MSL:确保最后一个ACK能被服务器收到,若服务器没收到可重发FIN,同时等待一段时间让本连接的所有报文都从网络中消失,避免新连接收到旧连接的报文。
-
TCP半连接队列和全连接队列是什么:半连接队列存放SYN_RECV状态的连接请求;全连接队列存放完成三次握手的连接,等待应用层取走建立连接。
数据传输
-
TCP滑动窗口是什么:是TCP协议用于实现流量控制的机制,发送方和接收方都有滑动窗口,接收方通过通告窗口告诉发送方自己能接收的数据量,发送方根据此控制发送数据的量和速度。
-
发送方一直发送数据,但是接收方处理不过来怎么办:接收方通过TCP的流量控制机制,在ACK中告知发送方自己的接收窗口大小,让发送方调整发送速度;发送方也可通过拥塞控制调整发送速率。
-
粘包/拆包是怎么发生的:TCP是面向字节流,无边界区分,可能因为发送方连续发送数据、接收方接收不及时或网络MTU限制等导致粘包/拆包。可通过定长包头、添加分隔符、自定义协议等解决。
-
浏览器地址栏输入网站按回车后发生了什么:浏览器先进行缓存查找,无缓存则进行DNS解析获取IP地址,然后与服务器进行TCP连接,发送HTTP请求,服务器处理请求返回HTTP响应,浏览器解析渲染页面。
-
https的请求过程:浏览器发起HTTPS请求,服务器返回HTTPS证书,客户端验证证书合法性,合法则本地生成随机数,用服务器公钥加密随机数传给服务器,服务器用私钥解密,再用随机数构造对称加密算法加密返回内容传输给客户端。
其他
-
对称加密和非对称加密的区别:对称加密加密和解密用同一密钥,速度快但密钥管理困难;非对称加密使用公钥和私钥,公钥加密私钥解密或反之,安全性高但速度慢。
-
websocket和http的区别:HTTP是请求-响应模式,无状态,WebSocket是双向全双工通信,可持久连接实时通信。
-
什么是AUTH2.0协议:是一种授权框架,用于授权第三方应用访问用户资源,有授权码模式、简化模式、密码模式、客户端模式等认证方式。
-
什么是JWT令牌:即JSON Web Token,是一种用于在各方之间安全传输信息的开放标准,由头部、载荷、签名三部分组成,与普通令牌区别在于其数据结构和自包含性、安全性等。
-
什么是SSO:即单点登录,用户在多个相关但独立的系统中只需登录一次,就可访问所有相互信任的系统资源。
-
什么是认证和授权:认证是验证用户身份是否合法,授权是确定合法用户具有哪些操作权限。
-
Cookie和Session的区别:Cookie存于客户端浏览器,可被禁用或篡改,有大小和数量限制;Session存于服务器,相对安全,通过Session ID与客户端关联。
-
什么是CSRF攻击:即跨站请求伪造,攻击者诱导用户访问恶意链接,利用用户已登录状态在用户不知情下执行操作。可通过验证Referer、添加验证码、使用Token等方式防止。
-
IP地址和MAC地址的区别:IP地址是网络层地址,用于网络中设备的逻辑寻址和路由;MAC地址是数据链路层地址,用于局域网中设备的物理寻址,标识设备的网卡。
-
什么是NAT:即网络地址转换,用于实现私有网络和公共网络之间的地址转换,使多个私有IP地址可通过一个公共IP地址访问互联网,节省公网IP资源。
-
什么是防火墙:是位于内部网络与外部网络之间的安全防护系统,根据预设规则对进出网络的数据包进行检查、过滤和控制,阻止非法访问和恶意攻击。
-
什么是CDN:即内容分发网络,通过在不同地理位置部署节点服务器,缓存内容,根据用户位置和网络状况,将内容从距离用户最近的节点服务器传输给用户,提高内容访问速度和响应性能。
-
TCP是如何保证可靠性的:通过序列号和确认号确保数据有序和不丢失,有重传机制,流量控制通过滑动窗口,还有拥塞控制避免网络拥塞。