加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:51:21 所属栏目:asp.Net 来源:网络整理
导读:我想正确支持HTTP HEAD请求,当bots打我的ASP.NET MVC网站使用HEAD。引起我的注意,所有HTTP HEAD请求到网站返回404s,特别是从 http://downforeveryoneorjustme.com.这是真的很烦人。希望他们会切换到GET像所有其他好的机器人在那里。 如果我只是更改[Accep
我想正确支持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();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读