青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

支持gzip的爬蟲 gzip zlib deflate 相關介紹

最近給Httpdownload 封裝了支持gzip傳輸

 

HTTP的角度

1 客戶端 http Request  Header上帶上 Accept-Encoding:gzip,deflate

2服務器若是支持gzip壓縮則在http reponse eader

部分返回Content-Encoding: gzip 或者Content-Type: application/x-gzip

3body部分用gzip解壓縮 則得到網頁內容.

傳說中iebug 在處理js css壓縮的時候有bug,我不理解 挺簡單的怎么會有bug.

gzip的角度

gzip是一種數據格式 默認且目前僅使用deflate算法壓縮data部分

zlib也是一種數據格式,使用defalte算法壓縮數據部分.

deflate是一種壓縮算法,huffman編碼的一種加強

 

zlib是一個開源庫, 提供deflate壓縮和對應的infalte解壓縮.

不過zlib默認的deflate infalte默認是處理zlib格式數據.必須使用

deflateInit2(&strm, DEFAULT_COMPRESSION,Z_DEFLATED, DEFAULT_WINDOWSIZE,DEFAULT_MEMLEVEL, Z_DEFAULT_STRATEGY);

初始化才是處理raw deflate data.(這一點在zlib manul沒有提,faq中提到,困擾了我好久,還是同事L幫我調試發現)

至于gzip格式解析 對著RFC寫就可以了.

參見RFC 1950 關于zlib http://www.faqs.org/rfcs/rfc1950.html

      RFC 1951 關于deflate http://www.faqs.org/rfcs/rfc1951.html

      RFC 1952 關于gzip http://www.faqs.org/rfcs/rfc1952.html 


