面试【JAVA基础】Web与网络


一、转发与重定向的区别

  1. 转发是服务器请求资源,服务器直接访问目标地址url,把响应内容返回给浏览器。 重定向根据服务器返回的状态码从新请求地址。
  2. 转发是服务器行为,重定向是客户端行为。
  3. 转发显示的url不变而重定向显示新的url。
  4. 转发页面和转发到的页面共享request的信息,重定向不共享数据。
  5. 转发通常用于用户登陆,根据角色转发到响应的模块, 重定向通常用于用户注销,跳转到其余的地方。

二、TCP三次握手

创建链接时进行TCP三次握手:java

  • 客户端发送syn给服务端 链接请求。
  • 服务端发送syn ack 给客户端 授予链接。
  • 客户端发送ack给服务端 确认链接。

第一次客户端确认本身的发送正常,服务端确认本身的接收正常。 第二次服务端确认本身的发送,接收正常,客户端的发送正常。客户端确认本身的发送、接受正常,服务端的发送、接受正常。 第三次客户端服务端都确认双方的发送接收正常。web

三、TCP四次挥手

  1. 客户端发送fin给服务端,关闭客户端到服务端的数据传送。
  2. 服务端发送ack 。
  3. 服务端发送fin,关闭服务端和客户端的链接。
  4. 客户端发送ack,链接关闭。

四、为何是三次握手四次挥手

创建链接的时候,syn和ack能够同时发送,可是断开链接的时候fin和ack不能同时发送,由于server还未确认是否全部的报文都发送完了,全部的报文发送完了才能发送fin。因此创建链接须要三次握手,断开链接须要四次挥手。算法

五、TCP与UDP的区别

  1. TCP协议是有链接的,必须经过三次握手创建链接,UDP是无链接的。
  2. TCP保证数据按序到达,UDP不能保证。
  3. TCP是面向字节流的服务,UDP是面向报文的服务。

六、什么是Servlet

是http请求和程序之间的中间层。能够读取客户端请求数据,处理数据并生成结果。浏览器

七、拦截器与过滤器的区别

  1. 拦截器基于java反射实现,过滤器基于函数回调。
  2. 拦截器不依赖Servlet容器,过滤器依赖Servlet。

实现一个拦截器继承HandlerIntecepterAdapter。 实现过滤器继承Filter,在web.xml中进行配置。缓存

八、HTTPS的过程

  1. 客户端发起https请求,创建链接,发送所支持的ssl/tls的版本,支持的加密套件等。
  2. 服务器收到请求后,会发送服务端的证书,选择的ssl/tls的版本,使用的加密套件。
  3. 客户端收到证书以后对证书进行验证,验证证书是否被篡改,验证证书的有效期。获取服务器的公钥。
  4. 使用服务器的公钥对一个随机数进行加密,传送给服务器。
  5. 而后使用这个随机数进行对称加密进行传输数据。

九、加密相关

  • 对称加密 加解密使用同一套秘钥,经常使用的加密算法: AES、 DES。
  • 非对称加密 指的是加解密使用不一样的密匙,一个公钥一个私钥。公钥加密的信息只有私钥能解开,私钥加密的信息只有公钥能解开。
  • 摘要 一段信息,通过摘要算法获得一串hash值。经常使用的摘要算法:MD五、SHA一、SHA256。
  • 数字签名 先用摘要算法,获取内容的摘要,以后使用本身的私钥对摘要进行加密生成签名。
  • 数字证书 证书有签发者、证书用途、公钥、加密算法、hash算法、到期时间等。数字证书会作一个数字签名防止证书被篡改。会用CA的私钥进行加密。CA的公钥是公开的,浏览器会缓存。

tencent.jpg

相关文章
相关标签/搜索