linux 任意http请求重定向,Http中的重定向和请求转发

1.重定向和请求转发区别

本质区别

例子1. 假设你去办理护照

重定向: 你先去了A局, A局的人说: "这个事情不归我们管的,你去B局吧", 然后你就从A局退了出来, 去了B局

转发: 你先去了A局, A局看了以后知道这个事情其实应该由B局来管的, 但是没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B局的人,让他们办好之后给送了回来

总结:

请求转发是服务器的行为,重定向是客户端的行为

请求转发的流程是:客户端浏览器发送请求->web服务器接受->调用内部的方法容器内部完成请求处理和转发动作->

将目标资源发送给客户

在客户浏览器路径下显示的是第一次访问的路径,也就是说客户端感觉不到服务器端做了转发,转发行为是浏览器只做了一次访问的

重定向的流程是:客户端浏览器发送请求->web服务器接受后发送302状态码响应->客户端发现是302响应,则自动发送一个新的请求->服务器根据此请求寻找资源发送给客户

在客户端浏览器路径栏显示的是其重定向的路径,客户可以观察地址的变化,重定向的行为是浏览器做了至少两次访问

在重定向的过程中,传输的信息会被丢失

2.springmvc中请求转发和重定向

请求转发

(1)返回ModelAndView

@RequestMapping(value="/forward",method=RequestMethod.GET)

public ModelAndView testForward(ModelAndView model,@RequestParam(value="id",defaultValue=&

你可能感兴趣的:(linux,任意http请求重定向)