HTTP

結局うちのサイトで使えそうなのは

AsyncのリクエストなくしてAd serverにする imageサーバ、ホスト名2台 minify js combine js and css gzip js and css bottom js css sprite ブロードメディアのExpiresが全部1weekってのはどうだろう。10年くらいでもいんじゃね。 ブロードメディアのETagを…

サイト解析

CSSで指定している画像をCSS sprite化する http1.0で並列処理。でもkeep-aliveあればhttp1.1のほうがいいよ。 googleではdeferを使用。jsあとで読み込め!ってやつ。 <script type="text/javascript" defer></script>

ルール14 Ajaxキャッシュを可能にする

パッシブリクエスト 将来的な必要性を見越して発行。次、使うでしょってために先にリクエストしておくもの アクティブリクエスト そのときに利用者のアクションに応じて発行 ここでは今までのルールがAjaxのXMLRequestでも同様に守られているかをチェック Ex…

ルール13 ETagの設定を変更する

2つ以上のサーバでホストしているとキャッシュの障害になる ETagとは エンティティタグ。キャッシュされてるコンポーネントの有効性を検証するたにブラウザとwebサバが使用する仕組み。 最終更新日よりも柔軟な仕組みを取り入れるために採用された 条件付き…

ルール12 スクリプトを重複させない

複数作業者でHTMLなど書いていると重複させてしまうこともある。 重複したjsがあれば、2度のダウンロード、実行がされる。キャッシュされてても、ページの更新(F5)では条件付GETで2度リクエストされることになる。 重複をチェックするようなコードを入れ込む…

ルール11 リダイレクトを避ける

リダイレクトもスクリプト同様に次のコンポーネントがダウンロードされるのを止めちゃう 末尾スラッシュの欠如 実はhttp:www.hmv.co.jp/musicはhttp:www.hmv.co.jp/music/にリダイレクトしてる。/を追加するためにね。 対応 Aliasで定義しておく 対応 mod_re…

ルール10 JavaScriptを縮小化する

縮小化 コメント、スペース、空白、改行取り除く。 ツール JSMin, ShrinkSafe, Dojo 難読化 縮小化したあとにさらに、変数名を一文字にしたり、1byteでも削る。 だだし難読化はバグを助長しやすい。 圧縮をするとさらに小さくなる 縮小化プラスgzip!これ最…

ルール9 DNSルックアップを減らす

DNSキャッシュはTTLを持つ。TTLはどれだけキャッシュしとくかって数値。でもこれとは別にブラウザは独自でキャッシュタイムを持ってる。 IE DnsCacheTimeout: 30min KeepAliveTime: 1min ServerInfoTimeout: 2min Firefox network.dnsCacheExpiration: 1min …

ルール8 js,cssファイルは外部ファイル化する

実はインラインのほうがHTTPリクエストは1回で済むからやっぱ高速なんだよね。 だけど、キャッシュできんだからやっぱ外部のほーがはやいじゃん。 サイトによって違うけど、原則としてはブラウザキャッシュがある状態でよくみられるサイトは外部でも問題ない…

ルール7 Css Expressionの使用は避ける

使わないよね。フツー。イベントめっちゃとらえるよ。

ルール6 jsスクリプトは最後に置く

スクリプトがダウンロードしてるときはほかのコンポーネントはダウンロードできない。スクリプトが書いてあるとそこから下のレンダリングはブロックされる。 ひとつのドメインに対してリクエストは2つまでしか受けれない。 imageサーバのホスト名をもうひと…

ルール5 スタイルシートは先頭に置く

プログレッシブ(逐次)・レンダリング 上から順番にロードし、レンダリングされていくことでユーザーにとってはプログレスバー代わりになる スタイルシートを下におくとこのプログレッシブ(逐次)・レンダリングができなくなる スタイルシートによってレンダリ…

ルール4 コンポーネントgzipにする

gzipもしくはdeflateで圧縮、deflateでの圧縮は今はほとんどない。キホンはgzipでいい。 HTMLのみでなくjs, stylesheetも圧縮すべき。 ただし画像とpdfはやっちゃだめ!なぜならすでに圧縮されてるから。CPUの無駄使いになる。 一般的に1〜2KBだったら圧縮す…

ルール3 Expiresヘッダを使う

Expiredをつけとくと、if-modifiedでチェックされる。 サーバにリクエストもされない。それはリクエストヘッダがブラウザで止まってレスポンスを返してる状態のことを言う。 だからリクエスト、レスポンス自体は見える。だけどブラウザだけローカルだけで終…

ルール2 CDNを使う

Akamaiとか。image, js, css, flashとかをCDNにまかせる ツール Gomez Keynote

ルール1 HTTPリクエスト減らす

1-1 image mapタグにする 画像を1枚にしてmapタグで書くってことだよね。確かに1msは早くなった。。 1-2 CSS スプライト アイコンがごっそりある画像を一枚用意する。 ネガティブマージンのbackgroud-positionとwidth,heightで指定する。 背景、ナビゲーショ…

B章 HTTPの概要

条件付GETメソッド If-Modified-Sinceがついたリクエスト、更新されてるかリクエストで問い合わせてる。⇒304で返すかどうか If-None-Match ETagが同じかどうか Expiredがレスポンスで返されると、リクエストにもいかないってか。すげーな。 Keep-aliveでconn…

A章 フロントエンド、パフォーマンスの重要性

バックエンドがある程度最適化されたあとのハナシだね。基本的には。 フロントとバックの関係!! コンパイラオプション、インデックス、メモリ管理がバックエンド⇒20% フロントエンドコンポーネントのすべてのダウンロード⇒80% キャッシュがあるとHTTPリク…

ブラウザ重要大原則

スクリプトが実行してるときはほかのコンポーネントはダウンロードできない HTTP1.1ではひとつのドメインに対してリクエストは2つまでしか受けれない HTMLのレンダリング解析は上から順番に行われる この3つ区別!!大事! 他のページにいって同じリンクを…

今夜わかるHTTPをよんだのです。

ずいぶん前に買っていたこの本をもう一度読んだのでまとめる ネットワークとwebのキホン HTTPのバージョンはまだ1.1 3wayハンドシェイク IPではMACアドレス HTTPはこうして動く HTTPはステートレス メソッドで命令出す GET リソース取得 POST エンティティボ…

cookieそしてhttp

リクエスト時にもcookieを含めるし、 レスポンスでサーバでset-Cookieする。 いずれもHTTP HEADERでやること。いつもながらこちらで拝借。 studyinghttp.net - このウェブサイトは販売用です! - 解説 仕様書 利用 技術 である 手法 日本語訳 プログラミング…

redirect,transfer

redirectは一度クライアントに戻してサーバにいく transferはサーバ間でそのまま転送するだけ

SESSIONID

セッションはサーバのオブジェクトつまりは Webサーバ(IIS/Apache)のメモリに展開されるもの。 で、そのオブジェクトを持ち続けステートフルな環境を実現するためにsession-idってのが ある。このsession-idを持ちつづけることによってsession("userid")とか…