|
|
1
16
如果您不从域中写入cookie,则该域将减少cookie。 当域设置为仅承载资源内容(如脚本、图像等)时,浏览器的纯HTTP-GET请求将请求这些内容。这些内容应按原样提供。这将使您的域无需烹饪。这不能由Web服务器配置完成。HTTP完全没有状态,Web服务器根本不知道cookie。cookie是通过服务器端脚本写入或发送到客户机的。 最好的方法是在IIS应用程序上禁用ASP.NET、经典ASP或PHP脚本功能。 我们的做法是。 我们有一个子域设置来提供无cookie的资源。所以我们在子域上托管所有的图像和脚本。在主应用程序中,我们只是通过它的URL来指向资源。 我们通过不在该域上提供任何动态脚本或通过创建任何ASP.NET或PHP会话来确保子域保持无cookie。
在主域中,我们只是将一个资源引用为以下内容。
|
|
|
2
24
这就是我在我的网站上所做的:
现在你有了一个静态网站。要设置,请打开
这将缓存文件30天,删除一个角色管理器(我不知道它是否会改变任何东西,但我删除了所有我能找到的),并从响应头中删除一个项目。 但这里有一个问题,即使部署了新版本,您的内容也会被缓存,所以为了避免这种情况,我为MVC创建了一个助手方法。基本上,您必须附加一些在每次更改这些文件时都会更改的查询字符串。
我的MVC方法获取最后一次写入日期并附加在文件URL上:
使用它(MVC3剃须刀):
如果您使用的是其他类型的应用程序,您也可以这样做,请创建一个在页面上附加htmllink的方法。 |
|
|
3
2
从无cookie的域中提供资源是一项伟大的技术,如果您有超过5个组合的图像/样式/javascript,那么它的好处是显而易见的,即使使用额外的DNS查找也会得到好处。而且很容易实现:)。你可以很容易地在web.config[system.web]中设置它,并拥有完全无需烹饪的子域(除非它的cookie被google分析所感染,但也很容易治愈):)
举个例子
这将仅在www.domain.anytld上设置.aspxanonymous cookie,而不是mystatic.domain.anytld…不需要创建新的池和内容:)。 |
|
4
0
如果您没有以任何方式使用该cookie,您可以在IIS 6中禁用会话状态: http://support.microsoft.com/kb/244465 在IIS中,转到主目录选项卡,然后单击“配置”按钮。 接下来,转到选项选项卡,取消选中“启用会话状态”。cookie会消失,您可以将文件放在不需要额外域或子doamin的地方。 另外,通过使用其他域,可以增加DNS查找,这部分地破坏了整体优化的意图。 |