【发布时间】:2014-01-06 11:43:14
【问题描述】:
我写了一个c++ http服务器(微软http服务器api)
以gzip格式发送html页面文件
gzip 文件是静态的
例如文件 page1.htm 和 page1.htm.gz 在同一目录中
根据 http://en.wikipedia.org/wiki/Gzip
我知道 gzip 带有额外的标题 并且 deflate 是 gzip 的一部分
我如何通过跳过标头发送 gzip instade deflate
fileHandle=CreateFile( "page1.htm.gz" ,dwAccess,dwShare,NULL,dwCreationFlags,dwAttributes,NULL);
....
ADD_KNOWN_HEADER(response, HttpHeaderContentEncoding, "deflate" );
HTTP_DATA_CHUNK dataChunk;
{
HTTP_DATA_CHUNK dataChunk;
response.EntityChunkCount = 1;
dataChunk.DataChunkType = HttpDataChunkFromFileHandle;
dataChunk.FromFileHandle.FileHandle =fileHandle;
dataChunk.FromFileHandle.ByteRange.StartingOffset.QuadPart =9;// 9 is gzip header len
dataChunk.FromFileHandle.ByteRange.Length.QuadPart = HTTP_BYTE_RANGE_TO_EOF;
response.pEntityChunks=&dataChunk;
}
.....
【问题讨论】: