請求處理的流程
- 接收請求(Accept Request)
- 中繼資料處理(Metadata Processing),request會傳遞很多個掛勾(hook),呼叫所屬階段的程序(function)。
- 產生回應內容(Content Generator)
- 記錄(Logging)
正常來說,大致上是依據這個流程,如果是錯誤(error)或是產生新請求,則有可能使得request導向其他程序,另外,每個程序也可以讓其他程序呼叫,簡言之,有點複雜!(應該要畫圖解釋...)
處理的流程當中,Apache提供掛勾(hook)這項功能,可讓我們開發應用模組(module)的時候,利用回呼(callback)的方式值型模組中的功能。掛勾的總類依照請求的先後順序為:
- ap_hook_post_read_request
- ap_hook_translate_name
- ap_hook_map_to_storage
- ap_hook_header_parser
- ap_hook_access_checker
- ap_hook_check_user_id
- ap_hook_auth_checker
- ap_hook_type_checker
- ap_hook_fixups
- ap_hook_handler
- ap_hook_log_transaction
最後,Apache預設處理請求的程式是掛在ap_hook_handler之中,其函數原形為static int default_handler(request_rec *r),位於server\core.c檔案當中。
沒有留言:
張貼留言