home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

1111 - 1120 / 1320    [|<]  [|<]  [<]  111  112  113  114  115  116  117  118  119  120   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(2) msakamoto-sf 2009-03-29 23:08:52
日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(1) msakamoto-sf 2009-03-29 23:07:12
PHP/HTTP DateとGMTの処理について実験メモ2 msakamoto-sf 2009-03-29 23:02:53
PHP/HTTP DateとGMTの処理について実験メモ1 msakamoto-sf 2009-03-29 23:00:57
日記/2007/05/08/プログラミングに適した等幅フォントなど。 msakamoto-sf 2009-03-29 22:55:17
日記/2007/05/08/Unicows.dll に関するエラー。 msakamoto-sf 2009-03-29 22:54:15
日記/2007/05/13/JavaのClassLoader, クラスローディング関係の資料 msakamoto-sf 2009-03-29 22:52:08
日記/2007/05/27/References in PHP: An In-Depth Look(Derick Rethan) msakamoto-sf 2009-03-29 22:49:35
日記/2007/05/27/Understanding Class.forName() msakamoto-sf 2009-03-29 22:47:28
日記/2007/06/09/UUID, GUIDのリンクまとめ書き。 msakamoto-sf 2009-03-29 22:42:02
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(2)  

所有者: msakamoto-sf    作成日: 2007-05-04 14:27:20
カテゴリ: Web ネットワーク 

で、肝心のEtagの内容。これは単純に、コンテンツの内容が変わっていないか識別する為のユニークな文字列、とのこと。

ただコレがIf-Modified-Sinceと絡むと面倒くさくなってくる。

う~~ん・・・Apache自身の挙動と、ブラウザ毎による挙動とで、訳分からなくなってきてるな・・・。例えば状況によっては、Last-Modifiedは変わらなくても、Etagを変えて更新をユーザーエージェントに通知したい場合も、あるのかも知れない。そうしたときが、落とし穴になるらしい。

ちなみにPHPでEtagを判別して、200か304かを判別してくれるクラスが
http://www.ryo.com/ryo/2005/05/23/9/
にあった。・・・前にもどこかで見かけたな。

という案配。う~~ん、やっぱり、CGIやPHPは、自己の責任でLast-Modifiedを管理。で、静的ファイルは、FileMatchを組み合わせてFileEtagディレクティブで、Apache側でEtagを付けちゃう。その場合は、i-nodeではなくてmtimeとsizeを元に作るようにしておく。

みたいな感じ。・・・こうしてみると、CGIやJava系は、なるほど。アクセス数が多いサイトの場合はApacheをフロントに立たせるという手法も必要になるわなあ。特にJavaのASでWebサーバの機能を提供している場合、ここまでカバーしてくれるのか?という場合もあるし。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 23:08:52
md5:a37423c6f22a273abb6134db33857d86
sha1:8174253f76ade81a3bf309140240a93d2e9dd193

日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(1)  

所有者: msakamoto-sf    作成日: 2007-05-04 13:53:12
カテゴリ: Web ネットワーク 

If-Modified-Since/Last-Modifiedのペアの取り扱いは割かし楽だった。Studying HTTPの解説と、若干のPHP関数のマニュアル見るだけでどうにかできた。(filemtime関数は盲点だった・・・。fstatしてたよ、畜生。)

で、まあ基本はこれで行けそうなんだけど、ずっと前にキャッシュ周りで調べてたときにちらっと気になった "Etag" というヘッダフィールドについて調べてみた。

実はこれ、Studying HTTP には載っていない。では非標準ヘッダーか?と調べてみたら、
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
にあるように、RFC2616で規定されている。

で、ざっとぐぐってみたところ。まずは@ITにヒット。

まあ上記は、画像やstatic-HTML, CSS, JavaScriptなどがメインの話になってくるのでしょう。Apacheだと"FileEtag"というので、どの情報を基にEtagを生成するのかを指定できるみたい。Apache本家のマニュアルはこちら。
http://httpd.apache.org/docs/2.2/ja/mod/core.html

