1、http响应信息有几部分。
答:状态行,响应头,空行,消息体。
2、状态码有几种?各代表什么含义?状态码在什么时候设置?
答:
100-199:表示请求正在进行
200-299:请求成功
300-399:用于已经移走的资源文件,指示新的地址
400-499:由客户端引发的错误
500-599:服务器引起的错误
3、响应头如何设置?
HttpServletResponse的setHeader()可以设置响应头
4、响应信息有几种形式?
getwitre,getOutPutStream
-----------------------------------------------------
5、描述重定向的工作流程
答:
客户端访问服务器。服务器调用response.sendRedirect(),产生响应时,会产生302状态码,同时产生location响应头,那么就会读取loation响应信息之后。发现是302状态码,那么
就会读取该内容更新浏览器地址栏,再向服务器发出第二次请求。
-----------------------------------------------
6、http请求协议中包含哪几部份。
答:请求行,请求头,空行,消息体。
7、如何获得请求头
response.getHeader();
--------------------------------------
8、解释get请求和post请求的区别,哪些请求是get,哪种是post.
答:GET:
浏览器向WEB服务器发送HTTP请求:
用户在网页上点击一个超链接
用户提交在网页上填好的表单
用户在浏览器地址栏中输入URL地址并回车
默认情况下都是使用HTTP协议的GET方法提交请求。
POST:
定制浏览器行为:
<form name="" method="post" action="">
区别:
1,流格式的区别
get方式表单数据附件在url后面,而post方式表单数据在消息体中,所有get方式没有消息体。
2,用途的区别
get方式主要用于资源的查找,而post方式主要用于数据的传输。
3,传输性能的区别
get方式只能传输文本数据,而post方式可以传输文本和二进制数据。
get方式不能传输大数据,post方式可以传输大数据。
get方式的表单数据附加在url后面,所以浏览器地址栏不会显示,相对GET方式数据更安全一些
get方式的数据会在浏览器缓存,而post方式不会缓存
----------------------------------------------------------------------------
1、在Servlet中得到表单数据的方法有哪些?有什么区别?
答:
ServletContext(上下文)
HttpSession(会话)
ServletRequest(请求)
区别:作用域范围不同
2、文件上传需要注意什么?
答:<from method="post" enctype="multipart/from-data" action="upload">
@MultipartConfig注解
3、内部转发和重定向的区别。
答:
方法不一样:重定向有response发出,而内部转发有requestDispatcher发出。
请求次数:重定向客户端发出两次请求,而内部转发客户端只发出一次请求,所以内部转发可以共享request请求对象中封装的数据,而重定向不行。
内部转发只能转发服务器内部资源,但重定向可以在二次请求时,可以转向别的服务器。
4、Web应用程序保存客户端状态有哪些方式
答:
1,cookie
2,隐藏表单
3,session
4,URL重写
5、cookie的工作原理。
答:当客户端访问服务器,服务器会调用response.addCookie(),产生一个cookie文本,将文本发送给客户端保存,当客户端在请求信息时,会产生cookie请求头,
将之前服务器发送的cookie信息,再次发送给服务器。服务器就可以根据cookie信息跟踪客户端的状态。
6、sessoin的工作原理。
答:当客户端访问服务器,服务器会调用resquest.getSession(),产生一个session对象,分配唯一标识符。以session id为键,以session对象为值,封装成Map集合。
产生响应时,将session id以cookie方式发给客户端。存放在客户端浏览器的缓存中。当客户端再次请求服务器,会将session id以cookie请求头的方式
发送给服务器。服务器得到session id后,从Map集合中,得到session对象,从而跟踪状态。
7、解释session和cookie的区别。
答:
1,cookie信息以文本保存在客户端,而session信息以对象形式保存在服务器。
2,cookie传输的是具体的数据,而session传输的是sessionid,所以session更安全一些。
8、如何销毁session。
答:
1,设置超时时间
2,调用session的invalidate()方法,强行销毁。
3,应用服务器崩溃
9、如果客户端禁用cookie,session还能记录客户端状态吗?
如果不能,有什么方法可以在客户端禁用cookie时,session仍然有效。
10、request、session、servletContext中都有setAttribute和getAttribute方法,各自的作用范围是什么?
request在一次请求以内
session在一次会话以内
servletContext全局