Home » 2011 » March

HTTP Archive:網站速度的歷史紀錄

Steve Souders 公開新網站 HTTP Archive。類似於 Internet Archive 紀錄網站的每個時間點的樣子,HTTP Archive 紀錄網站每個時間點的 HTTP 效能:「Announcing the HTTP Archive」。

目前蒐集了 ~17000 個網站,每個網站約每兩個禮拜分析一次,選擇的網站來自 Alexa TopsitesFortune 500 (2010)、Quantcast。翻了自家的站台,看起來是從 2010 年 11 月就開始跑...

也因為紀錄了很多網站,所以也有些有趣的數據可以在「Interesting stats」這邊看到 (有日期可以選)。

在 Perl 裡用 LWP::UserAgent (以及繼承它的模組) 時使用 HTTPS 連線處理 CA 認證...

libwww-perl 裡的 LWP::UserAgent 可以處理 HTTPS,並利用 CA 驗證 public key 是否簽過。在 FreeBSD 下安裝 ca_root_nss 後可以在 /usr/local/share/certs/ 下看到檔案,於是可以這樣用:

#!/usr/bin/env perl
use strict;
use warnings;
use LWP::UserAgent;

INIT {
    my $ua = LWP::UserAgent->new;
    $ua->ssl_opts(SSL_ca_file =>
        '/usr/local/share/certs/ca-root-nss.crt');

    my $res = $ua->get('https://mail.google.com/mail/');
    print $res->content;
}

Debian 或是 Ubuntu 下則是透過 ca-certificates 裝到 /etc/ssl/certs/ 下,並且分成很多檔案,這時候本來的 ssl_opts 就要改成 SSL_ca_path => '/etc/ssl/certs/';

PS:FreeBSD 上因為是單檔,依照 SSL_CTX_load_verify_locations(3) 這邊的說明,沒辦法用 CApath...

Bing 與 Google 都使用 HTML5 的 localStorage 加速手機瀏覽速度...

Steve Souders 分析了手機瀏覽 BingGoogle 的手機平台時,這兩個平台如何處理 cache issue:「Storager case study: Bing, Google」。

這兩個平台不約而同都用上 HTML5 的 localStorage,其中 Bing 用了 ~170KB (未壓縮大小) 的 localStorage,內容包括 CSS/JS/JSON,而 Google 也用了 154KB 存放這些資料。

這應該是因為手機平台的 browser cache 共用一塊不大的空間,很容易被 purge:(我的 Desire 跑 Android 2.2,剛剛看設定,預設值是最大值 6MB)

而 localStorage 則是每個 domain 自己一份空間,相對於共用的空間反而更適合當 cache...

MySQL HandlerSocket 的情況...

前幾天 jnlinOSDC.TW 2011 上面講了「HandlerSocket – A NoSQL Plugin for MySQL」,剛好 Percona 的 Ryan Lowe 也提到了「What’s up with HandlerSocket?」,試著分析 (並猜測) HandlerSocket 為什麼沒有被廣泛使用。

除了技術的問題外,最主要在於運作:Open Source 不是把程式丟出來就覺得沒事了,要僅可能讓使用者容易使用。

比較好運作方式是在重大的 bug 修掉之後就推出 minor version release,一方面讓一些願意整合的單位有「基準」可以整合 (像是 Percona 這樣的公司),另外一方面可以讓 community 感覺是個有在動的 project...

像是文章裡提到的兩個 bug,一個在今年年初已經修正 (write invalidate),另外一個大約兩個禮拜前修正了 (insert auto-increment),只是很多人不太清楚而已。

目前這個專案的感覺跟 Facebook 丟出來的 memcached 還蠻像的:「facebook / memcached」,Facebook memcached 的情況是很明顯「老闆說要 open source,我就丟出來吧」的感覺,原來的 community 也懶的理他,看一看有沒有可以用的 code 可以整合,然後繼續發展自己的...

網路隱私權的改善:Do Not Track

國內各網站都不太提這個東西,大概是因為他們都得靠廣告維生,所以完全不提... XD

2007 年的時候 pesty 寫過一篇文章,關於網路廣告平台要如何判斷你的「特徵」(以文章內的例子,可以判斷出你的性別):「網路廣告商怎麼知道你是誰? 從 ClickStream 來判斷用戶資料」,這樣可以藉由更精準的投放,提高廣告的成效。

以 pesty 舉出的例子來說,假設你逛過 26 個網站,其中五個有 DoubleClick 廣告,那麼 DoubleClick 就可以依據這些資料,以及統計方法,分析你的特徵:(圖有點大張,請點小圖看大圖)

不少廣告商都有提供 opt-out (退出) 的功能讓你不被分析,但網路廣告商這麼多,你不太可能一個一個去各網站設定退出。所以有些人寫了 Firefox 套件「自力救濟」,你只要裝了這些套件就可以自動退出上百個廣告商的分析:「Beef Taco (Targeted Advertising Cookie Opt-Out)」、「Targeted Advertising Cookie Opt-Out (TACO)」。

另外則是有群人開始提議,是不是可以直接在瀏覽器裡面設定,當每次開網站的時候都固定送出某個資訊,告訴這些網站 (以及廣告商) 你不願意讓他們分析使用者行為。這個提議也就是標題所提到的「Do Not Track」。這個提議也送到 IETF (網際網路工程任務組) 及 FTC (美國聯邦貿易委員會,這是個美國政府單位),希望能夠變成 IETF 標準,並且可以透過法律強制執行:「Do Not Track FTC Comment: What It Means, How to Enforce It, and More」。

最近 IE9 與 Firefox4 都內建了 Do Not Track 機制,預設是關閉的。以 Firefox 4 的設定來說,滑鼠游標在的那個選項就是 Do Not Track:

如果你還在用 Firefox 3.6 也沒關係,Adblock Plus 新版 (1.3.5) 也要支援 Do Not Track 了:「Do Not Track support in Adblock Plus」。

設上去以後連任何站台都會送 DNT header,滑鼠游標在的那個地方就是 DNT header:(圖有點大張,請點小圖看大圖)

IE9 的部份因為沒有在用,所以暫時沒有截圖可以看... XD

Archives