ASP.NET MVC主要动词和Selenium RC

时间:2010-05-14 20:54:20

标签: asp.net asp.net-mvc selenium selenium-rc

Selenium(RC)用于测试ASP.NET 1.1站点。

当我们通过Selenium RC发出请求时(通过配置的浏览器自动执行请求 - 在本例中为Firefox),http动词为“HEAD”。我们有几个表单操作方法,它们分别用AcceptVerbs(HttpVerbs.Get)或HttpVerbs.Post修饰了单独的GET和POST方法。这些方法返回404并记录“无法找到公共操作方法”错误消息。

问题:

  • 在编写单独的Get / Post动作方法时,处理Head动词的最佳做法是什么?我们应该总是用AcceptVerbs装饰(HttpVerbs.Get | HttpVerbs.Head)吗?

  • 为什么在Selenium RC自动化浏览器代替If-Modified-Since标头时会生成HEAD谓词?

  • 我们还看到了使用HEAD动词的(非主流)抓取工具的日志条目。我们创建了robots.txt条目来阻止这些抓取工具索引网站,但现在我们想知道从SEO角度来看最佳做法是什么。响应HEAD爬行器是否重要?是否有使用它的主流爬虫?它会影响SEO排名吗?

1 个答案:

答案 0 :(得分:3)

  1. 是的,我认为只要你限制你的请求只是GET,你应该总是允许 HEAD - 事实上,我认为它应该被构建到MVC框架中(我的待办事项清单上的下一件事:在MVC错误跟踪器中提出[HttpGet]属性应该以某种方式支持HEAD动词的问题)
  2. 我也想知道答案。在此期间,有a suggested workaround - 传递'true'作为Selenium的open()的第二个参数。
  3. 我认为它不会影响SERP排名本身,但我可以看到如果HEAD给出404,爬虫将不会请求整页。根据HTTP规范(RFC2616),“HEAD方法与GET完全相同,只是服务器不能在响应中返回消息体“,所以,如果你做得对,那么允许该方法并避免被取消列入不应该是一个问题。