[TOC]
八、网络
79.http 响应码 301 和 302 代表的是什么?有什么区别?
301:永久重定向。
302:暂时重定向。
它们的区别是,301 对搜索引擎优化(SEO)更加有利;302 有被提示为网络拦截的风险。
80.forward 和 redirect 的区别?
forward是转发,redirect是重定向:
- 地址栏url显示:forward url不会发生改变,redirect url会发生改变;
- 数据共享:forward可以共享request里的数据,redirect不能共享;
-
81.简述 tcp 和 udp的区别?
tcp和udp是OSI模型中的传输层中的协议。tcp提供可靠的通信传输,而udp则常被用于让广播和细节控制交给应用的通信传输。
两者的区别大致如下: tcp面向连接,udp面向非连接即发送数据前不需要建立链接;
- tcp提供可靠的服务(数据传输),udp无法保证;
- tcp面向字节流,udp面向报文;
-
82.tcp 为什么要三次握手,两次不行吗?为什么?
如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那么此时服务器端就会一直等待客户端,这样服务器就拜拜浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再次确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
83.说一下 tcp 粘包是怎么产生的?
tcp粘包可能发生在发送端或者接收端,分别来看两端各种产生粘包的原因:
发送端粘包:发送端需要等缓冲区满才发送出去造成粘包;
-
84.OSI 的七层模型都有哪些?
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
- 数据链路层:负责建立和管理节点间的链路。
- 网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
- 传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
- 会话层:向两个实体的表示层提供建立和使用连接的方法。
- 表示层:处理用户信息的表示问题提,如编码、数据格式转换和加密解密等。
应用层:直接向用户提供服务,完成用户希望在网络上完成的各种工作。
85.get 和 post 请求有哪些区别?
get请求会被浏览器主动缓存,而post不会。
- get传递参数有大小限制,而post没有。
post参数传输更安全,get的参数会明文限制在url上,post不会。
86.如何实现跨域?
实现跨域有一下几种方案:
服务器端运行跨域,设置CORS等于*;
- 在单个接口使用注解@CrossOrigin运行跨域;
- 使用jsonp跨域。
87.说一下 JSONP 实现原理?
jsonp:JSON with Padding,它是利用