Java面试题
web后端
1.Servlet的生命周期?
-
用户在浏览器地址栏上输入URL: http:// localhost:8080/prj-senvlet-03/testLifeCycle
-
web容器截取请求路径:/prj-servlet-03/testLifeCycle
-
web容器在容器上下文中找请求路径/prj-servlet-03/testLifeCycle对应的Servlet对象
若没有找到应的Servlet对象:
- 通过web.xml文件中相关的配置信息,得到请求路径/testLifeCycle对应的Servlet完整类名
- 通过反射机制:调用Servlet类的无参数构造方法完成Servlet对象的实例化
- web容器调用Servlet对象的init方法完成初始化操作
- web容器调用Servlet对象的service方法提供服务
若找到对应的Servlet对象:
web容器直接调用Servlet对象的service方法提供服务
-
web容器关闭的时候/webapp重新部署的时候/该Servlet对象长时间没有用户再次访问的时候,web容器会将该Servlet对象销毁,在销毁该对象之前,web容器会调用Servlet对象的destroy方法完成销毁之前的准备。
2.HTTP协议是什么?
- 超文本传输协议;
- 浏览器和服务器之间的一种通讯协议;
- 该协议是W3C负责制定的。其实本质上就是数据传送格式提前制定好了,浏览器和服务器都必须按照这种数据格式进行接收和发送。
3.http和https有什么区别?
-
https有ca证书,http一般没有;
-
HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
-
HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
-
HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
4.http协议有什么特点?
- http无连接:限制每次连接只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连接,但也意味着每一次访问都要建立一次连接,效率降低);
- http无状态:对于事务处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为;
- 客户端/服务端模型:客户端支持web浏览器或其他任何客户端;
- 简单快速/灵活:可以传输任何类型的数据。