@ITの記事では、逆にFileEtagを画像などでも無効化する対策が載ってるけど、
http://dsas.blog.klab.org/archives/50602499.html
では単にMtimeとSizeだけを元に生成するよう調整している。確かに、静的ファイルは自らLast-Modified吐いたりするわけじゃないので、FileEtagがあるに越したことはない。
CVSとか使ったり、最悪、mtimeならtouchコマンドで偽造できる。Sizeはコピーしたなら一緒だろう。なので、FileMatchで静的ファイルにのみ自動でEtagを付けるようにするのは、割かし効果的な気がする。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 23:07:12
md5:5052f6193653a653a83988c662919a86
sha1:da068192ebdc67614e691bae6ade4f9321b05811

PHP/HTTP DateとGMTの処理について実験メモ2  

所有者: msakamoto-sf    作成日: 2007-05-08 23:01:42
カテゴリ: PHP 

しまった。date/gmdateで'r'フォーマットすればHTTP-Dateに直せた。いちいちgmstrftimeしてたよ・・・。
いや、正確にはRFC-2822のフォーマットなんだけど、中身的にはRFC822 (updated RFC1123)と同じ。
http://www.faqs.org/rfcs/rfc2822
→ 3.3. Date and Time Specification

http://www.ietf.org/rfc/rfc0822.txt
→ 5. DATE AND TIME SPECIFICATION

http://www.ietf.org/rfc/rfc1123.txt
→ 5.2.14 RFC-822 Date and Time Specification: RFC-822 Section 5
(単にRFC822で年が2桁だったのを、2-4桁に修正しただけ)

DOS> php -r "echo date('r');"
Mon,  7 May 2007 12:06:51 +0900

DOS> php -r "echo date('Z');"
32400

> php -r "echo strtotime(date('r'));"
1178507255
> php -r "echo time();"
1178507267

> php -r "echo gmdate('r');"
Mon,  7 May 2007 03:17:08 +0000


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 23:02:53
md5:b77c34d6792ed69620e1e98cdc1ca16d
sha1:29f0191fc8c7c81f1a6bd2215182b60eb169c19c

PHP/HTTP DateとGMTの処理について実験メモ1  

所有者: msakamoto-sf    作成日: 2007-05-03 22:57:28
カテゴリ: PHP 

きっかけは画像を出力するPHPを作ってたときに、Last-Modifiedを作る必要があって。
で、
http://www.studyinghttp.net/header#Last-Modified
を読んでたらHTTP-Dateというのが出てきて、
http://www.studyinghttp.net/header#HTTP-Date
を読んでたら"GMT表記"が必要らしい。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 23:00:57
md5:7de3fe0e9351c444d350346a6e1f49a1
sha1:ee59fced5976b392479b9a10d2d7946eaf6e5bdd

日記/2007/05/08/プログラミングに適した等幅フォントなど。  

所有者: msakamoto-sf    作成日: 2007-05-08 22:54:48
カテゴリ: プログラミング 

・プログラミングコード用のフォント
http://anond.hatelabo.jp/20061209160227
http://www.lowing.org/fonts/
http://dicey.org/vlgothic/
http://mix-mplus-ipa.sourceforge.jp/

→VLGothicが最強に使いやすい。日本語は・・・Win上だとMS-Gothicになれきってしまったが、Linux上であれば
多分これが最強レベルに見やすいのではなかろうか。
また、Win上でも少なくとも0とOの見分けをつける上でも、おそらくこれは使いやすいほうであろう。
次点でM+2P+IPAG-circle.ttfとなろうか。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:55:17
md5:56ed5d4a3b4ea371490f3e5861b57717
sha1:2780b8829cd7ddfe1ea4ac23fdf867fe9160d25f

日記/2007/05/08/Unicows.dll に関するエラー。  

