Chromeのキャッシュ

表題の件について。先日はChromeのDNSキャッシュにハマったが、今回はリダイレクトのキャッシュにハマった…。

■ 環境

  • Google Chrome
  • Mac OSX El Capitan

■ 301

Chromeが”301“のリダイレクトをキャッシュしてしまうと、リダイレクト元にアクセスしようとしてもChrome自体がリダイレクト先にアクセスしてしまう。リダイレクト元のWebサーバのアクセスログには何も残らないのでなんでだろう…としばらくハマってしまった。

設定 > 詳細設定 > 閲覧履歴データを消去する

上記の箇所から直近1時間のキャッシュを削除することで問題は解消された。

■ 関連

ChromeのDNSキャッシュをクリア

ChromeのDNSキャッシュをクリア

表題の通り。知らなかったのでメモ。

■ 環境

  • Google Chrome
  • Mac OSX El Capitan

■ network-internals

/etc/hosts“を書き換えたがDNSのキャッシュが残っているのか、書き換える前のページにアクセスしてしまう。普段使用をしていない別のブラウザでアクセスするなり、しばらく時間をおくなりすれば思い通りのページの内容が取得できるようになるのだが、これはこれで少々面倒である。

chrome://net-internals/#dns

上記にアクセスし、”Clear host cache“のボタンを押すとDNSのキャッシュがクリアされるようだ。

それにしても”capturing events“の多いこと。

以上。

Chromeのアクセスをcurlで

表題の通り。Google Chromeにそういう機能があるとは知らなかったのでメモ。

■ 環境

  • Google Chrome
  • Mac OSX El Capitan

■ Copy as cURL

Chromeのデベロッパーツールにある”Network“を開いてページにアクセスし、例えば”www.google.co.jp“を右クリック→”Copy“→”Copy as cURL“といくと下記のように`curl`コマンドで実行するようにいろいろオプションを付けたモノが取得できる。

$ curl 'https://www.google.co.jp/' \
  -H 'accept-encoding: gzip, deflate, br' \
  -H 'accept-language: ja,en-US;q=0.9,en;q=0.8' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' \
  -H 'authority: www.google.co.jp' \
  -H 'cookie: .....' \
  --compressed 

これを実行してみると、、なんか取得できた。”–compressed“が付いているから読めないのかと思いきや、外してみても読めなかった。残念。しかしこれを使えばいろいろできそうである。知っておいて良いだろう。

以上。

Chromeのfaviconキャッシュを削除

Macにおいて表題の通り。

■ 環境

  • Google Chrome
  • Mac OSX El Capitan

■ favicon

古いfaviconがキャッシュされているようで新しいものが確認できない。どうやらMacでは下記にキャッシュファイルがあるようだ。

/Users/withsin/Library/Application Support/Google/Chrome/Default/Favicons

ちなみに”Favicons“はディレクトリではなくファイルである。確認してみると下記であった。

$ file Favicons
Favicons: SQLite 3.x database
$

ということは取得できるのかな?と思ってやってみる。

$ sqlite3 Favicons
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .tables
favicon_bitmaps  favicons         icon_mapping     meta
sqlite> 
sqlite> .schema favicons
CREATE TABLE favicons(id INTEGER PRIMARY KEY,url LONGVARCHAR NOT NULL,icon_type INTEGER DEFAULT 1);
CREATE INDEX favicons_url ON favicons(url);
sqlite> 
sqlite> .schema favicon_bitmaps
CREATE TABLE favicon_bitmaps(id INTEGER PRIMARY KEY,icon_id INTEGER NOT NULL,last_updated INTEGER DEFAULT 0,image_data BLOB,width INTEGER DEFAULT 0,height INTEGER DEFAULT 0,last_requested INTEGER DEFAULT 0);
CREATE INDEX favicon_bitmaps_icon_id ON favicon_bitmaps(icon_id);
sqlite> 
sqlite> .schema icon_mapping
CREATE TABLE icon_mapping(id INTEGER PRIMARY KEY,page_url LONGVARCHAR NOT NULL,icon_id INTEGER);
CREATE INDEX icon_mapping_page_url_idx ON icon_mapping(page_url);
CREATE INDEX icon_mapping_icon_id_idx ON icon_mapping(icon_id);
sqlite> 
sqlite> .schema meta
CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR);
sqlite> 

favicons“テーブルにURLが、”favicon_bitmaps“テーブルに実際のfaviconが、それらを紐付けるマッピングテーブルが”icon_mapping“テーブルっていったところだろうか。

とりあえずこのsqliteのDBファイルを丸っと削除すればfaviconのキャッシュは削除されるようだ。

$ rm Favicons

以上。

95パーセンタイル値を取得

ExcelやGoogle SpreadSheetにおいて表題を取得したい。関数で存在するのを知らなかったのでメモ。

■ 環境

  • Microsoft Excel
  • Google SpreadSheet

■ percentile

どちらの表計算ソフトにも”percentile“関数が存在した。さすが表計算ソフトだ。

PERCENTILE
https://support.google.com/docs/answer/3094093?hl=ja

=percentile(B2:B131, 0.95)

上記のように、範囲と割合を指定すれば取得できる。”95パーセンタイル“であれば、得られた数値の範囲に”95%“が入っているということになる。

以上。