16

如何尊重 IIS6 中的“从无 cookie 域提供静态内容”页面速度规则?

4

3 回答 3

19

在 IIS6/IIS7/IIS7.5 中创建无 cookie 站点(或子域,这是一种非常常见的最佳实践)很简单:您需要告诉网站您不要使用 cookie :)这在 IIS 术语中意味着,不使用会话

这可以通过两种方式在 IIS6/IIS7 中实现。

  1. 修改Web.config文件(个人推荐)
  2. 使用 IIS 管理器 GUI 查找设置并进行更改。

重要的

在您进行任何测试之前,您必须必须清除所有 cookie(或您正在测试的域的所有 cookie),否则,即使您完成了所有步骤,它们也会被传递。

1. 通过配置文件

您需要将会话状态定义为 off

<system.web>
        <sessionState cookieName="What_ever" mode="Off" />
</system.web>

注意:请注意,属性 cookieless (true|false) 并不意味着“发送 cookie/不发送 cookie”。那是为了使用带有/不带cookies的会话......并将一些cookie guid传递给url(如果设置为true)。

2. 经簋

替代文字

替代文字

希望这会有所帮助(我假设你知道如何测试没有 cookie 工作/不工作......)

于 2010-11-05T12:02:10.777 回答
8

这意味着您的内容需要来自没有附加 cookie 的域。StackOverflow.com 就是一个这样做的网站的例子。您会注意到所有 SO 的静态内容都来自一个名为sstatic.net.

http://sstatic.net/stackoverflow/all.css
http://sstatic.net/js/master.js

这样客户端和服务器就不必在实际解析和处理 cookie 数据时浪费资源。好消息是,假设您正确设置了 cookie 路径,您可以使用子域。

雅虎网站加速最佳实践

为组件使用无 Cookie 域

当浏览器请求静态图像并将 cookie 与请求一起发送时,服务器对这些 cookie 没有任何用处。因此,他们只会无缘无故地创建网络流量。您应该确保使用无 cookie 请求请求静态组件。创建一个子域并在其中托管所有静态组件。如果您的域是 www.example.org,您可以在 static.example.org 上托管您的静态组件。但是,如果您已经在顶级域 example.org 而不是 www.example.org 上设置了 cookie,那么对 static.example.org 的所有请求都将包含这些 cookie。在这种情况下,您可以购买一个全新的域,在其中托管您的静态组件,并保持该域无 cookie。雅虎!使用 yimg.com,YouTube 使用 ytimg.com,亚马逊使用 images-amazon。

在无 cookie 域上托管静态组件的另一个好处是某些代理可能拒绝缓存使用 cookie 请求的组件。在相关说明中,如果您想知道是否应该将 example.org 或 www.example.org 用于您的主页,请考虑 cookie 的影响。省略 www 让您别无选择,只能将 cookie 写入 *.example.org,因此出于性能原因,最好使用 www 子域并将 cookie 写入该子域。

于 2010-11-05T10:49:16.373 回答
1

创建子域(例如static.example.com)并在此处存储所有静态内容(图像、css、js)

于 2010-11-05T10:48:00.873 回答