單點登入與許可權管理本質 HTTP重定向

2021-08-15 22:26:48 字數 2429 閱讀 1890

繼續介紹「單點登入與許可權管理」系列的第一部分:單點登入與許可權管理本質,本篇說說http重定向,它也是完成單點登入的基礎知識。

該系列的完整寫作計畫,可見文章:系列概述

單點登入需要在多個web專案之間相互跳轉,使用重定向技術,自動完成登入操作。另外,當實際資源被遷移到其他url時,可使用重定向技術,將訪問原有url的請求,自動跳轉到新url,保持原有url有效。

本篇主要從以下幾個方面介紹:

基本概念

基本原理

在http協議中,伺服器通過傳送特定的響應實現重定向,瀏覽器在接收到響應後,可根據狀態碼判定重定向,並使用指定的新url重新請求。重定向的響應狀態碼為3xx,不同的狀態碼表示不同的重定向型別。

瀏覽器從響應頭中的location獲取新的url,重新傳送請求。

重定向型別

重定向型別包括永久重定向、臨時重定向、特殊重定向,不同的重定向型別,一方面會影響瀏覽器的操作,一方面會影響搜尋引擎的收錄。

永久重定向,是指原url不再被使用,應優先選擇新的url,搜尋引擎機械人會在遇到該狀態碼時,觸發更新操作,使用新的url。常見的狀態碼有301,moved permanently。

臨時重定向,如果請求的資源臨時不可用,但可從其他地方訪問。搜尋引擎不會記錄該臨時的鏈結。常見的狀態碼有302 found,307 temporary redirect。

特殊重定向,304 not modified 資源未被修改,會從本地快取中獲取網頁;300 multiple choice,是一種手工重定向,使用者可選擇重定向的頁面。

設定重定向方法

除了上面介紹的重定向方法,還可以通過html的metay元素,或者js實現重定向,但還是建議優先選擇上面介紹方法。

content屬性值,第乙個數字表示等待多少秒後進行跳轉。

window.location = "";
nginx重定向

rewrite

nginx的rewrite主要功能就是實現url的重定向,其語法規則如下:

rewrite

[flag]

regex 正則匹配需要重定向的url

replacement 替換內容,將正則匹配的內容替換成replacement

flag 標記,具體如下:

rewirte引數的標籤段位置:server,location,if

rewrite示例

將 mi.com 重定向 www.mi.com

server
return

可通過return直接重定向,如下:

server
servlet重定向

首先要區分開**和重定向的概念,**是在服務端完成的,瀏覽器位址列中的位址不會改變,是一次請求;重定向是在瀏覽器端完成的,瀏覽器位址列會變化,是二次請求。

無論是**還是重定向,在執行方法前,不要向客戶端輸出內容.

重定向

public

spring使用重定向

不帶引數

return

new modelandview("redirect:/tolist");

return

"redirect:/tolist";

帶引數
public string test(redirectattributes attributes) 

這樣會在重定向後的url中自動追加引數。

spring mvc 3.1 版本新增了乙個新特性,flash屬性,可以實現傳遞引數,並且可以解決重複提交的問題。

乙個正常的controller處理時,處理完成之後,會被forward到乙個操作成功的頁面,如果使用者按f5,就會再次提交一遍,如果使用redirect,就可以避免這個問題。

public string test(redirectattributes attributes)

單點登入與許可權管理本質 單點登入介紹

繼續介紹 單點登入與許可權管理 系列的第一部分 單點登入與許可權管理本質,前兩篇介紹了session與cookie 和 http重定向 有了他們,瀏覽器就可以在多個系統間自動互動,實現自動登入。該系列的完整寫作計畫,可見 系列概述 本篇介紹下單點登入,所謂單點登入,就是說使用者只需在乙個地方登入,訪...

單點登入與許可權管理本質 單點登入介紹

繼續介紹 單點登入與許可權管理 系列的第一部分 單點登入與許可權管理本質,前兩篇介紹了session與cookie 和 http重定向 有了他們,瀏覽器就可以在多個系統間自動互動,實現自動登入。該系列的完整寫作計畫,可見 系列概述 本篇介紹下單點登入,所謂單點登入,就是說使用者只需在乙個地方登入,訪...

許可權認證 SSO單點登入

sso single sign on 是處理乙個公司內的不同應用系統之間的登入問題,比如阿里巴巴旗下有很多應用系統,我們只需要登入乙個系統就可以實現不同系統之間的跳轉。為了完成乙個簡單的sso功能,需要兩個部分的合作 1 所有的認證登入都在 sso 認證中心進行 2 sso 認證中心通過一些方法來告...