1、转发与重定向的区别

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

2、TCP三次握手

建立连接时进行TCP三次握手:

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

第一次客户端确认自己的发送正常,服务端确认自己的接收正常。

第二次服务端确认自己的发送,接收正常,客户端的发送正常。客户端确认自己的发送、接受正常,服务端的发送、接受正常。

第三次客户端服务端都确认双方的发送接收正常。

3、TCP四次挥手

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

4、为什么是三次握手四次挥手

建立连接的时候,syn和ack可以同时发送,但是断开连接的时候fin和ack不能同时发送,因为server还未确认是否所有的报文都发送完了,所有的报文发送完了才能发送fin。所以建立连接需要三次握手,断开连接需要四次挥手。

5、TCP与UDP的区别

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

6、什么是Servlet

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

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

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

实现一个拦截器继承HandlerIntecepterAdapter。

实现过滤器继承Filter,在web.xml中进行配置。

8、HTTPS的过程

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

9、加密相关

  • 对称加密

    加解密使用同一套秘钥,常用的加密算法: AES、 DES。
  • 非对称加密

    指的是加解密使用不同的密匙,一个公钥一个私钥。公钥加密的信息只有私钥能解开,私钥加密的信息只有公钥能解开。
  • 摘要

    一段信息,经过摘要算法得到一串hash值。常用的摘要算法:MD5、SHA1、SHA256。
  • 数字签名

    先用摘要算法,获取内容的摘要,之后使用自己的私钥对摘要进行加密生成签名。
  • 数字证书

    证书有签发者、证书用途、公钥、加密算法、hash算法、到期时间等。数字证书会做一个数字签名防止证书被篡改。会用CA的私钥进行加密。CA的公钥是公开的,浏览器会缓存。

面试【JAVA基础】Web与网络的更多相关文章

  1. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  2. 黑马程序员:Java基础总结----GUI&网络&IO综合开发

    黑马程序员:Java基础总结 GUI&网络&IO综合开发   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server ...

  3. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  4. 细节!重点!易错点!--面试java基础篇(二)

    今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...

  5. java基础学习总结——网络编程

    一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程.

  6. Java 基础高级2 网络编程

    1.协议的概念:通信双方事先约定好的通信规则 2七层网络通信协议:应用成,表示层,会话层,传输层,网络层,数据链路层 3.TCP/IP协议:点对点通信,三层握手,安全有保证 4.UDP协议;广播协议, ...

  7. JAVA基础知识之网络编程——-网络通信模型(IO模型)

    <Unix网络编程:卷1>中介绍了5中I/O模型,JAVA作为运行在宿主机上的程序,底层也遵循这5中I/O模型规则.这5中I/O模型分别是: 阻塞式IO 非阻塞式IO I/O复用 信号驱动 ...

  8. 黑马程序员——JAVA基础之正则表达式,网络爬虫

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式: 概念:用于操作字符串的符合一定规则的表达式 特点:用于一些特定的符号来表示一些代码 ...

  9. java基础九[网络与线程](阅读Head First Java记录)

    网络socket连接 Java API的网络功能包(java.net)已经将底层的TCP连接等都封装好了,我们只需要通过Socket对象来建立客户端和服务器的连接,然后客户端能向服务器发送请求,并接收 ...

  10. JAVA基础知识之网络编程——-使用Proxy创建连接

    在前面的HTTP网络通信的例子中,使用了URLConnection conn = url.openConnection();连接网络, 如果改用URLConnection conn = url.ope ...

随机推荐

  1. python1.3集合知识点:

    #定义集合:{},集合是只有key没有value的字典,集合内元素不能重复!a={1,2,3,4,5,6}#列表转换成集合b=set([1,2,3,4,5])print(a,b) #集合对列表进行去重 ...

  2. 《RabbitMQ》如何保证消息的可靠性

    一条消费成功被消费经历了生产者->MQ->消费者,因此在这三个步骤中都有可能造成消息丢失. 一 消息生产者没有把消息成功发送到MQ 1.1 事务机制 AMQP协议提供了事务机制,在投递消息 ...

  3. CSS网页排版

    自印刷出版物诞生以来,排版就一直是平面设计的基础. 同样,排版在网页设计中也扮演着重要角色. 1.CSS的基本排版技术 1.1 文本颜色 对应网页而言,文本颜色也许是最基本的样式之一. 默认情况下,浏 ...

  4. gotoblas,mpich,hpl,hpcg的安装

    gotoblas的安装 mpich 安装 tar zxvf mpich-3.2.1.tar.gz cd mpich-3.2 ./configure --prefix=/usr/local/mpich( ...

  5. Golang | 既是接口又是类型,interface是什么神仙用法?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第12篇文章,我们来继续聊聊interface的使用. 在上一篇文章当中我们介绍了面向对象的一些基本概念,以及gol ...

  6. MySQL字符集操作

    一.查看编码 show variables like 'character%'; 二.临时设置编码 1.set names xxx set names ${编码}; "set names x ...

  7. 浏览器自动化的一些体会11 webclient的异步操作

    原来的代码大致如下: private void foo(string url) { using (WebClient client = new WebClient()) { client.Downlo ...

  8. SpringBoot整合Redis、mybatis实战,封装RedisUtils工具类,redis缓存mybatis数据 附源码

    创建SpringBoot项目 在线创建方式 网址:https://start.spring.io/ 然后创建Controller.Mapper.Service包 SpringBoot整合Redis 引 ...

  9. three.js 利用uv和ThreeBSP制作一个快递柜

    最近有three网友,问我要不要学习blender,其实我感觉学习一下也无妨,不过花大量时间精通,尚可不必,术业有专攻给别人留一条路吧,哈哈.那我我们就是用ThreeBSP和uv贴图的知识来制作一个定 ...

  10. 推荐一看的blog

    不同专题: 个人blog cnblogs.com/MiLog cnblogs.com/Dway (指DeepWay) cnblogs.com/muly 建议一看,主要发布在cnblogs.com/dl ...