IIS如何確定請求的處理程式

2022-02-10 11:44:09 字數 708 閱讀 2773

1. 給定乙個url請求,iis需要確定它的檔名,副檔名,以及最相似的與本請求資源合適的"scriptmaps"metadata (快取的isapi擴充套件 -應用程式副檔名對映列表);

2. iis檢查是否有設定了的應用程式萬用字元,若有則匹配第一條應用程式副檔名對映

如果這個擴充套件對映返回「我不處理這類請求」,iis將繼續查詢下乙個,直到找到匹配的;

3. 如果沒有萬用字元處理這個請求,然後iis開始根據請求的副檔名,來依次匹配每個scriptmaps,來確定合適的應用程式來處理。如果找到合適的應用程式擴充套件,iis就會呼叫相應的程式來處理這個請求;

4. 如果沒有應用程式擴充套件處理此請求,並且副檔名是危險的包含exe/dll型別,iis會呼叫cgi/isapi 來處理請求;

5. 如果任然沒有程式可以處理這個請求,iis內嵌的靜態檔案處理器將接管,並做如下處理:

a、確定檔案有效性:是否需要轉向302請求,如果轉向成功則ok;

b、如果請求是乙個檔案形式,則傳送該檔案給客戶端;

c、如果設定了預設頁面,然後就會檢視預設頁面列表,找到乙個實際存在的可用的預設頁面。如果定為到某個頁面,然後就會做乙個內部的url請求,來請求這個頁面。

d、如果目錄瀏覽許可權是允許的,就會列出目錄列表;

e、如果請求依然未被處理,就會產生 403.14 (拒絕訪問)錯誤;

IIS 處理請求 原理

有時候我們會發現當我們訪問乙個iis 時,使用 可以正常訪問,但是使用ip卻不行,這是什麼原因呢?原來iis可以使用乙個ip位址和埠繫結多個 這些 的ip位址與埠都一樣,因此在客戶端或瀏覽器中使用ip訪問iis會失敗,因為單單根據ip位址iis無法確定你要訪問的具體是哪乙個 此時必須使用主機名也就是...

iis處理請求隨記回顧

http是無狀態的,每次http請求戶不影響,都是獨立的 不會記的上次請求 httpcontext 兩個物件 httprequest 封裝http請求 和httpresponse 封裝相應響應 請求的報文 httprequest解析請求報文,分割請求體的各個部分 請求原理總結 並將請求報文資訊封裝到...

如何處理重複請求 併發請求的

你可能會想到的是,只要請求有唯一的請求編號,那麼就能借用redis做這個去重 只要這個唯一請求編號在redis存在,證明處理過,那麼就認為是重複的 string key req12343456788 請求唯一編號 long expiretime 1000 1000毫秒過期,1000ms內的重複請求會...