
一、转发与重定向的区别
- 转发是服务器请求资源,服务器直接访问目标地址url,把响应内容返回给浏览器。 重定向根据服务器返回的状态码从新请求地址。
- 转发是服务器行为,重定向是客户端行为。
- 转发显示的url不变而重定向显示新的url。
- 转发页面和转发到的页面共享request的信息,重定向不共享数据。
- 转发通常用于用户登陆,根据角色转发到响应的模块, 重定向通常用于用户注销,跳转到其余的地方。
二、TCP三次握手
创建链接时进行TCP三次握手:java
- 客户端发送syn给服务端 链接请求。
- 服务端发送syn ack 给客户端 授予链接。
- 客户端发送ack给服务端 确认链接。
第一次客户端确认本身的发送正常,服务端确认本身的接收正常。 第二次服务端确认本身的发送,接收正常,客户端的发送正常。客户端确认本身的发送、接受正常,服务端的发送、接受正常。 第三次客户端服务端都确认双方的发送接收正常。web
三、TCP四次挥手
- 客户端发送fin给服务端,关闭客户端到服务端的数据传送。
- 服务端发送ack 。
- 服务端发送fin,关闭服务端和客户端的链接。
- 客户端发送ack,链接关闭。
四、为何是三次握手四次挥手
创建链接的时候,syn和ack能够同时发送,可是断开链接的时候fin和ack不能同时发送,由于server还未确认是否全部的报文都发送完了,全部的报文发送完了才能发送fin。因此创建链接须要三次握手,断开链接须要四次挥手。算法
五、TCP与UDP的区别
- TCP协议是有链接的,必须经过三次握手创建链接,UDP是无链接的。
- TCP保证数据按序到达,UDP不能保证。
- TCP是面向字节流的服务,UDP是面向报文的服务。
六、什么是Servlet
是http请求和程序之间的中间层。能够读取客户端请求数据,处理数据并生成结果。浏览器
七、拦截器与过滤器的区别
- 拦截器基于java反射实现,过滤器基于函数回调。
- 拦截器不依赖Servlet容器,过滤器依赖Servlet。
实现一个拦截器继承HandlerIntecepterAdapter。 实现过滤器继承Filter,在web.xml中进行配置。缓存
八、HTTPS的过程
- 客户端发起https请求,创建链接,发送所支持的ssl/tls的版本,支持的加密套件等。
- 服务器收到请求后,会发送服务端的证书,选择的ssl/tls的版本,使用的加密套件。
- 客户端收到证书以后对证书进行验证,验证证书是否被篡改,验证证书的有效期。获取服务器的公钥。
- 使用服务器的公钥对一个随机数进行加密,传送给服务器。
- 而后使用这个随机数进行对称加密进行传输数据。
九、加密相关
- 对称加密 加解密使用同一套秘钥,经常使用的加密算法: AES、 DES。
- 非对称加密 指的是加解密使用不一样的密匙,一个公钥一个私钥。公钥加密的信息只有私钥能解开,私钥加密的信息只有公钥能解开。
- 摘要 一段信息,通过摘要算法获得一串hash值。经常使用的摘要算法:MD五、SHA一、SHA256。
- 数字签名 先用摘要算法,获取内容的摘要,以后使用本身的私钥对摘要进行加密生成签名。
- 数字证书 证书有签发者、证书用途、公钥、加密算法、hash算法、到期时间等。数字证书会作一个数字签名防止证书被篡改。会用CA的私钥进行加密。CA的公钥是公开的,浏览器会缓存。