所有者: msakamoto-sf    作成日: 2007-05-08 22:53:30
カテゴリ: Windows 

あるマシンで、VLGothicを使用してOOWriter→PDF出力したのを、別の、VLGothicが入ってないマシン上で表示できるかチャレンジした。
で、別のマシンって言うのが、非常にPureなWin2kマシン。AcrobatReaderすら入れてなかった。で、ar7.0.9を入れて、いざ読ませようとしたら

Unable to load Unicows.dll

と怒られた。
適当にぐぐった結果、以下のWikipediaを発見。

元々Win9x系のアーキテクチャでUNICODEを扱う為のレイヤーDLL。らしい。
・・・Win2kなんだけど・・・。

ともあれ、入れてみて、実際直ったから、Win2kでも一定の効果?かも知れない。

というか・・・MediaPlayerすら入れておらず、Office2kだけだからなあ。WinXPまで引き継がれているmultimediaや開発環境系のソフトを全く入れていないから、それが影響しているのかも知れない。

とりあえず、いざという時は役立つかも知れないので、書き留めておく。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:54:15
md5:bbf7fd2190c7b898ac23660aa3103b46
sha1:21bbf49e4dbd7609eaf8de9688b2f9052f07dd8e

日記/2007/05/13/JavaのClassLoader, クラスローディング関係の資料  

所有者: msakamoto-sf    作成日: 2007-05-13 22:51:13
カテゴリ: Java 

とりあえず、暇つぶしに調べてたののURL関係だけ。
http://www.nextindex.net/java/classloader.html
http://www-128.ibm.com/developerworks/java/library/j-dclp1/index.html
http://www-128.ibm.com/developerworks/java/library/j-dclp2.html
http://www-128.ibm.com/developerworks/java/library/j-dclp3/index.html
http://www-128.ibm.com/developerworks/java/library/j-dclp4/index.html

http://www.nminoru.jp/~nminoru/java/class_unloading.html
・・・なに、このヒト。Javaバイトコードまで読んでる。吹っ飛びすぎ。

http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/class-loader-howto.html
http://www.sk-jp.com/mt/philosophical/archives/2005_04/05_224941.html

一応、
http://www.nextindex.net/java/classloader.html
に書いてあったのと同じコードをJDK1.6.0_01で試してみたら、同じ結果になった。
??何か、仕事先で適当に試したら、JDK5だと、CLASSPATHも、lib/extも、全部BootStrapLoader
が読んでないか?・・・みたいな結果になったんだけど。但し、全然違うコードだけど。やり方が悪かったのかな?そっちのコードだと、エントリポイントのクラスも、全部 class.getClassLoader()がnullなんだけど。う~~ん・・・あとで、変な結果になったソースコードも改めて検証してみよう。暇な時に、気が向いたら。

うお、いつのまにこんな機能が!?って、JDK5からか・・・。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/vm/class-data-sharing.html
あ、だからか・・・そういや、確かに、-verbose:class したときも、み~~んな

[Loaded ***** from shared objects file]

みたいに表示されてた。つまり、共有クラスキャッシュに入ってるら、BootstrapLoaderにみ~~~な読み込まれちゃうわけだ。

-Xshare:off

すれば、無効化できる。

[Loaded java.lang.Object from C:\Program Files\Java\jdk1.6.0_01\jre\lib\rt.jar]

・・・みたいな感じになる。ただ、その分実行速度がめちゃくちゃ遅くなった・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:52:08
md5:5354dbe91dc55ecf18095ea1831a5816
sha1:d1426ac9f91de95e739ca688bb1c6f16542eae9b

日記/2007/05/27/References in PHP: An In-Depth Look(Derick Rethan)  

所有者: msakamoto-sf    作成日: 2007-05-27 22:48:34
カテゴリ: PHP 

日本語では中々・・・というか皆無な、PHPの最大の汚点、変数の「参照」の内部詳細について、xdebugの開発者のDerick Rethanが、2005年6月のPHP architect誌に掲載した記事。

