If Not objRequest.HttpMethod.Equals(HTTP_METHOD_GET) Or Not objRequest.HttpMethod.Equals(HTTP_METHOD_HEAD) Then ' 目前只支持GET和HEAD方法 objResponse.StatusCode = 501 ' 没有执行 ElseIf Not objFile.Exists Then ' 无法找到被请求的文件 objResponse.StatusCode = 404 ' 没有找到 ElseIf objFile.Length > Int32.MaxValue Then ' 文件太大了 objResponse.StatusCode = 413 ' 请求实体太大 ElseIf Not ParseRequestHeaderRange(objRequest, alRequestedRangesBegin, alRequestedRangesend, _ objFile.Length, bIsRangeRequest) Then ' Range请求中包含无用的实体 objResponse.StatusCode = 400 ' 无用的请求 ElseIf Not CheckIfModifiedSince(objRequest,objFile) Then ' 实体没有被修改过 objResponse.StatusCode = 304 ' 没有被修改过 ElseIf Not CheckIfUnmodifiedSince(objRequest,objFile) Then ' 实体在上次被请求的日期之后被修改过 objResponse.StatusCode = 412 ' 预处理失败 ElseIf Not CheckIfMatch(objRequest, objFile) Then ' 实体与请求不匹配 objResponse.StatusCode = 412 ' 预处理失败 ElseIf Not CheckIfNoneMatch(objRequest, objResponse,objFile) Then ' 实体的确与none-match请求匹配。 ' 响应代码位于CheckIfNoneMatch函数中 Else ' 初步检查成功 |