ASP.NET MVC Head Verb 和 Selenium RC

标签 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 并记录“找不到公共(public)操作方法”错误消息。

问题:

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

  • 当 Selenium RC 自动化浏览器时,为什么会生成 HEAD 动词来代替 If-Modified-Since header ?

  • 我们还看到来自使用 HEAD 动词的(非主流)爬网程序的日志条目。我们创建了 robots.txt 条目来阻止这些爬虫对网站建立索引,但现在我们想知道从 SEO 角度来看最佳实践是什么。对于爬虫来说响应 HEAD 重要吗?有主流的爬虫使用它吗?它会影响 SEO 排名吗?

最佳答案

  1. 是的,我认为每当您将请求限制为仅 GET 时,您都应该始终允许 HEAD - 事实上,我确实认为它应该内置到 MVC 框架中(我的待办事项列表中的下一件事:在 MVC 错误跟踪器中提出 [HttpGet] 属性应该以某种方式支持 HEAD 动词的问题)
  2. 我也想知道这个问题的答案。同时,还有a suggested workaround - 将“true”作为第二个参数传递给 Selenium 的 open()。
  3. 我不认为它会影响 SERP 排名本身,但是我可以看到,如果 HEAD 给出 404,爬虫不会请求完整页面。根据 HTTP 规范 ( RFC2616 ),“HEAD 方法是相同的GET ,但服务器不得在响应中返回消息正文”,因此,如果您做得正确 - 允许该方法并避免不列出应该不是问题。

关于ASP.NET MVC Head Verb 和 Selenium RC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837563/

相关文章:

c# - MVC : The call is ambiguous between the following methods or properties

ruby-on-rails - capybara Drag_to 拖动到鼠标位置而不是目标

selenium - 无法连接到 Firefox

python - 在 python 中隐藏 chromeDriver 控制台

c# - 锁定服务器场 (asp.net)

c# - 为什么我的 ASP.NET 站点是单线程的?

c# - 在 C# razor 中使用@event

c# - ViewBag 属性已设置但不可访问

c# - TransactionScope 是否适用于不同的 Context 对象

c# - ajaxtoolkit 日历扩展器不会显示所有日期