我应该在确定推荐时使用Request.UrlReferrer

时间:2010-09-09 05:37:51

标签: c# asp.net

我与我的团队就使用HttpRequest.UrlReferrer进行了一次有趣的讨论,并希望征求社区的反馈意见。根据{{​​3}}:

  

Referer [sic] request-header字段   允许客户端指定   服务器的好处,地址(URI)   从哪个资源   获得了Request-URI(   “引用者”,虽然是标题字段   拼写错误。)The Referer   request-header允许服务器   生成反向链接列表   感兴趣的资源,伐木,   优化的缓存等。它也允许   过时或错误的链接   跟踪维护。推荐人   如果是,则不得发送字段   Request-URI是从源获得的   这没有自己的URI   作为用户keyboard.as从用户键盘输入的输入。

Request.UrlReferrer对象执行将包含格式良好的URI的引用字符串转换为每个请求都具有属性的对象的工作。

根据我们的日志,有些请求包含引用中的无效数据,例如:

localhost
app:/BeamBackTest.swf
app:/multtiple.swf
app:/AFriendFeed.swf
ALToolBar
app:/index.html
mhtml:file://C:\Documents+and+Settings\User\Desktop\oracle\What+is+a+View+in+Oracle+-+Stack+Overflow.mht

使用Request.UrlReferrer意味着上述情况将为NULL。通过使用Request.UrlReferrer丢弃基于W3C规范的无效数据或使用Request.ServerVariables [“HTTP_REFERER”]保留它是否更好,即使数据可能有趣,但可能无用。

2 个答案:

答案 0 :(得分:2)

嗯,这取决于你对数据的处理方式。如果你正在做一些需要有效URI的事情,那么你也可以使用Request.UrlReferrer,因为你必须将其剥离。但是,如果您正在做的只是记录它,并且您的日志工具可以处理奇怪的事情,我建议使用第二种方法 - 特别是对于app:/ data,这可能会产生有用的模式。

答案 1 :(得分:1)

它的主观性基于您的需求。我们存储所有东西,即使它的垃圾。有一天,我们可能知道如何更好地处理它,它将不再是垃圾。如果我们没有存储它,因为当时我们无法理解它,我们永远无法将其恢复。