http是請求響應模型,所以最初http server幾乎沒有資訊可以判斷請求來自哪個client。為了解決這個問題,就需要client識別技術
cookie就是client在傳送請求的時候,會額外傳送一些鍵值對到server,這樣server讀取了這些資訊,就可以識別client了
server給回響應的時候,會帶乙個set-cookie或者set-cookie2的首部;之後client再傳送請求的時候,就用cookie首部,把cookie資訊傳送到server去
cookie的型別,有會話cookie和持久cookie。會話cookie就是關閉瀏覽器以後就沒有了,持久cookie則會在硬碟上保留一段時間
比如說這個圖,就是乙個會保留2個星期的持久cookie
cookie裡可以放很多資訊,但是這樣乙個問題是不安全;另乙個問題是每次http請求,需要傳送太多cookie,會增加網路流量。
所以一種常見的措施是,在server開闢乙個空間,把資訊儲存在server端,cookie只交換乙個id作為標識。這也就是所謂的session
session是儲存在server的,所以比cookie會安全一點,同時也省一些流量。但是session的問題在於,會增加server端的負擔。而且如果是用到了負載均衡的話,不同的server之間怎麼做session同步也是乙個問題
如果客戶端支援使用cookie的話,session id通過cookie傳遞就可以了;如果客戶端禁用cookie,就需要通過其他方式來傳遞session id,比如通過url改寫的方式
cookie規範在rfc2965裡,正式名稱是http state management mechanism(http狀態管理機制)
除了server端要遵循規範的要求,支援cookie以外,客戶端(通常是瀏覽器)也要遵守規範,cookie才能正常運作。如果瀏覽器不支援rfc2965,根本不能識別set-cookie和cookie首部的話,那這個瀏覽器也就不支援cookie了
大小: 14 kb
松鼠書讀書筆記(四) http proxy
本章說的是http proxy,也就是http 伺服器 其實我個人的理解,覺得這些概念 快取 web server 很模糊,只能說是rfc2616上給出的一種指導性的分類,並不是有很明確的含義的,也沒有嚴格的區分 這些概念,我認為都是網際網路上的一些節點,或者說是http應用而已,沒有絕對的分類和區...
松鼠書讀書筆記(二) HTTP報文
第2章講url的,沒什麼可記的,直接跳過 1 報文的一些術語 在規範裡有這樣2組術語,本身不太重要,但是需要知道它們的意思,才能理解後面的內容 一組是流入 流出,即inbound和outbound。流入 總是指http message從client agent發往server 流出 總是指http ...
iOS 讀書筆記 cookie
cookie是什麼東西?cookie session機制詳解這位博主寫的很詳細,可以看一下。ios 應用中可以在http連線中方便的使用cookie。url載入框架幫我們做了大量的工作以利用協議的這個特徵。經常用到cookie的地方有3個 檢索cookie的值 顯示刪除cookie 手工將cooki...