日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GoAhead2.5源代码分析之6-访问验证(security.c)

發布時間:2025/5/22 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GoAhead2.5源代码分析之6-访问验证(security.c) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

security.c

主要功能是:驗證登陸用戶的信息,會在頁面上顯示對應的信息,不成功,顯示錯誤頁面,成功時,會驗證用戶名和密碼。

-----------------------------------------------------------------------------------------------------------------

?

int websSecurityHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,

????????????????????????????????????????? char_t *url, char_t *path, char_t *query)

功能:驗證用戶的登陸信息,顯示對應的頁面

說明:

首先判斷是否支持ssl,如果支持,先獲取該路徑是否是加密處理的,如果所獲得值與flag的不一致,會向瀏覽器報告狀態碼405(禁用請求中所指定的方法)

然后獲得訪問方法;

如果是調試,且flagWEBS_LOCAL_REQUEST,可以順利訪問;

如果訪問方法是AM_NONE,會輸出狀態碼404Page Not Found(服務器找不到請求的網頁)

如果不存在這樣的用戶,輸出401(要求進行身份驗證)

判斷該用戶是否能訪問該路徑,不能則輸出403(服務器拒絕請求)

獲取用戶密碼,如果不匹配,輸出401(要求進行身份驗證)

獲取摘要認證字符串,如果不匹配,輸出401(要求進行身份驗證)

如果認證方法不為AM_FULL,輸出401(要求進行身份驗證)

401就是在瀏覽器上彈出窗口,要求輸入用戶名、密碼

-----------------------------------------------------------------------------------------------------------------

?

備注:經常使用的http狀態碼

HTTP 狀態代碼

以下提供了 HTTP 狀態代碼的完整列表。

1xx(臨時響應)
用于表示臨時響應并需要請求者執行操作才能繼續的狀態代碼。

代碼

說明

100(繼續)

請求者應當繼續提出請求。服務器返回此代碼則意味著,服務器已收到了請求的第一部分,現正在等待接收其余部分。

101(切換協議)

請求者已要求服務器切換協議,服務器已確認并準備進行切換。

2xx(成功)

用于表示服務器已成功處理了請求的狀態代碼。

代碼

說明

200(成功)

服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。如果您的 robots.txt 文件顯示為此狀態,那么,這表示已成功檢索到該文件。

201(已創建)

請求成功且服務器已創建了新的資源。

202(已接受)

服務器已接受了請求,但尚未對其進行處理。

203(非授權信息)

服務器已成功處理了請求,但返回了可能來自另一來源的信息。

204(無內容)

服務器成功處理了請求,但未返回任何內容。

205(重置內容)

服務器成功處理了請求,但未返回任何內容。與 204 響應不同,此響應要求請求者重置文檔視圖(例如清除表單內容以輸入新內容)。

206(部分內容)

服務器成功處理了部分 GET 請求。

3xx(已重定向)
要完成請求,您需要進一步進行操作。通常,這些狀態代碼是永遠重定向的。Google 建議您在每次請求時使用的重定向要少于 5 個。您可以使用網站管理員工具來查看 Googlebot 在抓取您已重定向的網頁時是否會遇到問題。診斷下的抓取錯誤頁中列出了 Googlebot 由于重定向錯誤而無法抓取的網址。

代碼

說明

300(多種選擇)

服務器根據請求可執行多種操作。服務器可根據請求者 (User agent) 來選擇一項操作,或提供操作列表供請求者選擇。

301(永久移動)

請求的網頁已被永久移動到新位置。服務器返回此響應(作為對 GET HEAD 請求的響應)時,會自動將請求者轉到新位置。您應使用此代碼通知 Googlebot 某個網頁或網站已被永久移動到新位置。

302(臨時移動)

服務器目前正從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。此代碼與響應 GET HEAD 請求的 301 代碼類似,會自動將請求者轉到不同的位置。但由于 Googlebot 會繼續抓取原有位置并將其編入索引,因此您不應使用此代碼來通知 Googlebot 某個頁面或網站已被移動。

303(查看其他位置)

當請求者應對不同的位置進行單獨的 GET 請求以檢索響應時,服務器會返回此代碼。對于除 HEAD 請求之外的所有請求,服務器會自動轉到其他位置。

304(未修改)

自從上次請求后,請求的網頁未被修改過。服務器返回此響應時,不會返回網頁內容。

如果網頁自請求者上次請求后再也沒有更改過,您應當將服務器配置為返回此響應(稱為 If-Modified-Since HTTP 標頭)。由于服務器可以告訴 Googlebot 自從上次抓取后網頁沒有更改過,因此可節省帶寬和開銷