http://www.derickrethans.nl/files/phparch-php-variables-article.pdf

Rethan氏のその時のBlog:
http://www.derickrethans.nl/variables_and_references_article.php

PHP|architect誌のバックナンバー:
http://www.phparch.com/issue.php?mid=59

すんっっっっごい貴重。ZendEngineも2になって多少は変わってると思うけど、喉から手がでるほど(いや、実際自分でzval周りのコードを漁ろうと手を出してはいた。途中で頓挫したが。)欲しかった情報。

英語版のPDFは、Googleからは参照できるが、Rethan氏の対応する記事からはリンクが張られていない。そのため、ひょっとしたらでもなく著作権上まずいかも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:49:35
md5:8eb764bf1e2093f0a304af9a52aad141
sha1:3ab93e4a853755c00de046e183fd16e5d1d6554e

日記/2007/05/27/Understanding Class.forName()  

所有者: msakamoto-sf    作成日: 2007-05-27 22:46:12
カテゴリ: Java 

http://www.javageeks.com/Papers/ClassForName/index.html
より。
JDK1.0 - 1.2の境目で発生した、ClassLoaderの委譲モデルの変更点とその影響の解説、がメインといえばメインなんだけど、SunのJavaVMにおけるClassLoaderの構成や、JavaVMSpecの2nd以降のClassLoaderの親子関係、委譲モデル、Extension ClassLoaderに読み込ませるときの問題点などを丁寧に扱っている。

惜しむらくは、親サイトの
http://www.javageeks.com/index.html
のリンクが色々とおかしくなってて現状機能していない事か。
まあPDFはローカルにDLしたからいいけど。

ClassLoader周りは、この辺りの「基本」が分かっていないとTomcatや各種APの該当解説ページを見ても「何を言っているのか理解不能」な領域である為、こういうのがあると非常に助かる。

ExtClassLoader(JAVA_HOME/lib/ext*.jarを自動ロードするClassLoader)から読み込まれたクラス内で、CLASSPATH上にあるクラスをClass.forName()で牽こうとすると、クラスが見つからない。何故か。それはExtClassLoaderの親がBootstrapClassLoaderになってしまうため、CLASSPATHが検索対象に入らないからだ。

で、上記PDFではその解決方法としてThead.getContextClassLoader()で取得したCLを、Class.forName(完全限定名, クラスの初期化是非, CL)に渡す手法が述べられている。
確かに、ThreadをCLASSPATH以降でロードされたクラス内で生成するのであればこの手法が間違いない。但し実際にTomcatのCLツリーなどは専用のドキュメントが用意されているほど独特なので、そちらに合わせるが吉、か。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:47:28
md5:2999660d8001e4a82ab1fa0f73968014
sha1:4c6206ed8fff2908c80d57a5105abe1cc9a56112

日記/2007/06/09/UUID, GUIDのリンクまとめ書き。  

所有者: msakamoto-sf    作成日: 2007-06-09 22:41:08
カテゴリ: PHP プログラミング 

えっと、Open Source Foundation(OSF) の Distributing Computer Environment(DCE)の一部として標準化されて居るみたい。MicrosoftではGUIDとも呼ばれてて、開発ツールに生成ツールがくっついてくる。UNIX系だと、ext2/ext3のファイルシステムで使われている為、例えばJManによるとe2fsprogsに生成ツールが含まれている模様。

その実体は128bit(16byte)データ。通常は16進数で表現する(32桁)のだけれど、適当に5つに区切り、ハイフンで繋げるみたい。なので、正味16進数32桁+4つの"-"で36文字になるみたい。

http://jp.php.net/manual/ja/function.uniqid.php
とかで、かなりUUIDの生成で白熱?した議論が続いている・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 22:42:02
md5:9905dc37bde27465badad8bda032afdc
sha1:7496fd42591ab7df5df9cc6ba895cff3d1e8958c