定義:html
Http協議(HyperTextTransferProtoco):超文本傳輸協議(無狀態協議),http協議是一個基於瀏覽器和服務器(B/S)請求和應答的應用層協議,http構建在TCP之上。web
http的無狀態是指服務器在處理完事務以後不會記錄以前的記錄,每一次的請求都須要創建一次鏈接。解決這種辦法可使用cookie或session記錄信息。服務器默認的端口是80端口json
基本http協議的流程:(一次http操做稱爲一個事務)跨域
一、客戶機與服務器創建鏈接(每一個請求都要創建一個鏈接)瀏覽器
點擊某個http超連接緩存
二、發送請求信息安全
請求報文包括三部分:服務器
1)請求行(request-line):cookie
如:get/http://www.baidu.com/s?username=a&pwd=b HTTP/1.1session
2)請求頭部(headers 由鍵值對組成):
3)請求數據(request-body):header和body之間有空格
三、發送響應信息
響應報文包括三部分:
1)狀態行(status-line):
如:http/1.1 200 OK
2)響應頭部(headers):
響應的頭部如:
3)響應數據(response-body):
返回響應後的數據,與header中間有一行空格
四、關閉鏈接
客戶端接收服務器返回的信息,經過瀏覽器顯示在屏幕上(若是整個傳輸的過程當中某個步驟出現了錯誤,產生的錯誤會自動發送到客戶端),關閉鏈接
http和https的區別
請求方法:get和POST的不一樣
在客戶端和服務器之間進行請求響應時,最經常使用到的就是POST和get。
「增刪改查」----put、delete、post、get
POST:向指定資源提交要申請的數據
get:從指定的資源請求數據
通常在瀏覽器中輸入一個網址訪問網站用的是get請求,而使用表單提交的時候能夠設置method方法爲get或POST,默認使用get,推薦使用post。
get不會修改信息,不會再服務器上產生任何結果。而POST可能會修改服務器上的信息。
形式上,get請求:請求的數據會附在URL的後面,用「?」來分隔URL和數據,用「&」鏈接數據中間不能有空格。POST請求:請求的數據放在body中,也是用「&」鏈接
傳輸數據的大小,在實際的http規範中,沒有對URL作限定,可是有的瀏覽器會對URL作限定,因此使用get請求時,請求的數據會受到URL的影響。而POST不會受到影響。
安全性,POST的安全性比get高,get請求的數據在URL中,因此能夠看到不安全,POST看不見請求的數據
編碼類型,get只支持ASCII字符,POST均可以
session和cookie
會話(session)是跟蹤web程序經常使用的技術,用來跟蹤用戶的整個會話過程。經常使用的會話跟蹤技術是cookie和session。cookie是在客戶端肯定用戶身份(保存在客戶端瀏覽器中),而session是在服務器端肯定用戶身份(保存在服務器中)。
cookie:
cookie是用來解決http協議無狀態(每一次請求都要從新創建一次鏈接)的不足,原理就是客戶端向服務器發出了請求,這時服務器想要記錄用戶狀態信息,就會在response設置cookie,,當瀏覽器下次發出請求的時候,在request時就會帶上cookie。服務器經過檢查從cookie就能夠確認用戶狀態了。
cookie須要瀏覽器的支持,若是瀏覽器不支持或者用戶在瀏覽器中設置了禁用cookie,就不能使用cookie了
cookie具備不可跨域名性,也不能夠跨子域名
cookie不支持修改和刪除操做,若想要修改cookie只須要從新設置cookie來覆蓋原來的信息便可。cookie有有效期,在有效期事後就會自動刪除
由於http協議是不安全的,因此在使用cookie的時候可使用secure設置爲true,意味着只有當瀏覽器是HTTPS的時候纔可使用cookie
session:
session保存在服務器的內存中,這樣能夠獲取高效的存取速度,session保存用戶第一次登錄時的記錄,隨後在用戶每一次的訪問中更新最後訪問的信息,這樣爲防止內存溢出,就將長時間沒有活躍的cookie刪除掉。
session須要使用cookie做爲標誌,也能夠將session的id寫入URL中
cookie 和session 的區別:
一、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
二、cookie不是很安全,別人能夠分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
三、session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能
考慮到減輕服務器性能方面,應當使用COOKIE。
四、單個cookie保存的數據不能超過4K,不少瀏覽器都限制一個站點最多保存20個cookie。
五、因此我的建議: 將登錄信息等重要信息存放爲SESSION 其餘信息若是須要保留,能夠放在COOKIE中