一、Cookie介绍
Cookie就是一小段文本(明文),存储在客户端的浏览器内存里面或者磁盘中。
Cookie是跟网站相关,百度可以往客户端写cookie,sina也可写cookie,但是百度只能读取跟百度网站相关的cookie,读不了sina的cookie。
cookie会随着请求网站一块发送到后台【如果请求百度的时候,那么就把百度的cookie放到请求报文里面去,然后发送到后台】
Cookie可以设置一个Path来限制某个路径下面的页面才会把cookie发送到后台。
Cookie的域:浏览器往后台发送数据时候,要把cookie放到请求报文里面去,发送到后台。
那么有个问题:请求是子域的网页,那么主域的cookie会不会发送到后台呢?
答案:是的。一块发送。如果请求时主域页面,子域的cookie是不会发送到后台的。
如果子域想让请求主域页面的时候也一块发送到后台,设置当前Cookie的域为主域可以了。
Response.Cookies["cp3"].Domain = "xxx.com";//设置主域的
Cookie是通过响应报文的方式写到前台
二、CookieDemo.aspx代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CookieDemo.aspx.cs" Inherits="CZBK.ItcastProject.WebApp._2015_5_31.CookieDemo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
三、CookieDemo.aspx.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CZBK.ItcastProject.WebApp._2015_5_31
{
public partial class CookieDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端),
//与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的
//是关于网站相关的文本字符串数据。Cookie的存储方式有两种,如果不指
//定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间,
//那么存储在客户端的磁盘上。Cookie是与具体的网站有关的,如果我们将
//Cookie设置了过期时间,那么当用户在指定时间内访问我们的网站,那么
//属于我们网站的Cookie数据会放在请求报文中发送过来,其它网站的Cookie不会发送。
//创建Cookie.没有指明时间的话是存入浏览器内存
// Response.Cookies["cp1"].Value = "itcast";
//创建Cookie并且指定过期时间.
//Response.Cookies["cp2"].Value = "laowang";
//Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(3);
//删除Cookie
// Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1);
//Cookie跨域(域名)
Response.Cookies["cp3"].Value = "laowang";
// Response.Cookies["cp3"].Domain = "xxx.com";//设置主域的。
Response.Cookies["cp3"].Path = "/2015-5-31";
Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3);
//另外一种创建Cookie的方式。
HttpCookie cookie1 = new HttpCookie("cp4","sssss");
cookie1.Expires = DateTime.Now.AddDays(3);
Response.Cookies.Add(cookie1);
}
}
}