JavaWeb面试题2020(15题)
前言:
作者:CodeCow · 阿牛,微信搜索公众号 “CodeCow ”,我们一起干“java”
正文:
1、网络编程首先要解决什么问题?
(1)如何准确的定位网络上的一台或者多台主机
(2)找到主机后如何可靠的进行有效的数据传输
2、分别说说OSI/RM模型和TCP/IP模型分别指的什么?
OSI/RM模型指:
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP模型指:
网络接口层、网络层、传输层、应用层
3、说说OSI/RM各层使用的协议是什么?
(1)应用层:HTTP-超文本传输协议
(2)传输层:TCP、UDP协议
TCP:面向连接的可靠的协议,比UDP多了一个建立连接的时间
UDP:无连接不可靠协议,有大小限制,64KB以内,传输效率高
4、Http是有状态还是无状态的协议 ?
Http是一个基于请求/响应模式的,无状态的协议
5、Http请求由什么组成 ?
请求头,消息报头,请求正文
6、Http请求方法有哪几种 ?有什么区别?
2种;
GET、POST
区别:
- GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连;POST 把提交的数据则放置在是HTTP包的包体中
example:login.action?name=zhagnsan&password=123456 - POST的安全性要比GET的安全性高。
- Get 是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上GET和POST只是发送机制不同,并不是一个取一个发。
7、Http响应由什么组成 ?
状态行,消息报头,响应正文
8、Http中重定向和请求转发的区别 ?
(1)重定向是客户端行为,请求转发是服务端行为
(2)重定向:两次请求两次响应,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失
(3)请求转发:一次请求一次响应,浏览器地址不会发生变化,访问的是自己本身的web资源,传输数据不会丢失
总结:
- 重定向的特点:redirect
1. 地址栏发生变化
2. 重定向可以访问其他站点(服务器)的资源
3. 重定向是两次请求。不能使用request对象来共享数据 - 转发的特点:forward
1. 转发地址栏路径不变
2. 转发只能访问当前服务器下的资源
3. 转发是一次请求,可以使用request对象来共享数据
9、Cookie 和 Session特点是什么? 区别 ?
Cookie 特点:
- cookie存储数据在客户端浏览器
- 浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个)
Session 特点:
- session用于存储一次会话的多次请求的数据,存在服务器端
- session可以存储任意类型,任意大小的数据
session与Cookie的区别:
- session存储数据在服务器端,Cookie在客户端
- session没有数据大小限制,Cookie有
- session数据安全,Cookie相对于不安全
10、说说Servlet的生命周期?
Servlet的生命周期:
实例化——>初始init——>接收请求service——>销毁destroy;
11、Jsp内置对象有几个?分别是什么?
9个
- pageContext :当前页面共享数据,还可以获取其他八个内置对象
- request:一次请求访问的多个资源(转发)
- session:一次会话的多个请求间
- application :所有用户间共享数据
- response:响应对象
- page:当前页面(Servlet)的对象 this
- out: 输出对象,数据输出到页面上
- config: Servlet的配置对象
- exception:异常对象
12、Servlet和Jsp有什么区别?
(1)jsp是html页面中内嵌Java代码,侧重于页面展示
(2)Servlet是html和Java代码分离,侧重于逻辑控制
13、Web有几大组件?分别是什么?
3大组件
Servlet
Filter:过滤器
Listener:监听器
14、在单点登录中,如果cookie被禁用了怎么办?
单点登录原理:后端生成一个sessionID,然后设置到cookie,后面的所有请求浏览器都会带上cookie,然后服务端从cookie里获取sessionID,再查询到用户信息。
解决方案:从原理可以发现,保持登录的关键不是cookie,而是通过cookie保存和传输的sessionID,其本质是能获取用户信息的数据。因此,除了cookie,还通常使用HTTP请求头来传输。但是这个请求头浏览器不会像cookie一样自动携带,需要手工处理。
15、Http常见的状态码有哪些?
1XX:指示信息-表示请求已经接收,继续处理
2XX:成功-表示请求已经被成功接收,理解
3XX:重定向-要完成必须进行进一步操作
4XX:客户端错误-请求无法实现或请求语句错误
5XX:服务端错误-服务器未能实现合法请求
example:
200:OK-客户端请求成功
301:资源(网页等)被永久转移到其它URL
302:临时移动,(重定向)
400:客户端请求有语法错误,不能被服务器所理解
401:请求未经授权
403:接收到请求但是拒绝服务
404:请求资源不存在
500:服务器发生了不可预期的错误
503:服务器当前不能处理客户端请求,一段时间之后可能恢复正常
后记
从Java基础—>SpringCloud面试题的详细答案,已经整理成PDF文档
★★ 小声BB ★★
若有需要PDF的小伙伴,可以微信搜索公众号 “CodeCow”,回复:2020青铜 小编直接发百度网盘
也可以加小编微信:CodeCow-6666 私信小编
坚持,因为我是阿牛
上一篇: 数据结构复习1.1, 链表栈
下一篇: while 循环
推荐阅读
-
JavaWeb面试题2020(15题)
-
2020_10_15 每日一题 填充每个节点的下一个右侧节点指针
-
2020年最全python面试题汇总第04期(内附13题及答案)
-
2020年最全python面试题汇总第03期(内附10题及答案)
-
2020年最全python面试题汇总第05期(内附字符串8题及答案)
-
2020我的面试经历,一套很考察js基础能力的前端面试题(原题直出,附答案解析)
-
2020年最全python面试题汇总第04期(内附13题及答案)
-
2020年最全python面试题汇总第05期(内附字符串8题及答案)
-
15道C语言开发面试题(原题分享)
-
2020我的面试经历,一套很考察js基础能力的前端面试题(原题直出,附答案解析)