Get请求与Post请求的区别?
1.数据传递长度:get长度比较小,post没有限制 -
2.数据传递方式:get使用URL传递参数值,post直接将参数值放入request body;而且GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
3.数据传递安全性:get不安全,post安全 ,因为get的参数直接暴露在URL上
4.发送的数据包数量:get发送1个TCP数据包; post发送2个TCP数据包 首先发送1个request head(1个TCP数据包),服务器接收后返回100状态码。再发送request body(1个TCP数据包)
请求转发与重定向的区别?
请求转发:request.getRequestDispatcher(URL地址).forward(request, response)
处理流程:
- 客户端发送请求,Servlet做出业务逻辑处理。
- Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。
重定向:response.sendRedirect(URL地址)
处理流程:
-
客户端发送请求,Servlet做出业务逻辑处理。
-
Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
-
客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。
两者区别
1.重定向是客户端浏览器执行跳转(调用HttpServletRequest对象的getRequestDispatcher()是 请求对象的方法);
请求转发是服务器端直接跳转(sendRedirect()是HttpServletResponse对象的方法,即响应对象 的方法)
2.重定向之后,客户端浏览器地址栏显示新的请求地址;
请求转发之后,客户端浏览器地址栏显示旧的请求地址;
3.重定向代表一次新的请求;请求转发没有发起新请求