in lib/src/static_handler.dart [179:203]
Future<Response> _handleFile(Request request, File file,
FutureOr<String?> Function() getContentType) async {
final stat = file.statSync();
final ifModifiedSince = request.ifModifiedSince;
if (ifModifiedSince != null) {
final fileChangeAtSecResolution = toSecondResolution(stat.modified);
if (!fileChangeAtSecResolution.isAfter(ifModifiedSince)) {
return Response.notModified();
}
}
final contentType = await getContentType();
final headers = {
HttpHeaders.lastModifiedHeader: formatHttpDate(stat.modified),
HttpHeaders.acceptRangesHeader: 'bytes',
if (contentType != null) HttpHeaders.contentTypeHeader: contentType,
};
return _fileRangeResponse(request, file, headers) ??
Response.ok(
request.method == 'HEAD' ? null : file.openRead(),
headers: headers..[HttpHeaders.contentLengthHeader] = '${stat.size}',
);
}