面試必備:HTTP協議-cookie

轉自:http://www.sohu.com/a/126962490_587449

1.Cookie是什麼?★☆

cookie時當前識別用戶,實現持久化會話的最好方式。簡單點說就是服務器知道正在和哪個客戶端通信,以及保持與已識別出的客戶端通信。Cookie的基本思想就是讓瀏覽器積累一組服務器特有的信息,每次訪問服務器時都將這些信息提供給它。

2.Cookie能做什麼?★☆

對連接另一端的用戶有更多的瞭解,並且能在用戶瀏覽頁面時對其進行跟蹤。

3.Cookie是怎麼分類的?★☆

(1)會話cookie。臨時cookie,記錄了用戶訪問站點時的設置和偏好。用戶退出瀏覽器時,會話cookie就被刪除了。

(2)持久cookie。持久cookie的生存時間更長一些;它們存儲在硬盤上,瀏覽器退出,計算機重啓時它們仍然存在。通常會用持久cookie維護某個用戶會週期性訪問的站點的配置文件或登錄名。

唯一區別就是它們的過期時間。如果設置了Discard參數或沒有設置Expires或沒有設置Max-Age參數則說明這個cookie就是一個會話cookie。

4.Cookie的工作原理?★★★

(1)用戶首次訪問Web站點時,Web服務器對用戶一無所知。

(2)Web服務器通過Set-Cookie首部將cookie存放到瀏覽器中的cookie數據庫中。cookie中包含了N個鍵值對,例如Cookie: id=“1234”。cookie中可以包含任意信息,但它們通常都只包含一個服務器爲了進行跟蹤而產生的獨特的識別碼。

(3)將來用戶再次訪問同一站點時,瀏覽器會從cookie數據庫中挑中那個服務器設置的cookie,並在cookie請求首部中(Cookie: id=“1234”)將其傳回給服務器。

(4)服務器可以通過id=”1234”這個鍵值對來查找服務器爲其訪問積累的信息(購物歷史、地址信息等)。

注意:cookie並不僅限與ID號。很多Web服務器都會將信息直接保存在cooki中。比如Cookie: name=”Tom”; phone=”111-2222”

5.Cookie是怎麼存儲的?★☆

瀏覽器負責存儲cookie信息。不同的瀏覽器會以不同的方式來存儲cookie。有的瀏覽器用cookis.txt存儲。有的瀏覽器存儲在高速緩存目錄下獨立的文本文件中。

6.每次訪問網站時,是不是將所有的cookie都發送所有的站點?★

不是,瀏覽器通常只向每個站點發送2~3個cookie。原因如下:

(1)對所有這些cookie字節進行傳輸會嚴重降低性能。

(2)cookie中包含的時服務器特有的名值對,對大部分站點來說,大多數cookie都只是無法識別的無用數據。

(3)將所有的cookie發送給所有站點會引發潛在的隱私問題,那些你並不信任的站點也會獲得你只想發給其他站點的信息。

7.cookie與緩存怎麼取捨?★★

cookie是私有的,瀏覽器不希望得到的cookie和其他瀏覽器的cookie相同。一般緩存cookie圖片而不緩存文本。

8.cookie的缺點?★★

存在安全隱患。第三方Web站點使用持久cookie來跟蹤用戶就是對cookie一種最大的濫用。將這種做法與IP地址和Referer首部信息結合在一起,這些營銷公司就可以構建起相當精確的用戶檔案和瀏覽模式信息。

9.如何使用cookie?★★★

cookie的常用方法

1、 setComment()/getComment():指定或查找與該cookie相關的註釋

2、 setDomain()/getDomain():設置或讀取該cookie適用的域

3、 setMaxAge()/getMaxAge():操作cookie保留的時間,多長時間後過期

4、 getName():讀取cookie的名稱

5、 setPath()/getPath():設置或取得cookie適用的路徑 cookie.setPath(“/”);指定服務器的所有頁面都應該收到該cookie

6、 setSource()/getSource():指定cookie是否只能通過加密連接(SSL) 默認false,表示cookie適用所有連接 7、 setValue()/getValue():指定或獲取cookie的值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章