我知道過濾器來處理請求,並可以做HTTP頭和httpmethods的事情,但我有Clientrequestfilter VS Containerrequestfilter
是什麼clientrequestfilter和containerrequestfilter之間的區別感到困惑? 在這種情況下,我們必須使用clientrequestfilter和containerrequestfilter?
我試着用this website但不是關於這個的任何細節。
請幫我理解這一點。
我知道過濾器來處理請求,並可以做HTTP頭和httpmethods的事情,但我有Clientrequestfilter VS Containerrequestfilter
是什麼clientrequestfilter和containerrequestfilter之間的區別感到困惑? 在這種情況下,我們必須使用clientrequestfilter和containerrequestfilter?
我試着用this website但不是關於這個的任何細節。
請幫我理解這一點。
REST交互有兩個方面:客戶端和服務器。 Jersey/JAX-RS-2具有客戶端API和「主」服務器端API。在使用客戶端API時,我們可以使用ClientRequestFilter
,並且在使用服務器端API時,我們將使用ContainerRequestFilter
。沒有可能混合和匹配這些內容,它們應該嚴格用於交互的適當方面。
甲ContainerRequestFilter
(服務器端)的例子是做一些授權/驗證,一個很常見的使用情況服務器側濾波器。該過濾器會達成任何你的資源
Client ---> Internet ---> Server ---> Filter ---> Resource
一個ClientRequestFilter
(客戶端)例如將是實現一些客戶端緩存(有點嘲諷的瀏覽器緩存)之前被調用。或者一個案例(已經實施)是一個過濾器,用於編碼BASIC認證的用戶名和密碼。在請求實際發送到服務器之前,客戶端過濾器將被調用。
Client ---> Filter ---> Internet ---> Server ---> Resource
也有XxxResponseFilters
遵循以下流程
Resource ---> ContainerResponseFilter ---> Server ---> Internet ---> Client
Server ---> Internet ---> ClientResponseFilter ---> Client
由於這是真的很有幫助。 – sunleo