【问题标题】:ASP.NET MVC with Amazon cloudfront - YSlow grade F for cookile-free domains带有 Amazon cloudfront 的 ASP.NET MVC - 无 cookie 域的 YSlow F 级
【发布时间】:2013-11-07 09:36:25
【问题描述】:

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

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

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

谢谢

日本

【问题讨论】:

    标签: asp.net-mvc cdn amazon-cloudfront yslow


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我可以了解一个单独的子域来提供无 cookie 静态内容的想法,但不确定如何在云端进行这些设置....你能给我们一些提示吗这件事?
    猜你喜欢
    • 2015-01-03
    • 2010-11-28
    • 2014-11-28
    • 2018-09-20
    • 2013-02-17
    • 2017-05-25
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多