通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求。对于StaticFileMiddleware处理请求的逻辑,大部分读者都应该想得到:它根据请求的地址找到目标文件的路径,然后利用注册的ContentTypeProvider根据路径解析出与文件内容相匹配的媒体类型,默认情况下得到的媒体类型是根据目标文件的扩展名解析出来的。解析出来的媒体类型将作为响应报头Content-Type的值。StaticFileMiddleware中间件最终利用FileProvider读取文件的内容作为响应消息的主体。实际上,这个中间件在处理请求时比我们想象的要多得多,针对条件请求(Conditional Request)和区间请求(Range Request)的处理就没有在上面演示的实例中体现出来。 [本文已经同步到《ASP.NET Core框架揭秘》之中]
目录
一、条件请求
HTTP条件请求
针对静态文件的条件请求
二、 区间请求
HTTP区间请求
针对静态文件的区间请求
一、条件请求
所谓的条件请求就是客户端在发送GET请求获取某种资源的时候,会利用请求报头携带一些条件。服务端处理器在接受到这样的请求之后,会提取这些条件并验证目标资源的当前的状态是否满足客户端指定的条件。在有在这些条件满足的情况下,目标资源的内容才会真正响应给客户端。
HTTP条件请求
HTTP条件请求作为一项标准记录在HTTP规范中。一般来说,一个GET请求在目标资源存在的情况下总是会返回一个状态为“200 OK”的响应,目标资源的内容将直接存放在响应消息的主体部分。如果资源的内容不会轻易改变,我们希望

