Amazon CloudFront 的新增功能

Amazon CloudFront 新增了 Whitelist Header 的功能:「Deliver Custom Content With CloudFront」。

如同在 post 裡說明的:

If you choose the Whitelist option, each header that you add to the list becomes part of the cache key for the URLs associated with the distribution.

有點像是 HTTP 協定裡 Vary 想要解決的問題,只是做在 CDN 這端。這個功能蠻多 CDN 都有,AWS 總算補上了...

這次除了可以針對 custom HTTP header 處理外,CloudFront 還做了不少事情:

  • Mobile Device Detection
  • Geo-Targeting
  • Multi-Site Hosting
  • Protocol Detection
  • CORS (Cross Origin Resource Sharing)

前兩項還蠻有意義的,這代表會有人幫你更新資料。而 CloudFront 總算是支援 CORS 了...

HTTP/1.1 的更新

HTTP/1.1 源自十五年前 (1999 年 6 月) 所發佈的 RFC 2616,而十五年後被翻新了。

可以在 RFC 2616 的狀態資訊上看到「Obsoleted by: 7230, 7231, 7232, 7233, 7234, 7235」,把本來的 RFC 2616 拆開成幾份文件:

在「HTTP/1.1 just got a major update.」這篇文章裡面整理了一些改變,大多數都是相容於現在的使用習慣,另外把一些過時的預設行為拿掉。(像是預設 charset 為 ISO-8859-1)

找機會來重頭翻一下,以後就不是翻 RFC 2616 了...

在 Flash 上播 HLS...

靠的是「Apple’s HTTP Live Streaming (HLS) in Flash !」這篇「2014/02/12 的 comment」解的 (不是原文內的方法)。

專案在 GitHub 上:「HLSProvider is a Flash/AS3 plugin that plays back HLS streams」。

使用方式與範例可以在「HLSprovider/test/flowplayer at master · mangui/HLSprovider」這邊翻到,直接看 index.html,並且把 swf 檔弄出來就可以動了。

不過實際測試發現 buffer 的部份好像處理的不是很好... 但至少有東西可以用了 :o

HTTP Header 裡的 Location 使用相對路徑...

HTTP Response Header 的 Location (俗稱「轉址」) 被用在不少地方,剛好今天被 ccn 戳到相關的問題...

在維基百科的「HTTP location」條目裡面有說明 HTTP/1.1 的規範裡要求必須是 absolute URI:

Location       = "Location" ":" absoluteURI

但實務上,目前市場上常見的瀏覽器都支援相對路徑。而且在 HTTP/1.1 修正版 (目前還在 draft) 裡被修正成:

Location = URI-reference

並且說明 relative 時的判定方式:

The field value consists of a single URI-reference. When it has theform of a relative reference ([RFC3986], Section 4.2), the final value is computed by resolving it against the effective request URI ([RFC3986], Section 5).

所以就大膽用吧...

HTTP Header 裡與安全相關的 Header 的分析...

還是在 Zite 上看到的,對最大的一百萬個網站分析與安全有關的 HTTP Header:「Security Headers on the Top 1,000,000 Websites: November 2013 Report」。

數字大致上都有增加,不過對我來說的重點在於有列出所有與安全有關的 HTTP Header...

可以看到有這幾個:

  • Access-Control
  • Content-Security-Policy
  • Strict-Transport-Security
  • X-Content-Security-Policy
  • X-Frame-Options
  • X-Webkit-CSP

剛好可以拿來 review 設定...

Amazon CloudFront 支援 POST 了...

看起來是飛出國那天發表的,Amazon CloudFront 支援 POST 了:「Amazon CloudFront - Content Uploads Via POST, PUT, other HTTP Methods」。

標題上寫了不少東西,不過看起來都是一樣的... 這次的功能是把 POST 類的 HTTP method 往後送,所以整個網站都可以丟上 CloudFront,並且只用單一 domain 就可以同時處理靜態加速與動態修改。

愈來愈接近其他商業 CDN 先驅能提供的功能了...

Imgur 支援 HTTPS...

Imgur 宣佈支援 HTTPS:「100 million uniques, higher upload limits, and HTTPS support」。

以這張 https://i.gslin.com/imgur/X3L4U.jpg 範例:

同樣的 https://i.gslin.com/imgur/X3L4U.jpg 也會動,所以之後就可以使用 //i.imgur.com/X3L4U.jpg

看了 DNS 記錄,目前 i.imgur.com 是透過 CloudFlare 的 CDN 加速。

送出 ooxx HTTP Header 提升安全性...

現在的 browser 支援一堆 HTTP Header 規格,用來防堵各種安全性問題。在「SecureHeaders」看到一包 Ruby Gems,可以針對這堆規格一次搞定,包括了:

就算不是用 Ruby 的人也可以拿文件說明的部份當入口,評估看看系統有哪些地方可以加強。

429 Too Many Requests

剛剛在「Apache HTTP ServerをRFC6585の"429 Too Many Requests"に(とりあえず)対応させるパッチ」看到的... 429 Too Many Requests 是在四月才被提出來的 (RFC 6585),雖然還不是 Standard (目前是 Proposed Standard),但看起來不錯啊...

一定要放一張經典畫面...