http协议、cookie及session
生活随笔
收集整理的這篇文章主要介紹了
http协议、cookie及session
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. HTTP協議是無連接的
- 網頁操作--瀏覽器--Http協議--web服務器(appache/IIS)
無連接的
- 每次連接只處理一個請求,服務器處理完并收到客戶端應答,即斷開連接
- 目的:節省傳輸時間
無狀態的
對于事務處理不具備記憶功能
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通過鍵值對保存數據
- String name:cookie的名稱,一旦創建不會變化
- Object value:cookie的值
- int maxAge:失效時間(單位秒,負數代表臨時cookie,關閉瀏覽器即失效,為0表示將刪除,默認-1)
- boolean secure:僅安全協議傳輸(默認false)
- String path:指定該域名下哪些路徑可以使用該cookie(以/結尾)
- String domain:域名(以.開頭)
- String comment:說明
- int version:cookie遵循的版本號(0或者1)
cookie保存用戶名密碼的三種方法
- 賬號密碼直接存在cookie,訪問時直接與服務器數據庫比較(方便,不安全)
- 密碼加密保存在cookie,訪問時解密與服務器數據庫比較(也可以不保存密碼,而是保存時間戳驗證)
- 賬號密碼按照加密規則加密后一起保存在cookie,訪問時驗證加密規則是否匹配即可(無需查詢數據庫)
5. session原理
- 服務器有個記錄表,接收到客戶端請求后,會在表中查找該客戶,找不到就會記錄一份客戶信息內容,找得到就直接讀取客戶上次的狀態。
- 大量用戶訪問時,可能導致session過多而內存溢出,因此session內容也要盡量精簡
- 只有訪問動態資源才會觸發session,訪問時無論是否讀寫session,session都會更新狀態(時間)
- session需要cokkie作為識別標志(不然還是不知道是哪個客戶啊),使用session時,默認生成的cookie的maxAge值為-1(只在當前窗口有效)
轉載于:https://www.cnblogs.com/jiukun/p/9325491.html
總結
以上是生活随笔為你收集整理的http协议、cookie及session的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git提交代码之git-GUI-Here
- 下一篇: XJOI 3629 非严格次小生成树(p