[TOC]
>[success] # cookie-介紹
* 什么是 **cookie** ?
* **javascript** 操作 **cookie** ,**瀏覽器** 中如何查看 **cookie** ?
* **server 端** 操作 **cookie** ,實現 **登陸驗證**
>[success] ## 什么是 cookie
* **cookie** 是 **儲存** 在 **瀏覽器** 的一段 **字符串(最大5kb)**
* **跨域不共享** :不在同一個域名下 **cookie** 不共享
* **cookie 格式** :**k1=v1;k2=v2;k3=v3;** 因此可以儲存 **結構化數據** ,這個結構有點類似 **哈希表key value** 的 **結構** 。
* **每次發送 http 請求** ,**會將請求域的 cookie 一起發送給 server 端**
* **server 端** 可以 **修改 cookie 并返回給瀏覽器** ,修改后就會從 **responseHeader** 中返回 **Set-Cookie 字段**
* **瀏覽器中** 也可以通過 **javascript** 修改 **cookie** (但是有限制,**server 端可能不希望cookie被客戶端修改,就可以通過設置 httpOnly 將 cookie 鎖死**)
>[success] ## 客戶端 javascript 操作 cookie
* **客戶端** 查看 **cookie** 的 **3 種方式**
* **javascript 查看、修改 cookie(有限制)**
>[success] ### 瀏覽器查看 cookie 的 3 種方式
1. 我們進入百度刷新頁面時打開控制臺看請求的接口中,就可以看到 **瀏覽器向服務器發送的 cookie**

2. 第 **2** 種方式,我們可以通過瀏覽器的 **application** 中看到 **cookie** 的信息

3. 第 **3** 種方式,我們可以在 **瀏覽器控制臺** 輸入 `document.cookie` 進行查看 **cookie**

>[success] ### javascript 修改 cookie
**cookie 直接修改** 是不可以的,但是我們可以 **通過累加的方式進行修改添加 cookie** ,例如:
~~~
document.cookie = 'k1=100'
document.cookie = 'k2=200'
~~~

這樣再打印 **cookie** 就會發現結尾多出現了我們添加的 **cookie** ,當然這只是一個簡單的演示,真正開發時,在瀏覽器上很少有修改 **cookie** 的情況,多半都是 **server 端** 來修改,也可以通過 **github** 上的一個 **js-cookie** 插件來添加 **cookie**
- NodeJS基礎
- 什么是NodeJS
- npm
- Node.js+Express+Koa2+開發Web Server博客
- 下載和安裝node
- nodejs和js的區別
- commonjs-演示
- nodejs如何debugger
- server端與前端的區別
- 項目需求分析
- 開發接口(不使用任何框架)
- http-概述
- 處理get請求
- 處理post請求
- 處理http請求的綜合示例
- 搭建開發環境
- 初始化并且開發路由
- 開發博客項目之數據存儲
- MySql介紹
- 數據庫操作(創建和增、刪、查)
- Nodejs 操作 Mysql
- Nodejs 鏈接 mysql 做成工具
- API 對接 MySQL
- 開發博客項目之登陸
- cookie-介紹
- cookie用于登錄驗證
- cookie做限制