HTTP 307

✍ dations ◷ 2024-12-23 06:59:40 #HTTP,计算机错误,HTTP/1.1

307 Temporary Redirect是HTTP协议中的一个状态码(Status Code)。可以理解为一个临时的重定向。

但该响应代码与302重定向有所区别的地方在于,收到307响应码后,客户端应保持请求方法不变向新的地址发出请求。

虽然 RFC 1945 和 RFC 2068 规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器在收到302响应时,直接使用GET方式访问在 Location 头部中规定的 URI,而无视原先请求的方法。

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

根据RFC 2616 定义:

GET /index.php HTTP/1.1Host: www.example.org

服务器回应:

HTTP/1.1 307 Temporary RedirectLocation: https://www.example.org/

服务器配置

这是一个例子,展示如何使用NGINX 返回 307 重定向:

location /old/url/ {    return 307 /new/url;}

这是使用 PHP 实现307重定向的方式:

<?phpheader("HTTP/1.1 307 Temporary Redirect");header("Location: http://example.com/newpage.html");exit();?>


相关