一、jsp 有哪些内置对象?作用分别是什么?
1、request
客户端的请求信息:HTTP 协议头信息、cookie、请求参数等。
2、response
用于服务端响应客户端请求,返回信息
3、pageContext
页面的上下文
4、session
客户端与服务端之间的会话
5、application
用于获取服务端应用生命周期的信息
6、out
用于服务端传输内容到客户端的输出流
7、config
初始化时,jsp 引擎向 jsp 页面传递的信息
8、page
指向 jsp 页面本身
9、exception
页面发生异常,产生的异常对象
二、jsp 的 4 种作用域
1、page 当前页面作用域
相当于 Java 关键字 this。在这个作用域中存放的属性值,只能在当前页面中取出。
2、request 请求作用域
范围是从请求创建到请求消亡这段时间,一个请求可以涉及多个页面。<jsp:forward> 和 < jsp:include > 跳转到其它页面。
3、session 会话作用域
范围是一段客户端和服务端持续连接的时间,用户在会话有效期内多次请求所涉及的页面。session 会话器,服务器为第一次建立连接的客户端分配一段有效期内的属性内存空间。
4、application 全局作用域
范围是服务器 web 应用启动到停止,整个 web 应用中所有请求所涉及的页面。当服务器开启时,会创建一个公共内存区域,任何客户端都可以在这个公共内存区域存取值。
三、session 和 cookie 有什么区别?
浏览器和服务器交互,一般是通过 http 协议交互的,http 协议是无状态的,浏览器与服务器交互完数据,连接就会关闭,每一次数据交互都要重新建立连接。为了确保会话中的身份,可以通过创建 session 和 cookie 进行标识。
二者区别:
1、session 是在服务器端记录信息,key-value 类型的对象,数据大小一般没有限制
2、cookie 是在浏览器端记录信息,一段文本,单个不超过 4KB,最多 20 个 cookie
3、大量用户会话服务端保存大量 session 对服务器资源消耗较大;信息保存在 cookie 中缓解了服务器存储信息的压力。
4、一般实际使用中,关键信息存在 session 中,其它信息加密保存在 cookie 中。
四、客户端禁止 cookie,session 还能用吗
可以继续使用,通过 URL 重写,把 sessionid 作为参数追加到 URL 中,后续的浏览器和服务器交互中携带 sessionid 参数。
五、HTTP 响应码 301 和 302 代表的是什么?有什么区别?
1、301 表示被请求 URL 永久转移到新的 URL;302 表示被请求 URL 临时转移到新的 URL。
2、301 搜索引擎会搜索新的 URL 页面内容;302 可能会同时搜索旧 URL 和新 URL 的页面内容。
六、forward 和 redirect 的区别?
1、forward-- 直接请求转发
redirect-- 间接请求转发
2、地址栏:
forward 为服务器的直接跳转,客户端浏览器并不知情,地址栏内容不变(服务器内部的动作)
redirect 为客户端根据 URL 地址重新向服务器请求,地址栏改变
数据共享:
forward 共享浏览器传来的 request
redirect 全新的 request
运用的地方:
forward 用户登录后根据角色跳转页面
redirect 用户注销后跳转主页或其他页面
效率:
forward 比 redirect 少一次服务器请求,效率高一些。
七、tcp 和 udp 的区别?
1、tcp 传输控制协议,流模式传输,udp 用户数据报协议。
2、tcp 面向连接,udp 不需要建立连接。
3、tcp 只能一对一传输,udp 随便传。
4、tcp 对网络要求较高,tcp 保证数据的正确性,udp 是数据报的形式,不保证数据的正确性
5、tcp 适合网络负担不大、数据的正确性要求较高的场景,udp 适合网络负担重,数据的正确性要求不高的场景。
八、OSI 是什么?
OSI 是开放式系统互联。
国际标准化组织(ISO)制定了 OSI 模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI 模型把网络通信的工作氛围 7 层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
八、跨域是什么?
1、简介:当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域。
① 这里的同源指访问的协议、域名、端口都相同。
② 同源是浏览器最核心、基本的安全功能,它限制了一个源中加载脚本与来自其它源中资源的交互方式。
③ ajax 发起的跨域 HTTP 请求,被浏览器拦截,同时 ajax 请求不能携带与本网站不同源的 cookie。
④ <script> <img> <iframe> <link> <video> <audio> 等带有 src 属性的标签可以从不同的域加载和执行资源。
2、如何实现跨域请求?
① jsonp
jsonp 允许在服务器端集成 script 返回客户端,通过 JavaScript callback 的形式实现跨域访问。
产生的背景:
浏览器限制 ajax 跨域请求。
json 格式数据被浏览器支持。
<script> 标签 src 可以跨域 get 方式获取服务器脚本。
利用 jsonp 不受同源策略的限制。
② 代理实现跨域请求
③ 基于 HTML5 websocket 协议
