2011-07-18 18 views
0

私はHttpWebRequestを持っており、Webサーバーに「POST」し、HTMLページを取得します。HTTP応答が変更されましたか?

私は得た応答が変更されたかどうかを知るためのベストプラクティスはどのように聞かれましたか?

ウェブサーバーのヘッダーで中継できません。必ずしもそうである必要はありません。

これは、応答をもう一度解析する必要がないようにパフォーマンスを向上させ、半分ほどの時間で次のリクエストに進むでしょう。

ありがとうございます

答えて

0

最終更新日についてウェブサーバーに伝えることができます。 hereを参照してください。あなたがそれに頼ることができない場合は、とにかくあなたの応答を解析する必要があります。あなたはmd5を使ってそれをすばやく行うことができます。だからあなたは現在のレスポンスを "md5"してそれを以前のレスポンスと比較します。

+0

この意志はない(または少なくともべきではありません)。.. 'POST'リクエストの作業。 –

+0

はい、あなたは正しいです。したがって、GETに変更するか、md5を使用して比較する必要があります。 – duedl0r

0

POSTリクエストのヘッダーには依存しないでください。なぜなら、とにかくキャッシングヘッダーを送信しないようにするためです。あなたが代わりに行うために必要なもの

が返さコンテンツに(これは絶対的な性能や、md5としてハッシュ「本物」のためにCRC(32)のいずれかであることができる)ハッシュ/チェックサムを実行している(これは、\r\n\r\n内の下のすべてを意味しますヘッダー)、そのように比較を行います。

最後のリクエストのチェックサム/ハッシュを保存して比較するだけで十分です。

例えば(擬似):

int lastChecksum = 0; 
bool hasChanged() { 
    performWebRequest(); 
    string content = stripHeaders(); 
    int checksum = crc32string(content); 
    if(checksum != lastChecksum) { 
     lastChecksum = checksum; 
     return true; 
    } 
    return false; 
} 
関連する問題