cookies 定義在 rfc2109 標準。cookies 的大部分操作,由客戶端也就是瀏覽器實現。
cookies 每乙個 cookie 代表著乙個 key-value 鍵值對,以及作用範圍,和生命週期。
cookie 字段定義
作用範圍(scope):path
,domain
生命週期(life cycle):也就是cookie的過期時間,expires
(gmt,utc) 時間標準
安全作用域(security scope):httponly
,secure
跨域訪問涉及 作用範圍(scope), 安全作用域(security scope)
如果 你不使用 js 操作 cookie 的話,可以忽略 安全作用域(security scope)。
以上可能有點 抽象,但是你可以開啟 chrome 按 f12 -> resources -> cookies
可以看到,類似下面這樣
以上都是感念跟廢話。重要看下面。
服務端只是 cookie 的接收者和解析者。由瀏覽器也就是客戶端決定是否要將哪些cookies
傳送到到服務端。
而客戶端是參考標準實現rfc2109
的話(基本都是這樣)。是根據 cookie 的 path, 和 domain 來傳送。
我們假設,我們現在有兩個 domain.
如果想讓 客戶端將www.php123.com
下面的 cookie 也傳送到oauth2.php123.com
下面。那麼你需要,在 setcookie() 的時候,將domain
設定成為php123.com
。
php 庫函式 setcookie 的定義
來個實在點的例子吧。
setcookie("foo2", "bar1", time() + 3600) //domain 預設使用,當前domain。
// 沒有拿到 ['foo2' => 'bar2'],那是因為客戶端只需將 domain 為`php123.com`,`www.php123.com`的 cookie 傳送到 www.php123.com 這個域上。所以 cookie.php 只拿到了該拿到的兩個 cookie。
以上**可以很好的解釋 cookie 的工作方式。理解好 cookie 的工作及機制可以實現很多高階功能。比如分布式的 session 共享。
koa開啟cors允許跨域,攜帶cookies
使用koa開發想要開啟 cors 非常簡單,已經有對應的庫 koa cors。const cors require koa cors use cors 只需要兩行,介面就會在返回資料的時候帶上access control allow origin響應頭。預設允許所有請求方式跨域即access con...
mysql 跨域訪問 php如何解決跨域問題
什麼是跨域?跨域,指的是瀏覽器不能執行其他 的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。所謂同源是指,網域名稱,協議,埠均相同。1 允許所有網域名稱訪問header access control allow origin 2 允許單個網域名稱訪問header access con...
php跨域簡述
一 通過設定access control allow origin來實現跨域。例如 客戶端的網域名稱是client.runoob.com,而請求的網域名稱是server.runoob.com。如果直接使用ajax訪問,會有以下錯誤 1 允許單個網域名稱訪問 指定某網域名稱 跨域訪問,則只需在檔案頭部...