Http常见的状态码、重定向和转发的区别

一、Http常见的状态码:

2**(成功) 操作被成功接受并处理

200 OK 请求成功,一般用于Get和Post请求。

3**(重定向) 需要进一步操作完成请求,结合头部信息location字段,指定重定向地址

307 临时重定向

4** (客户端错误)请求包含语法错误或无法完成的请求

400 客户端请求语法错误,服务端无法理解请求的语法。
403 服务端拒绝请求
404 服务端无法根据客户端的请求找到资源(网页或后台服务)

5**(服务器错误)服务器在请求过程中发生了错误

500 服务器内部错误,无法完成请求。

二、重定向和转发:

1、实现原理:
  • 重定向:返回3**状态码+location响应头;浏览器跳转到location所在的URL。
  • 转发:当次Http请求,直接获取要转发的URL地址并返回。
重定向是在客户端进行跳转。

在这里插入图片描述

转发是在服务端进行跳转。

在这里插入图片描述

2、跳转次数:

重定向跳转2次;转发跳转一次。

3、URL是否会改变

重定向URL会改变;跳转URL不会改变。

4、请求数据是否会丢失

请求重定向的URL时,会丢失第一次的请求数据;
转发URL,或携带第一次请求的数据,不会丢失。

5、重定向和转发使用的方法。

重定向:

//request.getContextPath()获取项目部署名,/main.html为服务路径
resp.getRedirect(request.getContextPath()+"/main.html");

转发:

req.getRequestDispatchar("/error.html").forward(req,resp);

版权声明:本文为qq_45328505原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。