天天看點

通信協定&&cookie

通信協定

通信協定&&cookie

通信協定是指雙方實體完成通信或服務所必須遵循的規則和約定。

在計算機通信中,通信協定用于實作計算機與網絡連接配接之間的标準,網絡如果沒有統一的通信 協定,電腦之間的資訊傳遞就無法識别。 通信協定是指通信各方事前約定的通信規則,可以簡 單地了解為各計算機之間進行互相會話所使用的共同語言。兩台計算機在進行通信時,必須使 用的通信協定。

通信協定&&cookie

 TCP/IP

Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協定/網際網路互 聯協定,又名網絡通訊協定,是Internet最基本的協定、Internet國際網際網路絡的基礎,由網 絡層的IP協定和傳輸層的TCP協定組成。TCP/IP 定義了電子裝置如何連入網際網路,以及資料 如何在它們之間傳輸的标準。

通信協定&&cookie

 HTTP

超文本傳輸協定(HTTP,HyperText Transfer Protocol)是網際網路上應用最為廣泛的一種網絡 協定。所有的WWW檔案都必須遵守這個标準。設計HTTP最初的目的是為了提供一種釋出和 接收HTML頁面的方法。

HTTP是一個用戶端和伺服器端請求和應答的标準(TCP)。用戶端是終端使用者,伺服器端是網 站。通過使用Web浏覽器、網絡爬蟲或者其它的工具,用戶端發起一個到伺服器上指定端口(默 認端口為80)的HTTP請求。

通信協定&&cookie

 cookie的概念

Cookie 是在 HTTP 協定下,伺服器或腳本可以維護客戶工作站上資訊的一種方式。Cookie 是由Web伺服器儲存在使用者浏覽器(用戶端)上的小文本檔案,它可以包含有關使用者的資訊。無論何時使用者連結到伺服器,Web 站點都可以通路 Cookie資訊 。--百度百科

cookie儲存在使用者本地終端上的資料,指某些網站為了辨識使用者身份、進行session 跟蹤而儲存在使用者本地終端上的資料。可以叫做浏覽器緩存.

比如:自動登入、記住使用者名等

Cookie是由伺服器端生成,發送給User-Agent(一般是浏覽器),浏覽器會将Cookie 的key=value儲存到某個目錄下的文本檔案内,下次請求同一網站時就發送該Cookie 給伺服器(前提是浏覽器設定為啟用cookie)。Cookie名稱和值可以由伺服器端開發 自己定義。

通信協定&&cookie

 cookie的特點及其使用場景

n 特點

1、儲存在使用者本地終端上的資料

2、禁用Cookie後,幾乎所有需要使用者登陸帳号的網站都因為Cookie的禁用而導緻無法 正常登陸。

3、cookie是與浏覽器相關的。這意味着即使通路的是同一個頁面,不同浏覽器之間所儲存的cookie也是不能互相通路的;

4、cookie可能被删除。因為每個cookie都是硬碟上的一個檔案,是以很有可能被使用者删除;

5、cookie安全性不夠高。所有的cookie都是以純文字的形式記錄于檔案中,是以如果要儲存使用者名密碼等資訊時,最好事先經過加密處理。

n 使用場景

1、儲存使用者登入狀态。例如将使用者id存儲于一個cookie内,這樣當使用者下次通路該頁面時就不需要重新登入了,現在很多論壇和社群都提供這樣的功能。 cookie還可以設定過期時間,當超過時間期限後,cookie就會自動消失。

2、跟蹤使用者行為。例如一個天氣預報網站,能夠根據使用者選擇的地區顯示當地的天氣情況。如果每次都需要選擇所在地是煩瑣的,當利用了 cookie後就會顯得很人性化了,系統能夠記住上一次通路的地區,當下次再打開該頁面時,它就會自動顯示上次使用者所在地區的天氣情況。因為一切都是在背景完成,是以這樣的頁面就像為某個使用者所定制的一樣,使用起來非常友善。

3、定制頁面。如果網站提供了換膚或更換布局的功能,那麼可以使用cookie來記錄使用者的選項,例如:背景色、分辨率等。當使用者下次通路時,仍然可以儲存上一次通路的界面風格。

4、建立購物車。使用cookie來記錄使用者需要購買的商品,在結賬的時候可以統一送出。例如淘寶網就使用cookie記錄了使用者曾經浏覽過的商品,友善随時進行比較。

當然,上述應用僅僅是cookie能完成的部分應用。

通信協定&&cookie

 cookie的使用

n 添加cookie

document.cookie='username='+encodeURI('張三')+';expires='+date;

n 擷取cookie

decodeURI(document.cookie)

n 删除cookie

function addCookie(key,value,day){

var date=new Date();//建立日期對象

date.setDate(date.getDate()+day);//過期時間:擷取目前的日期+天數,設定給date

document.cookie=key+'='+encodeURI(value)+';expires='+date;//添加cookie,設定過期時間

n   }

function getCookie(key){

var str=decodeURI(document.cookie);

var arr=str.split('; ');//["name=尼古拉斯趙四", "work=亞洲舞王", "age=18"]

for(var i=0;i<arr.length;i++){

var arr1=arr[i].split('=');//1.[name,尼古拉斯趙四]  2.[work,亞洲舞王]  3.[age,18]

     if(arr1[0]==key){//比較傳入的key是否和arr1[0]相等

return arr1[1];//arr1[1]剛好是value

}

function delCookie(key,value){

addCookie(key,value,-1);//添加的函數,将時間設定為過去時間