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(只在當前窗口有效)