6

我意识到我可以在 S3(html、js、css 等)上托管整个站点,并且通过在页面加载时与数据库(对我来说是 EC2)进行异步通信,它仍然是动态的。即使 index.html 文件位于 S3 上,我也可以启用跨域请求以拥有“动态”站点。

我想知道人们是否已经这样做了,我是否应该记住任何安全警告?

对我来说,这是一个非常可扩展(而且便宜!)的服务器端架构。我的服务器永远不必发送一行 html。它的唯一负载是发送和接收 JSON 片段。如果我的服务器负载很重,它还可以非常简单地切换“静态”标志并简单地从 S3 提供所有服务。

4

1 回答 1

2

S3 上的静态站点很容易,添加 CloudFront CDN 支持轻而易举。

因为跨域资格基于元组 {domain, protocol, port},所以跨域考虑确实发挥了作用。

但是,标准的跨域解决方法仍然适用。

我用来通过 iFrame 或其他方式进行跨域通信的示例技术:

0) jsonp

1)访问控制允许来源

2)设置document.domain以允许通信

3)window.postMessage

对于在 S3 上托管静态资产,JSONP 非常棒,但当它是您的网站离开 S3 而不是资产时,可能最发挥作用(而在这里,您的网站是 S3 并且您与其他服务器通信)。

Access-Control-Allow-Origin 将为您提供所有现代浏览器,并允许您跨域安全或不安全地讲话。IE 提出并支持不同(且更安全)的标准,但预计将在 IE10 中支持 CORS。

这是我的观点,但如果您正在为现代浏览器编写代码,请走 CORS 路线。

于 2012-05-01T23:47:59.573 回答