302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。

本页面主要目录有关于302的:简介、定义、客户端实现问题、有关条目等介绍

外文名

302 Found

相关协议

http协议

类型

网络定义

又称

302

简介

可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。

对于服务器,通常会给浏览器发送HTTP Location头部来重定向到新的新位置。

定义

根据定义,该响应代码的使用场景是,请求的资源暂时驻留在不同的URI下。

其特征被定义为:

  • 客户端收到的新的 URI,不是原始请求资源的替代引用。

  • 只有当服务器发出 Cache-Control 或 Expires 头字段进行指示,此响应才能被缓存,否则不能被缓存。

  • 临时URI应该由响应头部中的 Location 字段给出。

  • 除非请求方法是 HEAD ,否则响应的实体应该包含一个带有超链接到新的URI的短 HTML 注释。

  • 如果在除 GET 或 HEAD 两种请求方法之外的请求时,接收到302状态码,客户端不得自动重定向请求,除非用户可以确认;否则可能会更改发出请求的条件。

  • 如果一个客户端有链接编辑能力,其应当把所有的引用链接重定向到新的URL上。

  • 重定向到新地址时,客户端必须使用GET方法请求新地址。

客户端实现问题

虽然RFC 1945和RFC 2068两个规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且径自使用 GET 方式访问在 Location 中规定的 URI,而无视原先请求的方法,这是不规范的实现。

因此状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应。

有关条目

  • .htaccess

  • HTTP状态码

  • URL重写

  • HTTP 301

  • HTTP 303

  • HTTP 307

  • HTTP Location