首页 > 编程知识 正文

http状态码500怎么解决,http状态码302

时间:2023-05-06 09:59:12 阅读:21740 作者:2422

1. HTTP状态代码浏览器访问网页时,浏览者的浏览器会向有网页的服务发出请求。 在浏览器接受并显示网页之前,此网页所在的服务将返回包含HTTP状态代码的英语HTTP状态代码。

200 -请求成功

301 -资源(例如,网页)被永久移动到其他URL

404 -请求的资源(例如网页)不存在

500 -内部服务器错误

2. HTTP状态代码分类HTTP状态代码由三个十进制数组成,前十进制数定义状态代码类型,后两个数字不起分类作用。 HTTP状态代码有五种类型:

HTTP状态代码一览表:

3.3.Java中的重定向和转发Java中的连接跳转方式有重定向和转发“重定向”重定向两种

重定向是将request直接传输到其他组件进行处理。 在response.sendRedirect () )之后,response已提交,无法使用response。

response.sendredirect (在" redirect " fiddler中查看网页以获取信息:

3358本地主机:7080/test/testd

GET /test/testd HTTP/1.1

主机: localhost :7080

用户代理: Mozilla/5.0 (windows nt 6.1; WOW64; rv:52.0 ) Gecko/20100101 Firefox/52.0

accept :文本/html,application/xhtml xml,application/xml; q=0.9,//; q=0.8

接受语言: en-us,en; q=0.5

接受编码: gzip,deflate

连接: keep-alive

升级安装请求:1

HTTP/1.1 302

位置: redirect

内容长度: 0

Date: Mon,26 Jun 2017 09:15:23 GMT

浏览器手动设置302后,向redirect发送了请求,浏览器在一个重定向中发送了两次请求。

默认response.sendRedirect返回302,即使设置了status code,它也最后返回302。 (在Tomcat 8.5中测试)

如果想返回301,只能手动设定。

response.set status (http servlet response.sc _ moved _ permanently;

stringnewlocn=request.getservletcontext (.getcontextpath ) ) '/redirect ';

response.setheader(「location”,newLocn );

4.301/302区别什么是1,301转向? 301重定向是什么?

301重定向(或301重定向、301跳转)是服务器在用户或搜索引擎向网站服务器发出浏览请求时返回的HTTP数据流的标头信息)中的一种状态代码

什么是2,302重定向?

302重定向也称为“302”,表示临时迁移。 英文名为302 redirect。 也称为“临时重定向”(temporary redirect ),它指示web浏览器显示请求显示的不同URL,并在一个网页经历短期URL变化时使用。 其中一个临时重定向是服务器端重定向,由搜索引擎蜘蛛正确处理。

301重定向和302重定向之间的区别

302重定向是临时重定向,搜索引擎捕获新内容并保留旧网址。 由于服务器返回了302代码,搜索引擎认为新的网址是临时的。

301重定向是永久重定向,搜索引擎在捕获新内容的同时,用重定向后的站点替换旧站点。

4、为什么302重定向与劫持网站有关

当从站点a创建302并重定向到站点b时,主机服务器的隐含意思是站点a可以随时改变主意,以重新显示其内容或将其移动到其他位置。 大多数搜索引擎在收到302重定向时,通常只需要抓住所需的网址即可。 也就是说,网址b。 搜索引擎遇到302转向时,如果100%捕获目标站点b,就不用担心站点URL劫持。 问题是,搜索引擎,特别是谷歌,不一定总是捕获目标网站。

例如,a站点可能很短,但创建302并重定向到b站点,b站点是一个长而混乱的URL站点,还可能包含问号等参数。 当然,Web站点更用户友好,Web站点难看,不友好。 此时谷歌很可能还在显示网址a。 不,因为搜索引擎排名算法是程序

是人,在遇到302 重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL 劫持的可能性。也就是说,一个不道德的人在他自己的网址A 做一个302 重定向到你的网址B,出于某种原因, Google 搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B 上的内容,这种情况就叫做网址URL 劫持。你辛辛苦苦所写的内容就这样被别人偷走了。

5.异常处理

1.异常处理介绍
  Spring在web项目中,如果在请求处理时出现异常,那输出会是Servlet响应。这时异常需要以某种方式转换为响应。
  Spring将异常转换为响应的方式:
    a.特定的Spring异常将自动映射为指定的HTTP状态码;
    b.异常上添加@ResponseStatus注解,从而将其映射为某一个HTTP状态码;
    c.方法上添加@ExceptionHandler注解,使其处理异常。
2.异常处理代码

1 @RequestMapping(“getPathVariable/{id}”)
2 public String getPathVariable(
3 @PathVariable(“id”) String id){
4 if(“error”.equals(id)){
5 throw new SpittleException();
6 }
7 return “index”;
8 }
1
2
3
4
5
6
7
8
1 package com.taozhiye.controller;
2
3 import org.springframework.http.HttpStatus;
4 import org.springframework.web.bind.annotation.ResponseStatus;
5
6 @ResponseStatus(
7 // 404
8 value = HttpStatus.NOT_FOUND,
9 reason = “Spittle not found”
10 )
11 public class SpittleException extends RuntimeException {
12
13 }

正常情况下,当id为error时,会报错,这时是500错误,我们可以通过@ResponseStatus注解,映射到404状态码上,进行简单的异常处理。
  
  第二种方法是报相应的异常,直接跳转到错误页面。

1 package com.taozhiye.controller;
2
3 import org.springframework.web.bind.annotation.ControllerAdvice;
4 import org.springframework.web.bind.annotation.ExceptionHandler;
5
6
7
8 @ControllerAdvice
9 public class AppExcepitonHandler {
10
11 @ExceptionHandler(Exception.class)
12 public String deal(){
13 System.out.println(“出现异常”);
14 return “index”;
15 }
16 }

3.重定向传值

1 @RequestMapping(“getPathVariable/{id}”)
2 public String getPathVariable(
3 @PathVariable(“id”) String id,
4 Model model,
5 RedirectAttributes model2){
6 if(“error”.equals(id)){
7 throw new SpittleException();
8 }else if(“findAll”.equals(id)){
9 /**
10 * 重定向传参数:
11 * 相当于把参数写到session中,
12 * 如果重定向到controller的时候,用@ModelAttribute接收
13 * 如果重定向到页面,可以直接接收
14 /
15 model2.addFlashAttribute(“flash”, “flash”);
16 /*
17 * 通过url模板进行重定向
18 /
19 return “redirect:/{id}”;
20 }else if(“index”.equals(id)){
21 // model.addAttribute(“id”, id);
22 /*
23 * 转发不可以使用模板
24 /
25 // return “/{id}”;
26 model2.addFlashAttribute(“flash”, “flash”);
27 /*
28 * 通过url模板进行重定向
29 */
30 return “index”;
31 }else{
32 return “ajax1”;
33 }
34 }

@RequestMapping("/findAll")
@ResponseBody
public List findAll(@ModelAttribute(“flash”) String flash){
System.out.println(“flash:”+flash);
return userService.findUserAll();
}
@RequestMapping("/index")
@ResponseBody
public List index(Map<String, Object> map,@ModelAttribute(“flash”)String flash){
System.out.println(“flash:”+flash);
return userService.findUserAll();
}

重定向传参数:
    相当于把参数写到session中,
       如果重定向到controller的时候,用@ModelAttribute接收
       如果重定向到页面,可以直接接收

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。