C#:在HttpStatusCode中MovedPermanently和Moved之间有什么区别

时间:2016-10-09 05:38:01

标签: c# asp.net http asp.net-web-api

今天当我尝试在web api中重定向操作时,我注意到301重定向有两个值:

价值1:

var response = Request.CreateResponse(HttpStatusCode.MovedPermanently);
response.Headers.Location = new Uri("http://www.example.com");
return response;

价值2:

var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("http://www.example.com");
return response;

现在我的问题是哪个更好,HttpStatusCode的两个值之间有什么不同?

1 个答案:

答案 0 :(得分:2)

根据MSDN文件:

被移动: 相当于HTTP状态301.

已移动表示请求的信息已移至Location头中指定的URI。收到此状态时的默认操作是遵循与响应关联的Location标头。

当原始请求方法为POST时,重定向的请求将使用GET方法。

<强> MovedPermanently: 相当于HTTP状态301.

MovedPermanently表示请求的信息已移至Location头中指定的URI。

收到此状态时的默认操作是遵循与响应关联的位置标题。