1. Что такое печенье?
О: Файлы cookie используются для хранения информации о сеансе на клиенте.
2. Компоненты печенья?
① Имя: уникальное имя для печенья. Рекомендуется быть чувствительным к случаю. Имя печенья должно быть закодировано URL.
② Значение: строковое значение, хранящееся в файле cookie. Значение должно быть кодировано URL.
③domain: какой домен является печеньем, действителен для. Все запросы, отправленные в этот домен, будут содержать эту информацию о файле cookie. Это значение может содержать субдомен (субдомен, такой как www.wrox.com) или нет (субдомен, такой как .wrox.com, который действителен для всех субдоменов Wrox.com). Если не явно установлен, то этот домен будет рассмотрен из домена, где установлена cookie.
④path: для этого пути в указанном домене на сервер следует отправлять файл cookie. Например, вы можете указать, что файлы cookie доступны только с http://www.wrox.com/books/, поэтому страница http://www.wrox.com не будет отправлять информацию cookie, даже если запросы находятся в том же домене.
⑤expiration Время: временная метка, указывающая, когда файл cookie следует удалить. По умолчанию все файлы cookie будут удалены в конце сеанса браузера; Тем не менее, вы также можете установить время удаления самостоятельно. Это значение является датой в формате GMT (WDY, DD-Mon-Yyy HH: MM: SS GMT), который указывает точное время, когда печенье следует удалить. Поэтому куки
Его все еще можно сохранить на машине пользователя после закрытия браузера. Если дата истечения срока действия, которую вы устанавливаете, является предыдущим раз, печенье будет удалено немедленно.
⑥ Флаг безопасности: после указания, cookie отправляется на сервер только при использовании SSL -соединения. Например, информацию cookie можно отправлять только на https://www.wrox.com, в то время как запросы с http://www.wrox.com не могут отправлять файлы cookie.
3. Перечислите пример печенья?
Вот полный пример cookie, который мы его разбили:
Set-Cookie: name = value; истекает = понедельник, 22 января-07 07:10:24 Gmt; Domain = .wrox.com; path =/; безопасный
① Имя: Имя строки
② Значение: представление строки значения
③expiration Время: понедельник, 22 января-07 07:10:24 GMT
④momain Имя: .wrox.com
⑤path: текущий каталог/
⑥ Знак безопасности: безопасность
4. Как управлять файлами cookie?
var cookieutil = {// set set cookie set: function (имя, значение, срок действия, домен, path, secure) {var cookietext = ""; "; cookietext + = encodeuricomponent (name) + "=" + encodeuricomponent (значение); if (истекает exanceof date) {cookietext + = "; истекает =" + oxers.togmtString (); } if (path) {cookietext + = "; path =" + path; } if (domain) {cookietext + = "; domain =" + domain; } if (secure) {cookietext += "; secure"; } document.cookie = cookietext; }, // name = value; истекает = expiration_time; path = domain_path; domain = domain_name; Secure // получить cookie get: function (name) {var cookiename = encodeuricomponent (name) + "=", cookieStart = document.cookie.indexof (cookiename), cookievalue = ""; if (cookieStart> -1) {var cookieend = document.cookie.indexof (";", cookieStart); if (cookieEend = -1) {cookieend = document.cookie.length; } cookieValue = decodeuricomponent (document.cookie.substring (cookieStart + cookiename.length, cookieEend)); } вернуть cookievalue; }, // удалить cookie unset: function (имя, домен, path, secure) {this.set (name, ", date (0), domain, path, secure); }}; // тестирование cookieutil.set ("name", "Zhang"); var name = cookieutil.get ("name"); оповещение (имя); // zhang cookieutil.unset ("имя"); Alert (cookieutil.get ("имя")); // пустой5. Куки -ограничения
① Количество хранимых данных ограничено
② Информацию, хранящуюся в файлах cookie, может быть доступна только утвержденными получателями, но не может быть доступна другими доменами.
③ Ограниченная безопасность
6. В ответ на проблему небольшого количества хранения данных cookie мы предложили концепцию подборов. То есть несколько деталей данных хранятся в значении каждого файла cookie, разделенных "&".
var subcookieutil = { /** Установите полный файл cookie * param name: указывает на имя cookie, требуется * Подсказование параметров: указывает значение cookie, для объекта требуется * Парам истекает: Указывает время истечения срока действия cookie, вы не можете заполнять * Парама Домену: указывает на доменное имя. Указывает флаг безопасности печенья, вы не можете заполнить * Например: subcookieutil.setall ("info", {name: "Zhang", возраст: 23}); **/ setall: function (имя, подказки, истекает, домен, путь, безопасный) {var cookietext = "", sub -sub -sip -pookieParts = []; cookietext + = encodeuricomponent (name) + "="; for (sub -in subcookies) {cookieparts.push (encodeuricomponent (subname) + "=" + encodeuricomponent (subcookies [subname])); } if (cookieparts.length> 0) {cookietext += cookieParts.join ("&"); if (истекает exanceof date) {cookietext + = "; истекает =" + oxers.togmtString (); } if (path) {cookietext + = "; path =" + path; } if (domain) {cookietext + = "; domain =" + domain; } if (secure) {cookietext += "; secure"; }} else {cookietext + = "; истекает =" + date (0) .togtString (); } document.cookie = cookietext; }, /** Установите Subcookie * Имя параметра: указывает имя cookie, требуется * парамец парама: указывает имя детского cookie, необходимо * * Param Secure: указывает флаг безопасности печенья, вы не можете заполнить * например: subcookieutil.set («Информация», «Секс», «Мальчик»); **/ set: function (имя, поднамер, значение, истечение, домен, путь, безопасный) {var cookies = this.getall (name) || {}; файлы cookie [sub -sub -ale] = value; this.setall (имя, куки, истекает, домен, путь, безопасный); }, /** Прочтите полный файл cookie * Имя параметра: указывает имя cookie, требуется * return: объект cookie * например: subcookieutil.getall ("info"); **/ getall: function (name) {var cookiename = encodeuricomponent (name) + "=", cookieStart = document.cookie.indexof (cookiename), cookievalue = "", i, len, subcookies, parts, result = {}; if (cookieStart> -1) {var cookieend = document.cookie.indexof (";", cookieStart); if (cookieEend == -1) {cookieend = document.cookie.length; } cookieValue = decodeuricomponent (document.cookie.substring (cookieStart + cookiename.length, cookieEend)); if (cookievalue.length> 0) {subcookies = cookievalue.split ("&"); for (i = 0, len = subcookies.length; i <len; i ++) {parts = subcookies [i] .split ("="); Результат [decodeuricomponent (части [0])] = decodeuricomponent (части [1]); } return Result; }} return null; }, /** Получите значение детского cookie* param name: представляет имя печенья, необходимо* Param sub -sub -ale: представляет имя детского cookie* return: значение детского cookie* eg: subcookieutil.get ("info", "name"); **/ get: function (name, subname) {var cookies = this.getall (name); if (cookies) {return cookie [sub -sub -sepname]; } else {return null; }}, /** Удалить полный файл cookie * param name: Указывает имя cookie, требуется * Param Domain: указывает доменное имя cookie, вы не можете заполнить * Param Path: Укажите путь cookie, вы не можете заполнить * Param Secure: указывает на флаг безопасности куки, вы не можете заполнить * eg: subcookieUtil. **/ unsetall: function (имя, домен, path, secure) {this.setall (name, "", date (0) .togmtString (), Domain, Path, Secure); }, /** Удалить подсудку * Имя параметра: указывает имя печенья, необходимо, * PARAM SOBNAM Subcookieutil.unset ("info", "name"); **/ unset: function (имя, субнам, домен, path, secure) {var cookies = this.getall (name); if (cookies) {delete cookie [sub -sub -sepname]; this.setall (имя, файлы cookie, null, домен, путь, безопасный); }}}}; // Тест: var zhang = {name: "Zhang", возраст: 23, высота: "178 см", вес: "66 кг"} // Установить полный файл cookie subcookieutil.setall ("Zhang", Zhang); // Получить полный файл cookie var zhang = subcookieutil.getall ("zhang"); предупреждение (Zhang.weight); // 66 кг // Добавить детское печенье в Zhang subcookieutil.set ("Zhang", "Sport", "Basketball"); // получить Subcookie Alert (subcookieutil.get ("zhang", "Sport")); // баскетбол // Удалить Subcookie subcookieutil.unset ("Zhang", "Age"); Alert (subcookieutil.get ("Zhang", "Age")); // не определен // удалить полный cookie subcookieutil.unsetall ("zhang"); Alert (subcookieutil.getall ("Zhang")); // ошибка была удаленаВыше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.