http協議、cookie及session


1. HTTP協議是無連接的

  • 網頁操作--瀏覽器--Http協議--web服務器(appache/IIS)
  • 無連接的
1. 每次連接只處理一個請求,服務器處理完並收到客戶端應答,即斷開連接
2. 目的:節省傳輸時間
  • 無狀態的

對於事務處理不具備記憶功能

2. HTTP消息結構

  • 客戶端(瀏覽器)發送請求
請求行(請求方法、url、協議版本)、請求頭、請求體
  • 服務器(appache/IIS)響應請求
狀態行(協議版本、狀態碼)、響應頭、響應正文

3. 狀態碼

  • 常用
200 OK; 301 url已轉移;
404 不存在;500 服務器錯誤
  • 分類
1* 服務器要求繼續操作
2* 成功
3* 重定向
4* 客戶端錯誤(url不存在、語法錯誤等)
5* 服務器錯誤

4. cookie原理

  • 客戶端發起請求時如果沒有通行證,服務器就會在響應內容里給客戶端頒發通行證;
  • 之后,客戶端所有請求都附帶通行證,這樣服務器就知道當前請求是誰發出的
  • cookie與域名綁定,瀏覽器會識別域名,防止cookie被其他域名綁定
  • 每次請求都要攜帶cookie,因此cookie不能太過龐大
  • cookie通過鍵值對保存數據
1. String name:cookie的名稱,一旦創建不會變化
2. Object value:cookie的值
3. int maxAge:失效時間(單位秒,負數代表臨時cookie,關閉瀏覽器即失效,為0表示將刪除,默認-1)
4. boolean secure:僅安全協議傳輸(默認false)
5. String path:指定該域名下哪些路徑可以使用該cookie(以/結尾)
6. String domain:域名(以.開頭)
7. String comment:說明
8. int version:cookie遵循的版本號(0或者1)
  • cookie保存用戶名密碼的三種方法
1. 賬號密碼直接存在cookie,訪問時直接與服務器數據庫比較(方便,不安全)
2. 密碼加密保存在cookie,訪問時解密與服務器數據庫比較(也可以不保存密碼,而是保存時間戳驗證)
3. 賬號密碼按照加密規則加密后一起保存在cookie,訪問時驗證加密規則是否匹配即可(無需查詢數據庫)

5. session原理

  • 服務器有個記錄表,接收到客戶端請求后,會在表中查找該客戶,找不到就會記錄一份客戶信息內容,找得到就直接讀取客戶上次的狀態。
  • 大量用戶訪問時,可能導致session過多而內存溢出,因此session內容也要盡量精簡
  • 只有訪問動態資源才會觸發session,訪問時無論是否讀寫session,session都會更新狀態(時間)
  • session需要cokkie作為識別標志(不然還是不知道是哪個客戶啊),使用session時,默認生成的cookie的maxAge值為-1(只在當前窗口有效)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM