asp.net-mvc – 使用ASP.NET MVC响应HTTP HEAD请求

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用ASP.NET MVC响应HTTP HEAD请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想正确支持HTTP HEAD请求,当bots打我的ASP.NET MVC网站使用HEAD。引起我的注意,所有HTTP HEAD请求到网站返回404s,特别是从 http://downforeveryoneorjustme.com.这是真的很烦人。希望他们会切换到GET像所有其他好的机器人在那里。

如果我只是更改[AcceptVerbs(HttpVerbs.Get)]到[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]将MVC知道删除请求的正文?

您为支持HTTP HEAD请求做了什么? (代码示例会很棒!)

解决方法

我在ASP.Net MVC 2项目中创建了一个简单的动作方法
public class HomeController : Controller
{
    public ActionResult TestMe()
    {
        return View();
    }
}

然后我启动了Fiddler并建立了一个HTTP GET请求来访问这个URL:

http://localhost.:51149/Home/TestMe

返回了预期的全页内容

然后,我将请求更改为使用HTTP HEAD而不是HTTP GET。我收到的只是预期的头信息,没有身体信息在原始输出

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed,07 Jul 2010 16:58:55 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 1120
Connection: Close

我的猜测是,你包括一个约束的动作方法,使它只会响应HTTP GET动词。如果你做这样的事情,它将适用于GET和HEAD,或者你可以完全省略约束,如果它不提供值。

public class HomeController : Controller
{
    [AcceptVerbs(new[] {"GET","HEAD"})]
    public ActionResult TestMe()
    {
        return View();
    }
}

猜你在找的asp.Net相关文章