1. http响应码301,302代表什么,有什么区别
-
301:永久重定向
-
302:暂时重定向
它们的区别是:301对搜索引擎优化更有利,302有被提示未网络拦截的风险
2. forward和redirect的区别
forward是转发,redirect是重定向
-
地址栏url显示:forward地址栏url不会改变,redirect地址栏url会改变
-
数据共享:forward可以共享request中的数据,redirect不能共享
-
效率:forward的效率比redirect高
3. 简述tcp,udp的区别
tcp和udp是OSI模型中的运输层中的协议,tcp提供可靠的通信传输,而udp则常被用于让广播和细节控制交给应用的通信传输
两者的区别大致如下:
-
tcp面向连接,udp面向非连接即发送数据前不需要建立连接
-
tcp提供可靠的数据传输,udp无法保证
-
tcp面向字节流,udp面向报文
-
tcp数据传输快,udp数据传输慢
4. tcp为什么要三次握手,两次不行吗,为什么?
如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
5. 说一下tcp粘包是怎么产生的
tcp粘包可能会发生在发生端和接收段,分别来看两端各种发生粘包的原因:
-
发送端粘包:发送端需要等缓冲区满再发送出去,造成粘包
-
接收端粘包:接收段不及时接收缓冲区的包,造成多个包接收
6. OSI的七层模型都有哪些?
-
物理层
-
数据链路层
-
网络层
-
传输层
-
会话层
-
表示层
-
应用层
7. get和post请求有哪些区别
-
get请求会被浏览器主动缓存,post请求不会
-
get传递参数有大小限制,而post没有
-
post传递参数更安全,而get的参数会明文的限制在url,而post不会
8. 如何实现跨域?
实现跨域有以下几种方案:
- 服务器端运行跨域 设置 CORS 等于 *;
- 在单个接口使用注解 @CrossOrigin 运行跨域;
- 使用 jsonp 跨域;
9. 说一下JSONP的实现原理
jsonp:JSON with Padding,它是利用script的src标签连接可以访问不同源的特性,加载远程返回的“JS”函数来执行的