回覆列表
  • 1 # 猿小生

    多個客戶端同時訪問一個tomcat伺服器,資料為什麼不會受影響呢?

    首先了解一下session,首先tomcat本身有一塊空間存session,底層結構是ConcurrentHashMap,用來儲存每個會話連線的標誌。當多個客戶端訪問時,每個客戶端都有一個唯一的SessionID,當前後兩個SessionID一致時,則會認為是同一個回話!

    sessionID在客戶端第一次請求服務端響應的時 候,服務端就會在響應頭上新增一個sessionID,並且放到cookie裡,當客服端再次請求的時候,就會帶著這個id去訪問伺服器。

    而且服務程式也會對使用者進行業務資料隔離!所以說,每個多個使用者訪問一個程式時,資料並不會亂,如果出現越權訪問,那就是bug了!

  • 2 # 網際網路活化石

    首先問題就是錯誤的。

    多個使用者訪問tomcat,資料會不會受影響取決於你寫的程式碼。

    如果說程式碼本身就是read only的,讀取一段文字,那無論多少人讀到的都是同一個檔案。那是否存在多個使用者讀到了檔案的一部分,資料錯亂這種情況呢?也不是不可能,但一般伺服器預設的設定都是一次性全部讀取出來,所以每個人讀到的都是完整的,相同的資料。每個使用者一個request ,每個request對應一個獨立的執行緒。如果一個請求分多次傳送,客戶端必須和伺服器端配合,來鑑別請求,保證有序對應。

    如果程式碼有寫操作,能資料受不受影響,就得看你寫的程式碼是否是執行緒安全的了,如果有執行緒問題,那麼讀到和寫入的資料就可能出現串號等問題。

    你感覺不出資料受影響,是因為框架已經幫你封裝了一些操作,來保證執行緒安全。

  • 中秋節和大豐收的關聯?
  • 隨官屯高速路口到成武縣多遠?