1.forward 和 redirect 的区别?
1. 从地址栏显示来说:
1)forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。
2)redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。
2。 从数据共享来说:
1)由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者servlet中使用。即可以共享数据
2)redirect不能共享
3. 从运用的地方来说
1)forword 一般用于用户登录的时候,根据角色转发到相应的模块
2) redirect一般用于用户注销登录时返回主页面或者跳转到其他网站
4。 从效率来说:
1)forword效率高,而redirect效率低
5. 从本质来说:
forword转发是服务器上的行为,而redirect重定向是客户端的行为
6. 从请求的次数来说:
forword只有一次请求;而redirect有两次请求,
https://blog.csdn.net/weixin_37766296/article/details/80375106
2.tcp 与udp 的区别
1.tcp 是面向连接的,udp 是无连接的,tcp 提供可靠的服务,数据没有丢失,没有重复,按照顺序到达,udp没有可靠性
2.tcp 是面型字节流的,udp 是面向报文的
3..tcp 为什么要三次握手,两次不行吗?为什么?
为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤
如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认
4.说一下 tcp 粘包是怎么产生的?
发送方发送的多个数据包,到接受方缓冲区首位相连,粘成一包,被接受
原因: tcp 协议默认使用Nagle 算法坑你会把多个数据包一次发送到接受方
应用程序读取缓存的数据包的速度小于接受数据包的速度,缓存中的各个数据包会被应用程序当成一个包一次读
取
5.OSI 的七层模型都有哪些?
物理层,数据链路层,网络层,传输层,会话层,表达层,应用层
6.get 和 post 请求有哪些区别?
get 和 post 请求有哪些区别?_ConstXiong-CSDN博客_post请求和get请求有什么不同
7.如何实现跨域?
1、jsonp
利用了 script 不受同源策略的限制
缺点:只能 get 方式,易受到 XSS攻击
2、CORS(Cross-Origin Resource Sharing),跨域资源共享
当使用XMLHttpRequest发送请求时,如果浏览器发现违反了同源策略就会自动加上一个请求头 origin;
后端在接受到请求后确定响应后会在后端在接受到请求后确定响应后会在 Response Headers 中加入一个属性 Access-Control-Allow-Origin;
浏览器判断响应中的 Access-Control-Allow-Origin 值是否和当前的地址相同,匹配成功后才继续响应处理,否则报错
缺点:忽略 cookie,浏览器版本有一定要求
3、代理跨域请求
前端向发送请求,经过代理,请求需要的服务器资源
缺点:需要额外的代理服务器
4、Html5 postMessage 方法
允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本、多窗口、跨域消息传递
缺点:浏览器版本要求,部分浏览器要配置放开跨域限制
5、修改 document.domain 跨子域
相同主域名下的不同子域名资源,设置 document.domain 为 相同的一级域名
缺点:同一一级域名;相同协议;相同端口
6、基于 Html5 websocket 协议
websocket 是 Html5 一种新的协议,基于该协议可以做到浏览器与服务器全双工通信,允许跨域请求
缺点:浏览器一定版本要求,服务器需要支持 websocket 协议
7、document.xxx + iframe
通过 iframe 是浏览器非同源标签,加载内容中转,传到当前页面的属性中
缺点:页面的属性值有大小限制
8.说一下 JSONP 实现原理?