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