0

我正在使用 Amazon Cloudfront CDN 为 ASP.NET MVC 网站提供资产。当我使用 YSlow 分析我的网站时,我得到了使用无 cookie 域的 F 级。它特别表明托管在 Cloudfront 上的资产是罪魁祸首,其 URL 如下(这不是真实资产)被标记:

https://mywebsiteassets.s3.amazonaws.com/Images/back.png

有没有办法让 Cloudfront 没有 cookie?这需要在客户端或服务器级别完成吗?

谢谢

J.P

4

1 回答 1

2

此警告表明您正在使用单个域(例如 example.com)来托管您的网站 - 动态和静态资源。据推测,您还创建了 CloudFront 分发以加快内容交付。我将其称为 d123.cloudfront.net

当用户在您的网站上授权时(您没有明确说明,但我认为这是服务器设置一些浏览器 cookie 时最预期的情况),您的浏览器会保存会话 ID(或类似)cookie,并会在每次请求时将其发送回服务器. 然后,您的服务器使用该 cookie 对用户进行身份验证并让他访问私有内容部分。

您通常不需要授权访问静态资源,例如图像、CSS 和 JavaScript 文件。但是,浏览器在请求此类资源时仍会发送 cookie,从而浪费客户端(和服务器)带宽的几个字节。

您要做的是将静态资源和动态资源分开。例如,您可以设置单独的 CloudFront 分配(例如 d999.cloudfront.net)来交付您的图像。在从 d999.cloudfront.net 请求图像时,浏览器不会发送我在 d123.cloudfront.net 上进行身份验证的 cookie。

于 2013-11-07T01:36:25.110 回答