Web通訊須要一種語言,就像中國人講中文,歐美說英文,Web使用的HTTP協議,也叫超文本協議。java
使用HTTP協議的人分爲兩類:客戶端和服務端。請求資源的角色是客戶端,提供資源的是服務端。redis
HTTP協議是一個很神奇的東西,他只負責說話,至於說了什麼他也不知道。因此HTTP是無狀態的協議。數據庫
HTTP是沒有狀態,可是人們是有記憶的,人們想讓HTTP記住某些東西,而後就提出幾種解決方案:編程
cookie是小段的文本信息(微型redis數據庫),大小爲4kb左右,放在瀏覽器的內存或者磁盤中,能夠設置存活時間,瀏覽器關閉就消失了。除非保存在磁盤。api
Cookie c = new Cookie("userID", "a1234"); c.setMaxAge(60*60*24*7); response.addCookie(c)
String cookieName = "userID"; Cookie[] cookies = request.getCookies(); if(cookies != null){ for(Cookie cookie : cookies){ if(cookieName.equals(cookie.getName())){ doSomethingWith(cookie.getValue()); } } }
存在服務器內存的文本信息(微型redis數據庫)瀏覽器
HttpSession session = request.getSession;
pubic Object getAttribute(String name); //根據name 獲取屬性的值 public void setAttriute(String name, Object value); //設置一個名稱和對應的值 public void logout() //將會話從客戶端註銷
cookie | session |
---|---|
存在瀏覽器 | 存在服務端 |
安全係數低 | 較安全 |
<< servlet與jsp核心編程 >>安全
<< servlet和jsp學習指南 >>服務器
<< 圖解HTTP >>cookie