定義:
http協議(hypertexttransferprotoco):超文字傳輸協議(無狀態協議),http協議是乙個基於瀏覽器和伺服器(b/s)請求和應答的應用層協議,http構建在tcp之上。
http的無狀態是指伺服器在處理完事務之後不會記錄之前的記錄,每一次的請求都需要建立一次連線。解決這種辦法可以使用cookie或session記錄資訊。伺服器預設的埠是80埠
基本http協議的流程:(一次http操作稱為乙個事務)
1、客戶機與伺服器建立連線(每個請求都要建立乙個連線)
點選某個http超連結
2、傳送請求資訊
請求報文包括三部分:
1)請求行(request-line):
如:get/ http/1.1
2)請求頭部(headers 由鍵值對組成):
3)請求資料(request-body):header和body之間有空格
3、傳送響應資訊
響應報文包括三部分:
1)狀態行(status-line):
狀態碼含義(英文表示)
如:http/1.1 200 ok
2)響應頭部(headers):
響應的頭部如:
3)響應資料(response-body):
返回響應後的資料,與header中間有一行空格
4、關閉連線
客戶端接收伺服器返回的資訊,通過瀏覽器顯示在螢幕上(如果整個傳輸的過程中某個步驟出現了錯誤,產生的錯誤會自動傳送到客戶端),關閉連線
http和https的區別
請求方法:get和post的不同
在客戶端和伺服器之間進行請求響應時,最常用到的就是post和get。
「增刪改查」----put、delete、post、get
post:向指定資源提交要申請的資料
get:從指定的資源請求資料
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 的區別:
1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙
考慮到安全應當使用session。
3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能
考慮到減輕伺服器效能方面,應當使用cookie。
4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。
5、所以個人建議:
將登陸資訊等重要資訊存放為session
其他資訊如果需要保留,可以放在cookie中
關於HTTP協議
http協議 超文字傳輸協議 http是乙個應用層的物件導向的協議,主要特點如下 1 支援伺服器 客戶端模式 2 簡單快捷,客戶請求伺服器,通常只需傳送請求方法和路徑,請求方法包括get,post,put,delete等 3 http協議允許傳送任何型別的資料,json,xml,陣列等 4 http...
關於Http協議
示例 其中 http 為協議型別 github.com為伺服器位址 user?gender male為路徑path 真正傳送的格式為 第一行為request 第二行為header 包括host,content type等 第三行之後為body 請求的內容 響應的格式為 狀態行 http 1.1 20...
關於HTTP協議
1.http協議的報文解析 http的報文解析 2.http協議的實現及原理 實現原理 案例 裝置通過http post方法將訊息傳送給http serverdomain p 初始化 建立乙個簡單的控制代碼 pcurlhandle curl easy init 設定簡易控制代碼的選項 詳解 curl...