タグ

ブックマーク / www.onflow.jp (19)

  • HTTPステータスコード – 302 Foundと303 See Otherと307 Temporary Redirectの違いについて – cyano

    HTTPステータスコードの302はMoved Temporarilyだと思っていたのですが、RFC 2616(Hypertext Transfer Protocol — HTTP/1.1)で『302 Found』に改められていました。そして、RFC 2616では『307 Temporary Redirect』というステータスコードが追加されていました。 『302 Found』と『303 See Other』と『307 Temporary Redirect』の違いについて気になったので、まとめてみました。 元々、ステータスコード302はMoved Temporarilyでした。『302 Moved Temporarily』とは、「指定したURIのリソースは、一時的に別のURIに存在しているので、そちらを参照してください」と言う意味です。もちろん一時的に別のURIに存在しているため、クライアン

    aki77
    aki77 2010/05/06
  • ユーザーの体感速度をGoogle Analyticsで可視化する – cyano

    ユーザーがページをロード開始してから閲覧できるようになるまでのロード時間はユーザーが自分のページを快適に閲覧できているかどうかを示す重要なファクターです。Google Analyticsのイベントという機能を使用することで、ユーザーの実際の体感速度を可視化することができます。 たとえば、このブログのある期間における体感速度のグラフはGoogle Analytics上で以下のように出ています。 44.84%のユーザーは100〜499msでロードできており、1秒未満でロード完了しているユーザーは合わせて73.49%であるとわかります。また、3秒以上かかっているユーザーも7.42%居ることも分かります。3秒以上ロードにかかるようだと離脱率も高くなるので、7.42%のユーザーに対して何かの施策が必要であるということも分かります。 このように、ユーザーが実際感じている体感速度を可視化することで、この

  • Bフレッツ向け固定IP最安値 – livedoor ビジネスインターネット・ライトで固定IPが月額1500円 – cyano

    自宅で使える固定IPサービスは数あれど、プロバイダ付属のものはプロバイダー料金を含めると月額4,000円ぐらい行ってしまったりするし、安いものはサポートが雑だったり解約が60日前通告だったりと不便だったりします。 そんな中、かつてISP事業をしていたライブドアがlivedoorビジネスインターネット・ライトでBフレッツ向けの固定IPサービスを月額1,500円で提供しています。2009年2月28日までに申し込んだ人は、申込月と翌月・翌々月分の月額利用料が無料キャンペーン中です。 livedoorビジネスインターネット・ライトは実態としては普通のISPと変わりません。OCNなど大手だとメールアドレスが付属しますが、このサービスには付いてきません。ただ、固定IPの申し込みの際にlivedoor IDの取得が必要となるので、そのついでにlivedoorのメールアドレスを取得するのも手ですし、今だっ

    aki77
    aki77 2009/02/05
  • mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 – (4) mod_deflateと組み合わせる際の注意点編 – cyano

    Apache2.2から、ロードバランシングをしてくれるmod_proxy_balancer というモジュールが標準添付になりました。 このモジュール、その名前の通り、ApacheレベルでHTTPリクエストをバックエンドのサーバーに振り分けることでロードバランシングをしてくれるモジュールです。 Apacheの公式ドキュメントや試しに入れてみた人のBlogなどは散見されますが、実際の現場で運用している事例というのはまだ無いようです。 そこで、実際にピーク時にover 500 request/secでmod_proxy_balancerなサーバーを運用している経験をふまえ、つまずいた点などを公開していきたいと思います。 今回は、mod_deflateと組み合わせる際の注意点です。前回までの設定ではhttpd.confに以下のように書いていたかと思います。 ProxyRequests Off Pr

    aki77
    aki77 2009/01/30
  • cyano

    ユーザーがページをロード開始してから閲覧できるようになるまでのロード時間はユーザーが自分のページを快適に閲覧できているかどうかを示す重要なファクターです。Google Analyticsのイベントという機能を使用することで、ユーザーの実際の体感速度を可視化することができます。 たとえば、このブログのある期間における体感速度のグラフはGoogle Analytics上で以下のように出ています。 44.84%のユーザーは100〜499msでロードできており、1秒未満でロード完了しているユーザーは合わせて73.49%であるとわかります。また、3秒以上かかっているユーザーも7.42%居ることも分かります。3秒以上ロードにかかるようだと離脱率も高くなるので、7.42%のユーザーに対して何かの施策が必要であるということも分かります。 このように、ユーザーが実際感じている体感速度を可視化することで、この

  • JavaScriptやCSSを動的にdeflate圧縮するのではなく、あらかじめ圧縮しておいたものを配信することでサーバーのCPUリソースを節約する « cyano

    JavaScriptCSSを動的にdeflate圧縮するのではなく、あらかじめ圧縮しておいたものを配信することでサーバーのCPUリソースを節約する prototype.jsを10KBにする方法やSafari と gzip 圧縮 JavaScriptなどですでに述べられてることですが、mod_deflateでリクエストがある度にアセット(CSSJavaScript)にdeflate圧縮をかけるのは、deflate処理が軽いからと言っても、塵も積もれば馬鹿にならない(WWWサーバーやAPサーバーに来使って欲しいCPUリソースを蝕む)訳で、deflateしたいアセットには予めgzip圧縮してそれを配信し、サーバーのCPUリソースに優しいようにしましょう、というお話。 今回は、予めgzip圧縮するという作業を自動化するために、Railsでよく使われるデプロイツールであるCapistranoを

  • GDataってもっと注目されてもいいんじゃないの&非公式開発者ガイド

    GDataってもっと注目されてもいいんじゃないの&非公式開発者ガイド GoogleGoogle Data APIs (Beta) Developer's Guideを公開しました。 Google Data APIs (略称はGData)というのは何かというと、RSSとAtomを組み合わせてそれを拡張したもので、フィードを取得したり、Atom publishing protocolを使ってデータを作成したり更新したり、また全文検索などのデータの問い合わせをできるようにしたプロトコルです。 GoogleAPI戦略に新たな動き、GDataで「Google Calendar」のAPI公開 (MYCOM PC WEB)に簡単な説明が載っているので引用します。 REST、Atom 1.0およびRSS 2.0をベースにした新しいプロトコルである。GDataをサポートするサービスから情報を取得する場

  • cyano: mod_expiresとmod_rewriteを使ってサイトの帯域節約と体感速度を向上させる方法

    普通の帯域節約術としては、mod_deflateでdeflate圧縮するとか、CSSやJSファイルのHTTPレスポンスヘッダにLast-ModifiedやEtagを追加しておいて、ブラウザがHTTPリクエストヘッダにIf-Modified-SinceやIf-None-Matchを付加するようにし、コンテンツが変更されていなかったら304 Not Modifiedを返すという方法を取るかと思います。 しかし、HTTPサーバーはコンテンツの数だけ304 Not Modifiedを返さないといけないため、その分帯域を消費しますし、またCSSや画像などのパーツの304 Not Modifiedが返ってくるまで、そのパーツのレンダリングが行えないという問題があります(つまり体感速度に影響します)。 今回紹介するのはExpiresヘッダやCache-Control: max-age=31536000を

  • cyano: Google AnalyticsをHTTPS(SSL)なページで使う

    Googleがリリースしてる無料のアクセス解析ツールがGoogle Analytics。元々はUrchin社が有償で提供していたアクセス解析ツールとあって、かなり高性能。 そんなGoogle Analyticsですが、普通にHTTPS(SSL)なページに埋め込むと、IEなどでセキュリティーに関する警告が出てきてしまいます。それを防ぐ方法。 やり方はとても簡単。GoogleからのJavaScriptを読み込む際のプロトコルとドメインを変更するだけ。以下例。 <script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ _uacct = "自分のアカウントID"; urchinTracker

  • cyano

    自宅で使える固定IPサービスは数あれど、プロバイダ付属のものはプロバイダー料金を含めると月額4,000円ぐらい行ってしまったりするし、安いものはサポートが雑だったり解約が60日前通告だったりと不便だったりします。 そんな中、かつてISP事業をしていたライブドアがlivedoorビジネスインターネット・ライトでBフレッツ向けの固定IPサービスを月額1,500円で提供しています。2009年2月28日までに申し込んだ人は、申込月と翌月・翌々月分の月額利用料が無料キャンペーン中です。 この投稿の続きを読む » PaSoRiというと電子マネーEdyのリーダーとして売られていたりするのですが、住基カードとは規格が違うため、年末調整などで使う電子納税システムe-Tax用のカードリーダーとしては使えず、PaSoRiとは別に住基カードリーダーを買わないとならず不便でした。 2009年1月21日から発売され

  • cyano: Google Analyticsで高度なトラッキングをする方法

    ユーザーがページをロード開始してから閲覧できるようになるまでのロード時間はユーザーが自分のページを快適に閲覧できているかどうかを示す重要なファクターです。Google Analyticsのイベントという機能を使用することで、ユーザーの実際の体感速度を可視化することができます。 たとえば、このブログのある期間における体感速度のグラフはGoogle Analytics上で以下のように出ています。 44.84%のユーザーは100〜499msでロードできており、1秒未満でロード完了しているユーザーは合わせて73.49%であるとわかります。また、3秒以上かかっているユーザーも7.42%居ることも分かります。3秒以上ロードにかかるようだと離脱率も高くなるので、7.42%のユーザーに対して何かの施策が必要であるということも分かります。 このように、ユーザーが実際感じている体感速度を可視化することで、この

  • cyano: Javascript

    2006年4月のActiveXパッチがあたったIEでFlashなどを従来通り表示させるためのJavaScript(Flashのバージョン検出機能付き) Eolasの特許回避のため、2006年4月の月例パッチでInternetExplorerのActiveX周りに変更が加えられました。 具体的には、従来のようにHTMLページ内にobjectタグやembedタグでFlashを表示するように記述した場合、Flash上にマウスカーソルを持って行くと「このコントロールをアクティブ化して使用するにはクリックしてください」 と表示され、そのFlashがクリックを受け付けたり、マウスの位置情報を取得したりするためには(インタラクティブに振る舞うには)、一旦Flash上でクリックなどをしてFlashコントロールをアクティブ化しなくてはならなくなりました。 これの回避方法として、外部JavaScriptによっ

    aki77
    aki77 2006/09/14
    2006年4月のActiveXパッチがあたったIEでFlashなどを従来通り表示させるためのJavaScript(Flashのバージョン検出機能付き)
  • cyano: mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (1) mod_proxy_balancerの設定編

    mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (1) mod_proxy_balancerの設定編 Apache2.2から、ロードバランシングをしてくれるmod_proxy_balancer というモジュールが標準添付になりました。 このモジュール、その名前の通り、ApacheレベルでHTTPリクエストをバックエンドのサーバーに振り分けることでロードバランシングをしてくれるモジュールです。 Apacheの公式ドキュメントや試しに入れてみた人のBlogなどは散見されますが、実際の現場で運用している事例というのはまだ無いようです。 そこで、実際にピーク時にover 500 request/secでmod_proxy_balancerなサーバーを運用している経験をふまえ、つまずいた点などを公開していきたいと思います。 まず、mod_proxy_balancerの

    aki77
    aki77 2006/08/17
    mod_proxy_balancer
  • ActiveXパッチがあたったIEでFlashなどを従来通り表示させるためのJavaScript(Flashのバージョン検出機能付き)

    2006年4月のActiveXパッチがあたったIEでFlashなどを従来通り表示させるためのJavaScript(Flashのバージョン検出機能付き) Eolasの特許回避のため、2006年4月の月例パッチでInternetExplorerのActiveX周りに変更が加えられました。 具体的には、従来のようにHTMLページ内にobjectタグやembedタグでFlashを表示するように記述した場合、Flash上にマウスカーソルを持って行くと「このコントロールをアクティブ化して使用するにはクリックしてください」 と表示され、そのFlashがクリックを受け付けたり、マウスの位置情報を取得したりするためには(インタラクティブに振る舞うには)、一旦Flash上でクリックなどをしてFlashコントロールをアクティブ化しなくてはならなくなりました。 これの回避方法として、外部JavaScriptによっ

  • cyano: 30万個ぐらいの静的ファイルを配信するサーバーの選び方

    naoyaさんが公開されてるInside Hatena Bookmark's Backend の資料などを読むと、mod_perlなサーバーやMySQLサーバーの選び方の参考になったりするわけですが、世の中を見渡してみても、静的コンテンツ(画像とか)を配信するサーバーの指南書らしきものはなかなか見あたりませんでした。 なので、経験を元に書いてみることにします。 弊社の画像配信サーバーには、平均10kbぐらい(たぶん)の画像が30万個ぐらいあって、それをDell PowerEdge 1750+lighttpdを使って配信してます。 以前は搭載メモリ1GBのサーバーを使っていたのですが、その時のvmstatがこのような感じ。 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b sw

    aki77
    aki77 2006/04/27
  • cyano: HTTPSの認証ページから認証後、HTTPのページへセキュリティーの警告無しにリダイレクトする方法

    普通に考えると、パスワードを認証後のHTTPレスポンスヘッダ(*1の部分)で Location: http://www.exmaple.com/logined.html とかすればいいんじゃないの?と思うのですが、そうするとIEで「セキュリティーで保護されていないページに移動しようとしています」というような警告ダイアログが出てきてしまいます。 そんな警告ダイアログが出るのはユーザーフレンドリーじゃないので、それを防ぐ方法。 解決方法は簡単で、レスポンスヘッダで対応できないならレスポンスボディーで対処すればOK(Yahoo!なんかもこの方法を使っているようです)。たとえば、認証後、*1のところで以下のようなHTMLを返してあげれば、ブラウザがHTTPなページにリダイレクトしてくれるわけです。 <html> <head> <meta http-equiv="refresh" content="

  • cyano: GData非公式開発者ガイド

  • cyano: mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (4) mod_deflateと組み合わせる際の注意点編

    mod_proxy_balancerで中〜大規模サーバー運用するときの勘所 - (4) mod_deflateと組み合わせる際の注意点編 Apache2.2から、ロードバランシングをしてくれるmod_proxy_balancer というモジュールが標準添付になりました。 このモジュール、その名前の通り、ApacheレベルでHTTPリクエストをバックエンドのサーバーに振り分けることでロードバランシングをしてくれるモジュールです。 Apacheの公式ドキュメントや試しに入れてみた人のBlogなどは散見されますが、実際の現場で運用している事例というのはまだ無いようです。 そこで、実際にピーク時にover 500 request/secでmod_proxy_balancerなサーバーを運用している経験をふまえ、つまずいた点などを公開していきたいと思います。 今回は、mod_deflateと組み合わ

    aki77
    aki77 2006/02/05
  • cyano: prototype.js version 1.4.0系でのEnumerableの使い方

    Ruby on Railsなどのフレームワークに標準付属されていて、オブジェクト指向なJavaScriptを書く人たちの間で注目されているprototype.jsですが、Version 1.3.1時点での機能についての解説書は見つけたものの(prototype.js v1.3.1 の使い方)、1.4系で盛り込まれるであろうEnumerableについては見つけることができませんでした。なので、Version 1.4.0_rc4時点でのEnumerableについて解説してみます。 Enumerableとは、配列やハッシュなどのデータ構造に対して繰り返し処理をさせるための機能を集めたものです。たとえば配列に入っている値それぞれについて処理を行いたかった場合、従来ならば以下のように書いていたでしょう。 var data = [1,2,3,4]; for(var i=0; i<data.length

  • 1