nt  CGzip::Ungzip(const std::string & inStr , std::string &outStr){
    static int nFileCount=0;
        nFileCount++;
    string strZipFileName="test";
//    CConvert::StrToFile(inStr,strZipFileName+CConvert::toString<int>(nFileCount)+"H.gzip"clip_image001;
    if(inStr.length()<11){
        return -1;   
    }
    //process gzip header
    unsigned int skipCt = 10;
    unsigned int skipZeroCt = 0;
    unsigned char ID1 = inStr[0];
    unsigned char ID2 = inStr[1];
    unsigned char XFL=inStr[8];
    bool bFEXTRA = false ;
    bool bFNAME = false ;
    bool bFCOMMENT = false ;
    bool bFHCRC = false ;
    unsigned int XLEN = 0;
   
    if( (ID1!=31) && (ID2!=139)){
        return -1;  //
gzip頭部
        }
    unsigned char CM = inStr[2];
    if(CM!=clip_image002{
        return -1; //
現在都只處理 deflate壓縮的
    }
    unsigned char FLG = inStr[3];
    if( (FLG & GZIP_HEAD_FEXTRA) != 0){
        bFEXTRA = true ;
        skipCt += 2;
        XLEN = inStr[10]+ inStr[11]*256 ;//
按照小端字節序列處理
        skipCt += XLEN;
    }
    if( (FLG & GZIP_HEAD_FNAME) != 0){
        bFNAME = true;
        skipZeroCt++;
    }
    if( (FLG & GZIP_HEAD_FCOMMENT) != 0){
        bFCOMMENT = true;
        skipZeroCt++;   
    }
   
    size_t passedZeroCt = 0;
   
    size_t iStep = skipCt ;
    for( size_t iStep =  skipCt ; iStep<inStr.length(); iStep++){
            if(passedZeroCt>=skipZeroCt){
                break;   
            }
            if(inStr[iStep]==''clip_image001{
                passedZeroCt++;   
            }
       
    }
    skipCt = iStep ;
    if( (FLG & GZIP_HEAD_FHCRC) != 0){
        bFHCRC = true;
        skipCt+=2 ;
    }
        string coreStr = inStr.substr(skipCt,inStr.length()-8-skipCt);
           return CGzip::Inflate(coreStr,outStr);
   
   
   
}

 

int  CGzip:clip_image003ogzip(const std::string & inStr , std::string &outStr){
    char pAddHead[10];
    unsigned long crc = 0;
    // gzip header
    static const char deflate_magic[2] = {'37', '\213'};
    snprintf(pAddHead, 10,
            "%c%c%c%c%c%c%c%c%c%c", deflate_magic[0],
            deflate_magic[1], Z_DEFLATED, 0 /* flags */,
            0, 0, 0, 0 /* 4 chars for mtime */,
            0 /* xflags */, 0xff);
    string addHead(pAddHead,10);
    //gzip's raw deflate body
    if(CGzip:clip_image003eflate(inStr,outStr)<0){
        return - 1;   
    }
    //gzip trailer
    crc = crc32(crc, (const Bytef*)inStr.data(), inStr.length());
    char  tailBuf[8];
    memcpy(tailBuf, &crc, 4);
    int isize=inStr.size();
    memcpy(tailBuf,&isize,4);
    string tailStr(tailBuf , 8 );
    outStr = addHead + outStr+tailStr;     //
    return outStr.length(); //

posted on 2009-09-07 21:58 肥仔 閱讀(2729) 評論(0)  編輯 收藏 引用 所屬分類: 庫 & 代碼段HTTP & URL

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品自在在线观看| 亚洲三级影院| 久久综合九九| 久久久久综合一区二区三区| 欧美在线视频免费| 欧美一区二区免费| 久久久精品免费视频| 久久久综合香蕉尹人综合网| 久久九九有精品国产23| 免费观看在线综合色| 欧美欧美午夜aⅴ在线观看| 欧美精品一区二区三区很污很色的| 欧美女同视频| 国产日韩一区二区三区| 亚洲第一页自拍| 一本色道久久综合精品竹菊| 午夜免费日韩视频| 久久久久99精品国产片| 亚洲国产成人久久综合一区| 亚洲缚视频在线观看| 亚洲天堂激情| 麻豆久久精品| 国产精品久久影院| 亚洲成色www8888| 亚洲欧美日韩一区在线观看| 你懂的视频一区二区| 一本久久综合亚洲鲁鲁| 久久精品一二三| 欧美午夜一区二区福利视频| 在线观看一区二区精品视频| 亚洲一区欧美激情| 亚洲第一视频网站| 欧美一级一区| 国产精品极品美女粉嫩高清在线| 在线观看日韩精品| 久久国产精品99久久久久久老狼| 欧美激情亚洲激情| 久久se精品一区精品二区| 亚洲一区二区高清视频| 国产欧美精品久久| 99精品黄色片免费大全| 久久久综合香蕉尹人综合网| 99ri日韩精品视频| 免费在线观看一区二区| 国产一区自拍视频| 亚洲一区二区视频在线| 亚洲国产日韩欧美在线99| 欧美一区二区三区四区在线观看地址| 欧美理论大片| 亚洲欧洲精品天堂一级| 久久综合影音| 香蕉久久夜色精品国产使用方法| 欧美无乱码久久久免费午夜一区| 最新中文字幕亚洲| 亚洲高清自拍| 麻豆久久婷婷| 亚洲激情偷拍| 欧美大片免费| 麻豆精品精华液| 亚洲国产成人午夜在线一区 | 欧美日韩1区2区| 亚洲蜜桃精久久久久久久| 欧美激情女人20p| 农夫在线精品视频免费观看| 亚洲福利国产| 亚洲国产精品久久久久秋霞蜜臀 | 久久一区二区三区超碰国产精品| 亚洲无限av看| 国产欧美在线视频| 久久久蜜桃精品| 久久视频免费观看| 在线欧美不卡| 91久久亚洲| 欧美午夜性色大片在线观看| 香蕉亚洲视频| 久久久999精品免费| 91久久香蕉国产日韩欧美9色| 亚洲黄色天堂| 国产精品美女久久福利网站| 久久国产免费| 男人天堂欧美日韩| 亚洲免费视频中文字幕| 亚洲欧美综合v| 亚洲激情女人| 亚洲在线视频观看| 136国产福利精品导航网址| 亚洲风情在线资源站| 国产精品video| 另类专区欧美制服同性| 欧美精品一区二区三区久久久竹菊 | 欧美美女喷水视频| 欧美在线免费视频| 国产精品久久久久久一区二区三区| 亚洲图色在线| 亚洲欧美日韩综合国产aⅴ| 激情综合自拍| 日韩亚洲欧美一区二区三区| 国产婷婷成人久久av免费高清| 男人的天堂亚洲在线| 欧美日本免费一区二区三区| 久久精品国产一区二区三区| 欧美大片免费观看| 久久精品123| 欧美xxx在线观看| 久久aⅴ乱码一区二区三区| 老牛国产精品一区的观看方式| 妖精成人www高清在线观看| 亚洲免费影视第一页| 亚洲国产一区二区精品专区| 亚洲伊人一本大道中文字幕| 91久久国产综合久久蜜月精品| 亚洲影院色在线观看免费| 亚洲国产午夜| 久久蜜桃精品| 久久九九国产| 国产精品多人| 99视频超级精品| 亚洲国产91| 欧美一级视频精品观看| 亚洲欧美日韩网| 欧美三级免费| 亚洲精品久久久一区二区三区| 一区二区三区在线免费视频| 亚洲欧美日韩国产| 亚洲欧美另类久久久精品2019| 欧美大片免费久久精品三p | 亚洲国产精品久久久久婷婷老年| 亚洲在线视频网站| 亚洲综合第一| 欧美午夜电影完整版| 亚洲精品久久久久久下一站| 亚洲久久成人| 欧美激情一区二区三区全黄| 欧美国产日韩在线| 亚洲高清视频中文字幕| 久久理论片午夜琪琪电影网| 久久久久久精| 伊甸园精品99久久久久久| 久久狠狠一本精品综合网| 久久狠狠亚洲综合| 国产美女精品视频免费观看| 在线视频欧美日韩| 亚洲欧美日韩精品久久亚洲区 | 欧美 日韩 国产在线| 好看的亚洲午夜视频在线| 亚洲欧美日韩精品一区二区| 久久精品国产综合| 黄色一区二区三区| 久久久噜噜噜久久久| 亚洲二区在线视频| 久久久水蜜桃| 国产精品久久久久99| 这里是久久伊人| 欧美亚洲一级| 韩国亚洲精品| 欧美激情2020午夜免费观看| 亚洲国产精品久久久久秋霞蜜臀| 在线亚洲国产精品网站| 国产精品区一区二区三| 欧美中在线观看| 亚洲高清三级视频| 亚洲视频图片小说| 国产精品夜夜夜一区二区三区尤| 一区二区三区四区五区视频 | 亚洲色诱最新| 久久精品一级爱片| 亚洲国产视频直播| 国产精品久久久久一区二区三区| 午夜精品久久久久久久久久久| 免费在线观看一区二区| 亚洲色图自拍| 伊人伊人伊人久久| 欧美日韩国产综合一区二区| 亚洲综合色丁香婷婷六月图片| 男女激情视频一区| 亚洲欧美经典视频| 亚洲欧洲精品一区| 国产一区二区精品久久99| 欧美激情第五页| 久久国产日韩欧美| 一本色道久久综合| 欧美韩国日本一区| 久久久久久久久一区二区| 一区二区三区福利| 亚洲国产精品激情在线观看| 国产伦精品一区二区三区高清| 欧美成人综合一区| 久久精品国产一区二区三区免费看 | 日韩五码在线| 久久一日本道色综合久久| 一区二区三区.www| 91久久久亚洲精品| 尤物yw午夜国产精品视频| 国产精品久久国产三级国电话系列| 玖玖综合伊人| 久久久精品tv| 久久国产夜色精品鲁鲁99| 亚洲综合视频网| 在线中文字幕一区| 亚洲精品午夜|