305(使用代理)

請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,那么,服務器還會指明請求者應當使用的代理。

307(臨時重定向)

服務器目前正從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。此代碼與響應 GET HEAD 請求的 301 代碼類似,會自動將請求者轉到不同的位置。但由于 Googlebot 會繼續抓取原有位置并將其編入索引,因此您不應使用此代碼來通知 Googlebot 某個頁面或網站已被移動。

4xx(請求錯誤)
這些狀態代碼表示,請求可能出錯,已妨礙了服務器對請求的處理。

代碼

說明

400(錯誤請求)

服務器不理解請求的語法。

401(未授權)

請求要求進行身份驗證。登錄后,服務器可能會返回對頁面的此響應。

403(已禁止)

服務器拒絕請求。如果在 Googlebot 嘗試抓取您網站上的有效網頁時顯示此狀態代碼(您可在 Google 網站管理員工具中診斷下的網絡抓取頁面上看到此狀態代碼),那么,這可能是您的服務器或主機拒絕 Googlebot 對其進行訪問。

404(未找到)

服務器找不到請求的網頁。例如,如果請求是針對服務器上不存在的網頁進行的,那么,服務器通常會返回此代碼。

如果您的網站上沒有 robots.txt 文件,而您在 Google 網站管理員工具"診斷"標簽的 robots.txt 上發現此狀態,那么,這是正確的狀態。然而,如果您有 robots.txt 文件而又發現了此狀態,那么,這說明您的 robots.txt 文件可能是命名錯誤或位于錯誤的位置。(該文件應當位于頂級域名上,且應當名為 robots.txt)。

如果您在 Googlebot 嘗試抓取的網址上發現此狀態(位于"診斷"標簽的 HTTP 錯誤頁上),那么,這表示 Googlebot 所追蹤的可能是另一網頁中的無效鏈接(舊鏈接或輸入有誤的鏈接)。

405(方法禁用)

禁用請求中所指定的方法。

406(不接受)

無法使用請求的內容特性來響應請求的網頁。

407(需要代理授權)

此狀態代碼與 401(未授權)類似,但卻指定了請求者應當使用代理進行授權。如果服務器返回此響應,那么,服務器還會指明請求者應當使用的代理。

408(請求超時)

服務器等候請求時超時。

409(沖突)

服務器在完成請求時發生沖突。服務器必須包含有關響應中所發生的沖突的信息。服務器在響應與前一個請求相沖突的 PUT 請求時可能會返回此代碼,同時會提供兩個請求的差異列表。

410(已刪除)

如果請求的資源已被永久刪除,那么,服務器會返回此響應。該代碼與 404(未找到)代碼類似,但在資源以前有但現在已經不復存在的情況下,有時會替代 404 代碼出現。如果資源已被永久刪除,那么,您應當使用 301 代碼指定該資源的新位置。

411(需要有效長度)

服務器不會接受包含無效內容長度標頭字段的請求。

412(未滿足前提條件)

服務器未滿足請求者在請求中設置的其中一個前提條件。

413(請求實體過大)

服務器無法處理請求,因為請求實體過大,已超出服務器的處理能力。

414(請求的 URI 過長)

請求的 URI(通常為網址)過長,服務器無法進行處理。

415(不支持的媒體類型)

請求的格式不受請求頁面的支持。

416(請求范圍不符合要求)

如果請求是針對網頁的無效范圍進行的,那么,服務器會返回此狀態代碼。

417(未滿足期望值)

服務器未滿足"期望"請求標頭字段的要求。

5xx(服務器錯誤)
這些狀態代碼表示,服務器在嘗試處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯。

代碼

說明

500(服務器內部錯誤)

服務器遇到錯誤,無法完成請求。

501(尚未實施)

服務器不具備完成請求的功能。例如,當服務器無法識別請求方法時,服務器可能會返回此代碼。

502(錯誤網關)

服務器作為網關或代理,從上游服務器收到了無效的響應。

503(服務不可用)

目前無法使用服務器(由于超載或進行停機維護)。通常,這只是一種暫時的狀態。

504(網關超時)

服務器作為網關或代理,未及時從上游服務器接收請求。

505HTTP 版本不受支持)

服務器不支持請求中所使用的 HTTP 協議版本。

?

轉載于:https://www.cnblogs.com/elect-fans/archive/2011/12/22/2408607.html

總結

以上是生活随笔為你收集整理的GoAhead2.5源代码分析之6-访问验证(security.c)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。