1. 程式人生 > >mochiweb原始碼分析(七)

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是用響應狀態行、響應頭部、空行和訊息體組成響應報文發給客戶端。