Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态, 所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述, 也算是我对Cookie的认识总结。
Cookie 概述
Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。
为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分 是不是来源于同一个浏览器。所以,需要额外的数据用于维护会话。 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据。
Cookie能做什么? Cookie只是一段文本,所以它只能保存字符串。而且浏览器对它有大小限制以及 它会随着每次请求被发送到服务器,所以应该保证它不要太大。 Cookie的内容也是明文保存的,有些浏览器提供界面修改,所以, 不适合保存重要的或者涉及隐私的内容。
Cookie 的限制。 大多数浏览器支持最大为 4096 字节的 Cookie。由于这限制了 Cookie 的大小,最好用 Cookie 来存储少量数据,或者存储用户 ID 之类的标识符。用户 ID 随后便可用于标识用户,以及从数据库或其他数据源中读取用户信息。 浏览器还限制站点可以在用户计算机上存储的 Cookie 的数量。大多数浏览器只允许每个站点存储 20 个 Cookie;如果试图存储更多 Cookie,则最旧的 Cookie 便会被丢弃。有些浏览器还会对它们将接受的来自所有站点的 Cookie 总数作出绝对限制,通常为 300 个。
通过前面的内容,我们了解到Cookie是用于维持服务端会话状态的,通常由服务端写入,在后续请求中,供服务端读取。 下面本文将按这个过程看看Cookie是如何从服务端写入,最后如何传到服务端以及如何读取的。
Cookie的写、读过程
在Asp.net中,读写Cookie是通过使用HttpCookie类来完成的,它的定义如下:
public sealed class HttpCookie
{
// 获取或设置将此 Cookie 与其关联的域。默认值为当前域。
public string Domain { get; set; }
// 获取或设置此 Cookie 的过期日期和时间(在客户端)。
public DateTime Expires { get; set; }
// 获取一个值,通过该值指示 Cookie 是否具有子键。
public bool HasKeys { get; }
// 获取或设置一个值,该值指定 Cookie 是否可通过客户端脚本访问。
// 如果 Cookie 具有 HttpOnly 属性且不能通过客户端脚本访问,则为 true;否则为 false。默认为 false。
public bool HttpOnly { get; set; }
// 获取或设置 Cookie 的名称。
public string Name { get; set; }
// 获取或设置要与当前 Cookie 一起传输的虚拟路径。默认值为当前请求的路径。
public string Path { get; set; }
// 获取或设置一个值,该值指示是否使用安全套接字层 (SSL)(即仅通过 HTTPS)传输 Cookie。
public bool Secure { get; set; }
// 获取或设置单个 Cookie 值。默认值为空引用。
public string Value { get; set; }
// 获取单个 Cookie 对象所包含的键值对的集合。
public NameValueCollection Values { get; }
// 获取 System.Web.HttpCookie.Values 属性的快捷方式。
public string this[string key] { get; set; }
}
Cookie写入浏览器的过程:我们可以使用如下代码在Asp.net项目中写一个Cookie 并发送到客户端的浏览器(为了简单我没有设置其它属性)
HttpCookie cookie = new HttpCookie("MyCookieName", "string value");
Response.Cookies.Add(cookie);
我想很多人都写过类似的代码,但是,大家有没有想过:Cookie最后是如何发送到客户端的呢?我们打开Fiddler来看一下吧。
http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html
分享到:
相关推荐
- 当COOKIES_ENABLED设置为False(或者未做任何设置,默认情况)时,Scrapy不会开启cookies功能,也就是说不会在请求中携带任何cookies。 - 当COOKIES_ENABLED设置为True时,Scrapy会禁用默认的cookie策略,并使用...
一般在我们做项目时,我们都会通过POST请求拿到服务器给到的set-Cookies,保存在浏览器的Cookie里 这里需要明确一点。缓存有三类 cookie、 sessionStorage 、localStorage cookie: 存储在用户本地终端上的数据。有时...
jQuery的Cookie插件 cookies cookies 是一个强大的 jQuery 用来操作 Cookie 的插件。除了常见的操作 $.cookies.set( 'sessid', 'dh3tr62fghe' ); var sessid = $.cookies.get( 'sessid' ); $.cookies.del( 'sessid...
标题中的"export cookies&&all cookies For firefox3.0"指的是针对Firefox 3.0浏览器的扩展,用于导出和管理用户的cookies数据。这个过程对于理解网络浏览行为、数据隐私以及测试自动化等方面非常重要。 首先,我们...
在易语言中,"取COOKIES目录"这个功能通常是指获取浏览器保存的Cookies数据的存储路径,这对于网络编程,尤其是涉及到用户登录状态维持、个性化设置记录等场景十分重要。 Cookies是Web服务器发送到用户浏览器并存储...
在现代Web开发中,前端Cookies是用于存储用户信息和跟踪会话的重要工具。"前端cookies安全视频"聚焦于如何安全地使用这些小型文本文件,确保Web应用程序的数据安全性和用户隐私。以下是对视频内容的详细解释: 一、...
**IECookies查看器详解** IECookies查看器是一款专为用户设计的工具,旨在帮助用户查看并管理Internet Explorer(简称IE)浏览器的Cookies。Cookies是网站在用户计算机上存储的小型文本文件,用于记录用户偏好、...
本文将深入探讨POST应用中的COOKIES管理,特别是如何在多线程环境中处理多个COOKIES,同时以易语言作为编程语言进行讲解。 首先,COOKIES是一种在客户端和服务器之间传递状态信息的技术。当用户访问一个网站时,...
【支付宝获取cookies工具】 在互联网安全领域,"支付宝获取cookies工具"是一个涉及到用户登录状态管理和安全的话题。Cookies是网站为了辨别用户身份、保存用户信息而储存在用户浏览器上的小文本文件。在支付宝这样...
发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧。废话不宜多,直接上内容。 我们平时使用requests获取网络内容很简单,几行代码搞定了,例如: import requests res=requests.get...
因为cookies是存储在客户端浏览器中的,因此需要确保cookies的安全性,以免泄露用户的敏感信息。可以使用加密技术来保护cookies中的数据,以免被恶意攻击。 使用cookies记住用户名密码登录时间可以提高用户体验,但...
类还包含了删除Cookies的功能,这通常意味着设置一个过期时间在过去的新Cookies,使浏览器自动清除它。类的`deleteCookie()`方法可能用于实现这一点。 5. **设置前缀**: 在处理多个应用程序或不同功能的Cookies...
网页的Cookies是小型文本文件,由网站服务器存储在用户的计算机或移动设备上,用于记录用户在网站上的行为和偏好。这些信息有助于网站提供个性化的体验,例如保存登录状态、购物车内容或者页面设置等。然而,由于...
C#结合Cookies是一种常见的实现方式,它能有效地防止客户端的重复操作。本篇将详细解析如何利用C#和Cookies来实现这一功能。 首先,我们来看标题中的核心概念:C#防止重复操作和C#+Cookies防止重复操作。在C#的Web...
在IT行业中,尤其是在Web开发领域,Cookies是一种广泛使用的机制,用于在客户端(用户浏览器)和服务器之间存储和传输状态信息。C++虽然不是通常用来处理Web交互的主要编程语言,但通过一些库和方法,确实可以实现...
**标题:Cookies用法及相关应用** **一、Cookies的基本概念** Cookies是Web服务器在用户浏览器上存储的小型文本文件,用于记录用户的一些信息,如访问历史、用户偏好或登录状态等。它们是HTTP协议无状态特性的补充...
标题中的“最近浏览记录(Cookies)”指的是网络浏览器中的一项功能,它允许网站保存用户的浏览历史,以便在用户下次访问时提供个性化体验。Cookies是由服务器发送到用户浏览器并存储在本地的一小段文本数据,它们在...
5. **Cookies管理**:考虑到Cookies的有效期和安全性,源码还需要包含对过期Cookies的清理以及安全策略的实现,例如限制存储的Cookies数量,加密存储等。 6. **模拟浏览器行为**:为了完整地模拟浏览器的行为,可能...
Cookies 总结 Cookies 是一种小文本文件,存储在用户的计算机上,用于记录用户在 Web 应用程序中的行为和偏好。下面是对 Cookies 的总结: 一、Cookies 的概念 Cookies 是一种小文本文件,存储在用户的计算机上,...
标题中的“修改cookies的工具”指的是能够帮助用户编辑或篡改网页浏览器中存储的cookies的软件或应用程序。在互联网上,cookies是网站为了追踪用户行为、保持登录状态或个性化用户体验而存储在用户设备上的小型数据...