只是讓我們在同一頁上,一個典型的POST請求看起來是這樣的:
POST /some/page HTTP/1.1 <-- request line
Host: www.example.com <-------------------\
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) <--| headers
Content-Length: 27 <-------------------/
... some other headers ...
<-- blank line
username=peter&password=123 <-- POST data, if any
開始HTTP_
環境變量是從何時CGI scripts是提供動態的主要途徑天宿醉內容,並且它們向您的服務器端代碼指示客戶端提供了一個特定的頭部作爲請求的一部分。從CGI spec:
元變量與名字開頭「HTTP_」包含從客戶端請求報頭字段讀取的值,如果所使用的協議是HTTP。 HTTP標題字段名稱將轉換爲大寫字母,將所有出現的「 - 」替換爲「」,並且前綴爲「HTTP」以提供元變量名稱。
Authorization:
header用於多種HTTP認證機制;通常的流程爲:
- 瀏覽器試圖請求一個頁面
- 服務器響應以「401未授權」和含有方案和(有時)一個挑戰
WWW-Authenticate:
頭
- 瀏覽器提示用戶憑據,然後重新發送帶有
Authorization:
標題的請求,其中包含對挑戰的響應
挑戰和響應的確切格式根據正在使用哪種認證方案而有所不同; RFC2617(gpcz鏈接到)涵蓋了「基本」(最常見的,發送base64編碼的「用戶名:密碼」)和「摘要」(包含加密哈希),NTLM是另一種在某些Windows環境中可見的。
感謝......幸運的是,它不是一個200頁的文件...以什麼方式是這樣的提供給用戶(在瀏覽器上)的用戶名和密碼請求? – 2011-02-24 21:21:11
我不是100%確定,但我的猜測是這是老派的方式。htaccess樣式的身份驗證已完成,其中會彈出一個對話框,其中包含用戶名/密碼提示。 – gpcz 2011-02-24 21:25:33
是的,就是那個。 – SimonJ 2011-02-24 21:49:38