【web基础】-常见面试题总结

Http协议

什么是http协议?

  • 超文本传输协议。
  • 对器客户端和 服务器端之间数据传输的格式规范。

常见http请求的方法?

  • get:用于请求已经被URI(统一资源标识符)识别的资源。
  • post:用于传输信息给服务器。
  • head:获得报文的头部。主要用于测试URI是否有效。
  • put:传输文件。
  • delete:删除文件。

get和post请求的区别?

  • get的请求中的参数以key和value组成表现在URL之后,这种情况下用户可以看到,post是将参数封装到请求体中,用户看不到。post比get的传送安全。
  • get的传输的数量小(1024kb),因为url的长度有限,但是效率高。post的传输数量大,上传文件只能用post。
  • get只支持ASCII字符,向服务器传送的字符可能乱码,post支持标准字符集,可以正确的传递中文。
  • get的重点是从服务器获取资源,post的重点是向服务器传输数据。

http协议由什么组成?

  • 请求报文:
  1. 请求行:请求方法,uri,http协议版本。
  2. 请求头:cookie,域内容等
  3. 请求体:表单数据等。
  • 响应报文:
  1. 响应行:状态码,http版本。
  2. 响应头:服务器名字。
  3. 响应体:

常见的http协议状态码?

  1. 200:成功。
  2. 301、302:重定向。
  3. 400:url格式写错了。服务器无法识别。
  4. 404:url的路径位置写错了,服务器找不到该资源。
  5. 500:服务器内部错误,程序报错了。
  6. 503:服务器正忙。

http1.1的新特性?

  1. 默认持久连接,节省通信量,只要客户端或者服务端没有明确提出断开tcp连接,就会保持连接,可以多次请求。
  2. 客户端可以一次发送多个http请求,而不用等一个一个响应。

http和https的区别?

  • http是不安全的,https是安全的。
  • HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  • HTTP 无法加密,而HTTPS 对传输的数据进行加密
  • HTTP无需证书,而HTTPS 需要SSL证书
  • 总结:HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

重定向和转发的区别?

1)重定向两次请求,转发一次请求
2)重定向地址栏的地址变化,转发地址不变
3)重新定向可以访问外部网站 转发只能访问内部资源
4)转发的性能要优于重定向

Tomcat容器

什么是tomcat容器?

  • tomcat是免费开源的web轻量级应用服务器,适合中小型系统和并发量不是很高的系统,支持servlet和jsp。

tomcat的目录结构?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tomcat的作用什么?

  • web应用的容器。
  • tomcat引擎可以解析请求的资源地址。
  • 创建servlet对象。
  • servlet对象调用service方法,创建代表请求的requset对象,和代表相应的response对象。

servlet

servlet规范包含的三个技术点?

  1. servlet技术。
  2. filter技术。
  3. listener技术。

servlet的生命周期?servlet的常见方法?

在这里插入图片描述

servlet的运行过程?

  • 在页面输入一个地址。浏览器组装成http请求(请求行、头、体),发送给服务器,服务器找到web.xml,找到url虚拟路径,通过映射找到类的全包名,就找到自己编写的类。找到doGet或者doPost方法,里面有两个参数httpServletRequest和httpServletResponse,tomcat引擎会解析封装成程序可以识别的响应对象,让程序执行,返回的响应tomcat引擎也会解析封装成浏览器可以识别的信息,返回给客户端浏览器,最终呈现在web端。
    在这里插入图片描述

什么是servletContext?

  • servlet上下文对象。
  • 是一个web应用的环境的对象。就是一个web应用。一个web应用只有一个servletContext对象,但有很多servlet对象。
  • 内部封装的web应用的信息。

怎样获取servletContext对象?

  • this.getservletContext();获取。

servletContext对象的作用?

  • 获取web应用中任何资源的绝对路径。
  • 他是一个域对象。存储数据的区域就是域对象。它的作用范围是整个web应用,所有的动态web资源都可以随意的向servletcontext域中存取数据,数据可以共享。

request和response的常用方法?

setAttribute()在Request域中存储数据
setCharacterEncoding()设置请求参数的编码方式,只对post请求有效
getSession()获取Session对象
sendRedirect()重定向
getOutputStream()获取通向浏览器的字节流(同一次请求处理中,字节流和字符流不能同时存在)
getWriter()获取通向浏览器的字符流(同一次请求处理中,字节流和字符流不能同时存在)

filter

  • filter是对客户端访问资源的过滤,符合条件放行,并且可以对目标资源访问前后进行逻辑处理。

filter的作用?

  1. 公共代码提取
  2. 可以对request和response中的方法进行增强
  3. 进行权限控制

filter的实现步骤?

  1. 实现Filter接口,(servlet包下)。
  2. 实现接口中尚未实现的方法(着重实现doFilter方法)
  3. 3)在web.xml中进行配置(主要是配置要对哪些资源进行过滤)

filter生命周期?

  • Filter何时创建:服务器启动时就创建该filter对象
  • Filter何时销毁:服务器关闭时filter销毁

doFilter的参数?

  • request:内部封装的是客户端的http请求的信息。
  • response:代表响应。
  • FilterChain:过滤器链对象,通过该对象的doFilter方法可以放行该请求。

jsp

jsp的运行原理?

  • jsp在第一次被访问时会被Web容器翻译成servlet,在执行过程:
    第一次访问---->helloServlet.jsp---->helloServlet_jsp.java---->编译运行
    PS:被翻译后的servlet在Tomcat的work目录中可以找到

jsp怎么引入jstl标签库?

  • taglib指令
    在jsp页面中引入标签库(jstl标签库、struts2标签库)
    格式:<%@ taglib uri=“标签库地址” prefix=“前缀”%>

jsp内置/隐式对象

在这里插入图片描述
在这里插入图片描述

jsp中的四大域?

在这里插入图片描述

jsp页面静态包含和动态包含的区别?

静态包含和动态包含的区别

  静态包含在翻译的时候,将多个JSP合并翻译成了一个Servlert。(先合并在编译)

  动态包含在翻译的时候,每个JSP文件都翻译成了对应Servlet,在程       序运行加载到JVM中的时候动态合并

  动态包含可以传递参数

如何选择:如果需要传递参数就必须选择动态包含

el表达式的作用?

  • EL表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。EL最主要的作用是获得四大域中的数据,格式${EL表达式}

el表达式获取key对应的value的顺序?

  • 依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找

jstl标准标签库的核心库?

  • c标签库(需要导包)

常用的c标签?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

session

什么是session?

  • session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是-使用散列表)来保存信息。

cookie和session的区别?

  1. cookie数据存放在客户的浏览器上,session数据放在服务器上。
  2. cookie不是很安全,别人可以分七存放在本地的cookie并进行cookie欺骗,考虑到安全的应当使用session。
  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,如果考虑服务端性能,应当使用cookie。
  4. 单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。
  5. 所以建议,将用户名密码等重要信息保存在session中,其他信息可以保留在cookie中。

cookie

cookie和浏览器缓存有什么区别?

  • cookie是浏览器缓存的一部分,浏览器缓存可以缓存任意内容,比如历史纪录,cookie是服务器让浏览器缓存的数据。

什么是cookie?

  • cookie是浏览器端保存数据的一种方式,相当于一张会员卡,浏览器会记住这张会员卡的用户名和密码,当请求再次从服务器发送时,浏览器解析http协议请求头中的cookie,就会识别这次请求。第一次访问没有cookie,浏览器就会记录在cookie的缓存区。

cookie和session的基本使用?

  • 保存用户名和密码。
  • 保存上次登录时间。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值