SSO技術中ticket和cookie有什么區別?
其實無論是ticket還是cookie,都是驗證信息的一種具體表現。
cookie是具體指在網頁上緩存的已經驗證的信息,而ticket則可以以任何形式存在,包括cookie。
sso技術中ticket和cookie的區別
1、dua ticket to +地點 (例:zhithe ticket to a ball game .
2、 I want a ticket to Hangzhou.)
a ticket for +具體事情/為了什dao么的票/給誰的(例:the ticket for the film. I want a ticket for the trip./I want a ticket for my grandmother.)
3、無論ticket還是cookie,都是驗證信息的一種具體表現。
4、cookie是具體指在網頁上緩存的已經驗證的信息,而ticket則可以以任何形式存在,包括cookie。
token是什么意思?
在計算機身份認證中是令牌(臨時)的意思,在詞法分析中是標記的意思。一般作為邀請、登錄系統使用
token是計算機術語:令牌,令牌是一種能夠控制站點占有媒體的特殊幀,以區別數據幀及其他控制幀。token其實說的更通俗點可以叫暗號,在一些數據傳輸之前,要先進行暗號的核對,不同的暗號被授權不同的數據操作。基於 Token 的身份驗證方法
使用基於 Token 的身份驗證方法,在服務端不需要存儲用戶的登錄記錄。大概的流程是這樣的:
1.客戶端使用用戶名跟密碼請求登錄
2.服務端收到請求,去驗證用戶名與密碼
3.驗證成功后,服務端會簽發一個 Token,再把這個 Token 發送給客戶端
4.客戶端收到 Token 以后可以把它存儲起來,比如放在 Cookie 里或者 Local Storage 里
5.客戶端每次向服務端請求資源的時候需要帶着服務端簽發的 Token
6.服務端收到請求,然后去驗證客戶端請求里面帶着的 Token,如果驗證成功,就向客戶端返回請求的數據
什么是http接口?
其實這個接口的意思就是一個傳遞數據的通道,你只要將數據送入通道並可以被請求者獲得就可以了。正常情況下你在做一個web項目嗎是在springmvc里被請求的controller不是一個接口,因為你沒有和請求方達成數據請求的方式。舉個例子來說吧
比如你有個UserController,里面有個userList這個方法,查詢所有的用戶,你頁面發送請求到這個方法中,你可以使用model.addAttribute或者request.setAttribute("userList",userList),然后頁面端用${userList}就可以獲取到數據,只是由於這個jsp是和你的controller屬於同一個webContext,但是當部署在其他服務器上的程序想要獲取這個數據時,這樣的方式是達不到效果的,這個時候你需要將這個方法的返回結果進行改造,就是如果放回的數據是以json、xml或者txt的方式返回的話(具體格式雙方約定好),這樣的話你的這個userList就可以作為一個接口了!
API 是什么
應用程序接口(API),又稱為應用編程接口,是軟件系統不同組成部分銜接的約定。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的可維護性和可擴展性。
應用程序接口(API),又稱為應用編程接口,是軟件系統不同組成部分銜接的約定。由於近年來軟件的規模日益龐大,常常需要把復雜的系統划分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使軟件系統的職責得到合理划分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的可維護性和可擴展性。
API 又分為(Windows、Linux、Unix 等系統的)系統級 API,及非操作系統級的自定義 API。作為一種有效的代碼封裝模式,微軟 Windows 的 API 開發模式已經為許多商業應用開發的公司所借鑒,並開發出某些商業應用系統的 API 函數予以發布,方便第三方進行功能擴展。如 Google、蘋果計算機公司,以及諾基亞等手機開發的 API 等等。
API 同時也是一種中間件,為各種不同平台提供數據共享。根據單個或分布式平台上不同軟件應用程序間的數據共享性能,可以將 API 分為四種類型:
1、遠程過程調用(RPC):通過作用在共享數據緩存器上的過程(或任務)實現程序間的通信。
2、標准查詢語言(SQL):是標准的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據共享。
3、文件傳輸:文件傳輸通過發送格式化文件實現應用程序間數據共享。
4、信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現數據共享。
當前應用於 API 的標准包括 ANSI 標准 SQL API。另外還有一些應用於其它類型的標准尚在制定之中。API 可以應用於所有計算機平台和操作系統。這些 API 以不同的格式連接數據(如共享數據緩存器、數據庫結構、文件框架)。每種數據格式要求以不同的數據命令和參數實現正確的數據通信,但同時也會產生不同類型的錯誤。因此,除了具備執行數據共享任務所需的知識以外,這些類型的 API 還必須解決很多網絡參數問題和可能的差錯條件,即每個應用程序都必須清楚自身是否有強大的性能支持程序間通信。
相反由於這種 API 只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網絡參數以及差錯條件子集。正因為如此,交付 API 方式大大降低了系統復雜性,所以當應用程序需要通過多個平台實現數據共享時,采用信息交付 API 類型是比較理想的選擇。
ticket機制
某日你逛商場,理發,洗浴,住宿,店主或老板在你消費之后會給你一張所謂的“會員卡”,等你再次來消費的時候,只需出示此卡,商家就會視你為其顧客,使你享受該有之優惠並采取積分措施並計入磁卡,此事之辦成,全憑一張卡,此卡商家並不保留,而全由顧客持有,為防止會員卡偽造而騙取優惠,可能會員卡上會有一條磁條,該磁條作防偽只用,商家只需將卡在其特定機器上只一刷便可知卡之真偽。對比這個辦法,如果會員信息全部保留在商家處而非顧客持有的磁卡,而顧客只需保留自己的姓名等認證信息,那么隨着顧客的增加,商家保留的信息將膨脹,最終將商家阻滯在將要成功處。會員卡的方略旨在將信息保存在顧客處而不是商家,這樣可以減輕商家的信息記錄負擔。
計算機信息科學和網絡永遠都是落后於時代的,會員卡早有人使用,可是在網絡上提出類似的機制卻只是最近才提出來,在c/s模式的應用或者協議中,服務器最好也由客戶端來保持session信息以便恢復一次會話,而不是讓客戶端來保持各個客戶端的session狀態,這個辦法我可以將之視為ticket機制,也就是服務器會發給客戶端一張ticket,要求服務器做某事時,客戶端只需要出示一下ticket即可,類似顧客的會員卡。在實際應用中tcp協議的syn cookie機制就是這么做的,這樣可以防止tcp半連接攻擊,另外tls協議的TicketSession機制也是如此,以往ssl客戶端的session信息都是保留在服務器端的,而ticketsession機制可以將信息作為一張ticket保留在客戶端,這張ticket是一段加密的信息,所有的ssl客戶端的ticket都由服務器端的同一個密鑰加密,內中包括該客戶端的master secret,它被服務器傳給客戶端之后,和客戶端的master secret保留在一起,待客戶端需要恢復一個session時,只需將此加密的ticket傳給服務器,服務器用同一個密鑰解密之,然后取出對應的客戶端信息和master secret,恢復session后繼續通信,這樣可以保證不在服務器端保留任何客戶端的session信息。tcp的syn cookie也一樣,tcp服務器將對客戶端的syn-ack的seq設置成一個用同一個密鑰加密后的數據,然后在客戶端最后握手階段的ack中取出ack號,然后解密之,驗證之...
如果理解了會員卡機制,這種計算機網絡中的“票據”機制就很好理解了。
rpc是什么
RPC是遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。
RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。
RPC采用客戶機/服務機器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。
TCP和HTTP的關系
TCP是傳輸層協議,定義數據傳輸和連接方式的規范。握手過程中傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。
HTTP 超文本傳送協議(Hypertext Transfer Protocol )是應用層協議,定義的是傳輸數據的內容的規范。
HTTP協議中的數據是利用TCP協議傳輸的,特點是客戶端發送的每次請求都需要服務器回送響應,它是TCP協議族中的一種,默認使用 TCP 80端口。
好比網絡是路,TCP是跑在路上的車,HTTP是車上的人。每個網站內容不一樣,就像車上的每個人有不同的故事一樣。