1. O que é um biscoito?
R: Os cookies são usados para armazenar informações de sessão no cliente.
2. Componentes de cookies?
① Nome: um nome único para um cookie. Recomenda -se ser sensível ao minúsculo. O nome do cookie deve ser o URL codificado.
② Valor: o valor da string armazenado no cookie. O valor deve ser codificado por URL.
③Domain: para qual domínio é válido para cookie. Todas as solicitações enviadas a este domínio conterão essas informações de cookie. Esse valor pode conter subdomínio (subdomínio, como www.wrox.com) ou não (subdomínio, como .wrox.com, que é válido para todos os subdomínios do wrox.com). Se não estiver definido explicitamente, esse domínio será considerado no domínio onde o cookie está definido.
④Path: para esse caminho no domínio especificado, um cookie deve ser enviado ao servidor. Por exemplo, você pode especificar que os cookies são acessíveis apenas em http://www.wrox.com/books/, então a página http://www.wrox.com não enviará informações de cookie, mesmo que as solicitações sejam do mesmo domínio.
⑤Expiração Tempo: Timestamp indicando quando o cookie deve ser excluído. Por padrão, todos os cookies serão excluídos no final da sessão do navegador; No entanto, você também pode definir o tempo de exclusão. Este valor é uma data no formato GMT (WDY, DD-Mon-yyy HH: MM: SS GMT), que especifica o tempo exato em que o cookie deve ser excluído. Portanto, cookies
Ainda pode ser salvo na máquina do usuário após o fechamento do navegador. Se a data de validade que você definir for um horário anterior, o cookie será excluído imediatamente.
⑥ Sinalizador de segurança: depois de especificar, o cookie é enviado ao servidor apenas ao usar a conexão SSL. Por exemplo, as informações de cookie só podem ser enviadas para https://www.wrox.com, enquanto solicitações de http://www.wrox.com não podem enviar cookies.
3. Liste um exemplo de biscoito?
Aqui está um exemplo completo de biscoitos de que vamos quebrá -lo:
Set-cookie: name = value; expire = seg, 22-Jan-07 07:10:24 GMT; domínio = .wrox.com; caminho =/; seguro
① Nome: Nome Representação da String
② Valor: Value String Representação
③Expiração Tempo: Seg, 22-Jan-07 07:10:24 GMT
④ Nome do domínio: .wrox.com
⑤Path: Diretório atual/
⑥ Sinal de segurança: seguro
4. Como operar cookies?
var cookieutil = {// Definir conjunto de cookies: function (nome, valor, expira, domínio, caminho, seguro) {var cookietext = ""; cookietext + = codeuricomponent (nome) + "=" + codeuricomponent (valor); if (expire a instanceof date) {cookietext + = "; expires =" + expira.togmtString (); } if (path) {cookietext + = "; path =" + path; } if (domain) {cookietext + = "; domain =" + domain; } if (seguro) {cookietext += "; seguro"; } document.cookie = cookietext; }, // nome = value; expires = expiration_time; caminho = domain_path; domain = domain_name; seguro // obtenha cookie get: function (nome) {var cookiename = codeuricomponent (name) + "=", cookiestart = document.cookie.indexof (cookiename), cookievalue = ""; if (cookiestart> -1) {var cookieend = document.cookie.indexof (";", cookiestatart); if (cookieend = -1) {cookieend = document.cookie.length; } CookieValue = decodeuricomponent (document.cookie.substring (cookiestatart + cookiename.length, cookieend)); } retornar cozinheiro; }, // excluir cookie unset: function (nome, domínio, caminho, seguro) {this.set (nome, "", data (0), domínio, caminho, seguro); }}; // teste Cookieutil.Set ("Nome", "Zhang"); var name = cookieutil.get ("nome"); alerta (nome); // zhang bookieutil.UnSet ("Nome"); alerta (cookieutil.get ("nome")); // vazio5. Restrições de cookie
① O número de dados armazenados é limitado
② As informações armazenadas no cookie só podem ser acessadas pelos destinatários aprovados, mas não podem ser acessados por outros domínios.
③ Segurança limitada
6. Em resposta ao problema de uma pequena quantidade de armazenamento de dados de cookies, propusemos o conceito de sub-cookies. Ou seja, vários dados são armazenados no valor de cada cookie, separados por "&".
var SubCookieUtil = { /** Set a complete cookie * param name : indicates the name of the cookie, required * param subCookies : indicates the value of the cookie, for an object, required * param expires : indicates the expiration time of the cookie, you can not fill in * param domain : indicates the domain name of the cookie, you can not fill in * param path : indicates the path of the cookie, you can not fill in * param secure : Indica o sinalizador de segurança do cookie, você não pode preencher * por exemplo: subcookieutil.setall ("info", {name: "zhang", idade: 23}); **/ setall: function (nome, sub -cookies, expira, domínio, caminho, seguro) {var cookietext = "", subnome, cookieParts = []; cookietext + = codeuricomponent (nome) + "="; para (subnome em sub -cookies) {CookieParts.push (codeuricomponent (subname) + "=" + codeuricomponent (subcookies [subnome])); } if (cookieParts.length> 0) {cookietext += cookieParts.join ("&"); if (expire a instanceof date) {cookietext + = "; expires =" + expira.togmtString (); } if (path) {cookietext + = "; path =" + path; } if (domain) {cookietext + = "; domain =" + domain; } if (seguro) {cookietext += "; seguro"; }} else {cookietext + = "; expires =" + date (0) .togmtString (); } document.cookie = cookietext; }, /** Set a subcookie * param name: Indicates the name of the cookie, required * param subName: Indicates the name of the child cookie, Required * param value : Indicates the value of the child cookie, Required * param expires : Indicates the expiration time of the cookie, you can not fill in * param domain : Indicates the domain name of the cookie, you can not fill in * param path : Indicates the path of the cookie, you can not Preencha * Param Seguro: Indica o sinalizador de segurança do cookie, você não pode preencher * por exemplo: Subcookieutil.Set ("Info", "Sex", "Boy"); **/ SET: function (nome, subnome, valor, expira, domínio, caminho, seguro) {var cookies = this.getall (nome) || {}; Cookies [subnome] = value; this.setall (nome, cookies, expira, domínio, caminho, seguro); }, /** Leia um cookie completo * Nome do parâmetro: Indica o nome do cookie, obrigatório * Retorno: um objeto de cookie * por exemplo: subcookieutil.getall ("info"); **/ getAll: function (nome) {var cookiename = codeuricomponent (name) + "=", cookiestart = document.cookie.indexof (cookiename), cookievAvalue = "", i, len, sub -cookies, partes, resultado = {}; if (cookiestart> -1) {var cookieend = document.cookie.indexof (";", cookiestatart); if (cookieend == -1) {cookieend = document.cookie.length; } CookieValue = decodeuricomponent (document.cookie.substring (cookiestatart + cookiename.length, cookieend)); if (cookievalue.length> 0) {subcookies = CookieValue.split ("&"); for (i = 0, len = subcookies.length; i <len; i ++) {peças = sub -cookies [i] .split ("="); resultado [decodeuricomponent (partes [0]]] = decodeuricomponent (partes [1]); } resultado de retorno; }} retornar nulo; }, /** Obtenha o valor de um cookie infantil* Nome do parâmetro: representa o nome do cookie, requerido* param Subnome: representa o nome do cookie filho* retornar: o valor de um biscoito infantil* por exemplo: Subcookieutil.get ("info", "nome"); **/ get: function (nome, subnome) {var cookies = this.getall (nome); if (cookies) {retorna cookies [subnome]; } else {return null; }}, /** Exclua um cookie completo * Nome do parâmetro: indica o nome do cookie, requerido * Param Domínio: indica o nome de domínio do cookie, você não pode preencher o caminho do param: indica o caminho do cookie, não pode preencher * param Seguro: Indica o sinalizador de segurança do cookie, você não pode preencher "Subcookie; **/ unsetall: function (nome, domínio, caminho, seguro) {this.setall (nome, "", date (0) .togmtString (), domínio, caminho, seguro); }, /** Delete a subcookie * param name : indicates the name of the cookie, required * param subName : indicates the name of the child cookie, required * param domain : indicates the domain name of the cookie, you can not fill in * param path : indicates the path of the cookie, you can not fill in * param secure : indicates the security flag of the cookie, you can not fill in * eg : Subcookieutil.UnSet ("info", "nome"); **/ unset: function (nome, subnome, domínio, caminho, seguro) {var cookies = this.getall (nome); if (cookies) {excluir cookies [subnome]; this.setall (nome, cookies, nulo, domínio, caminho, seguro); }}}}; // teste: var zhang = {name: "zhang", idade: 23, altura: "178cm", peso: "66kg"} // Defina um biscoito completo subcookieutil.setall ("zhang", zhang); // Obtenha um biscoito completo var zhang = subcookieutil.getall ("zhang"); alerta (zhang.weight); // 66kg // Adicione um biscoito infantil ao Zhang Subcookieutil.Set ("Zhang", "Sport", "Basketball"); // Obtenha Alert Subcookie (subcookieutil.get ("Zhang", "Sport")); // Basketball // Exclua um sub -cookie subcookieutil.unset ("Zhang", "Age"); alerta (Subcookieutil.get ("Zhang", "Age")); // indefinido // Exclua um biscoito completo subcookieutil.unSetall ("zhang"); alerta (subcookieutil.getall ("zhang")); // um erro foi excluídoO exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.