mochiweb源码分析(七)

前面说到了filelib:is_dir这函数,如果是目录,则执行true流程,进入mochiweb_request:maybe_redirect/4这函数

然后根据第一个参数是否是[],调用不同的分支

回到之前说的true、false判断,如果是文件,则调用mochiweb_request:maybe_serve_file/3

首先:LastModified = httpd_util:rfc1123_date(FileInfo#file_info.mtime),这里根据读取到的文件信息中的最后一次写的时间,来生成一个rfc1123 date

获取到日期以后,接着调用:mochiweb_request:get_header_value/2函数传递头部信息判断日期是否已存在.

若存在返回304代码,304代码解释如下:

HTTP 304 Response 当一个客户端(通常是浏览器)向web服务器发送一个请求,如果web服务器返回304响应,则表示此请求的本地缓存是最新的,可以直接使用

如不存在则打开文件mochiweb_request:ok/2是用响应状态行、响应头部、空行和消息体组成响应报文发给客户端。

猜你喜欢

转载自blog.csdn.net/boiled_water123/article/details/83752659