Cookie之domain

简介: 本以为我对cookie这个小玩具已经很了解,后来才发现,只是皮毛罢了,还需要继续学。

 本以为我对cookie这个小玩具已经很了解,

后来才发现,只是皮毛罢了,还需要继续学。

目录

问题一:

1. 顶级域名(.com/.cn/.org 等):解决 “资源分类” 问题

2. 二级域名(如doubao.com中的 “doubao”):解决 “实体标识” 问题

3. 三级及以上域名(如www.doubao.com中的 “www”):解决 “内部资源细分” 问题

4.拓展

问题二:

普通登入:

“记住我” 登入:


问题一:

cookie的域名(domain)设成.com,那是不是123.com的域名也能访问

答案是不行的。

因为.com是公共后缀。

Cookie 的域名不能直接设为 .com (浏览器会禁止),且不同二级域名(如123.com和456.com)的 Cookie 无法互通。

其实我是想借此引出以下知识点。

我是以www.doubao.com为例的:

域名片段 官方名称 层级定位 说明
.com 顶级域名(TLD) 一级域名 属于 “通用顶级域名”(gTLD),是互联网的顶层分类之一(类似的还有 .cn.org 等),不是 “拓展域名”
doubao 二级域名(SLD) 核心注册域名 这是在域名注册商(如阿里云、腾讯云)处实际注册的 “主体”,比如 “doubao.com” 是注册的完整基础域名,不是 “一级域名”
www 三级域名 子域名 是在 “doubao.com” 这个二级域名下,自行配置的子域名(用于指向网站的 “www 服务”),类似的子域名还可以是 blog.doubao.comapi.doubao.com 等。

域名分级的根本目的起初是为了解决 “全球资源定位与管理” 问题

1. 顶级域名(.com/.cn/.org 等):解决 “资源分类” 问题

顶级域名(一级域名)是互联网的 “顶层分类标签”,核心作用是按 “类型” 或 “地域” 划分资源池,方便全球统一管理:

  • 按类型分:.com(商业机构)、.org(非营利组织)、.edu(教育机构)、.gov(政府机构)等;
  • 按地域分:.cn(中国)、.jp(日本)、.uk(英国)、.us(美国)等。

比如用户看到.edu就知道是教育网站,看到.cn就知道是中国的网站,无需记住复杂的 IP 地址,降低认知和管理成本。

2. 二级域名(如doubao.com中的 “doubao”):解决 “实体标识” 问题

二级域名是企业 / 个人在 “顶级域名下” 注册的 “专属标识”,核心作用是唯一区分某个具体实体

  • 每个二级域名 + 顶级域名的组合(如doubao.comtaobao.com)在全球是唯一的,相当于互联网上的 “门牌号码”;
  • 用户通过二级域名就能关联到具体品牌(比如看到 “doubao.com” 就知道是豆包相关服务),实现 “品牌与地址绑定”。

3. 三级及以上域名(如www.doubao.com中的 “www”):解决 “内部资源细分” 问题

三级域名(子域名)是注册者在 “二级域名下” 自行创建的,核心作用是对自身内部的资源 / 服务进行细分管理,无需额外向域名商注册,灵活度极高:

  • 按 “功能模块” 分:www.doubao.com(官网首页)、api.doubao.com(接口服务)、blog.doubao.com(博客板块)、mail.doubao.com(邮件服务);
  • 按 “业务线” 分:user.doubao.com(用户中心)、pay.doubao.com(支付服务)、shop.doubao.com(电商板块);
  • 按 “环境” 分:test.doubao.com(测试环境)、prod.doubao.com(生产环境)。

这种细分让内部资源结构更清晰,也方便用户 / 系统快速定位到具体服务(比如调用接口就找api.xxx.com,访问博客就找blog.xxx.com)。

4.拓展

特殊情况

大家可以通过这一段代码分析具体情况

if net.ParseIP(host) != nil {
    // 情况1:IP地址访问
    c.SetCookie(name, value, maxAge, "/", "", false, true)
} else {
    // 情况2:域名访问  
    c.SetCookie(name, value, maxAge, "/", host, false, true)
}

image.gif

两种情况对比:

访问方式 host值 domain参数 原因
IP地址 192.168.1.100 "" (空字符串) IP不能作为Cookie域名
域名 myblog.com "myblog.com" 域名可以作为Cookie域名

微服务

微服务架构的核心是 “将一个大型应用拆分为多个独立的小服务”(如用户服务、订单服务、支付服务),而多级域名恰好能为这些独立服务提供 “清晰的访问入口”。

所以微服务也就可以借助域名分级的特性,更轻松的实现以上功能。

可惜现在还没真正的着手开发过一个微服务架构的项目,等我后面学习了,在补充一下。

问题二:

一般在登入的时候,点击记住我时,是记住了cookie吗?还是怎么的?

普通登入:

服务器通常会生成一个短期有效的令牌

“记住我” 登入:

当用户勾选 “记住我” 时,服务器会生成一个长期有效的认证凭证,cookie的过期时间会设置的远些。

如图:

image.gif

目录
相关文章
|
1月前
|
算法
动态规划之完全背包
本文详解完全背包问题:作为动态规划经典题型,区别于01背包(每物限选1次),其特点是每种物品可无限次选取。文章从定义、状态转移方程(dp[i][j] = max(dp[i-1][j], dp[i][j-w]+v))、二维/一维实现到遍历顺序对组合数与排列数的影响,结合零钱兑换II、组合总和IV等5道典型例题深入剖析,助力掌握核心思想与编码技巧。
196 1
|
1月前
|
缓存 安全 测试技术
GO项目开发规范文档解读
本篇博客的目的,更多是为快速翻阅与回忆使用。
188 1
|
1月前
|
人工智能 安全 Linux
OpenClaw Skills深度解析:阿里云/本地部署+大模型api接入,构建可扩展AI Agent能力平台
OpenClaw(曾用名Clawdbot、Moltbot)是一款MIT开源协议的自托管AI Agent网关,可将Discord、Telegram、iMessage等通讯工具与主流大模型对接,实现轻量化AI助理部署。其核心竞争力在于**Skills技能系统**,截至2026年2月,ClawHub已收录超13700个社区技能,成为AI Agent生态的核心扩展载体。
527 0
|
1月前
|
存储 缓存 安全
一文带你读懂 Go 1.24 map 重构了什么?
本文聚焦 Go 1.24 map 底层重构,解释它如何从旧版 bucket + overflow 方案,演进为 Swiss Table + 局部 split 的新结构,以及它所带来的性能提升。
185 1
一文带你读懂 Go 1.24 map 重构了什么?
|
1月前
|
SQL Go
Go反射指南
反射与接口息息相关
131 2
|
1月前
|
存储 数据库连接 Go
项目跑起来之前的那些事
项目运行前都需要怎么设计?做那些准备呢?本篇博客将会拆解 Go 应用启动的核心代码逻辑
91 1
|
1月前
|
设计模式 Java Go
Go中的switch的8种使用场景:没有你想的那么简单
在 Go 中灵活使用 switch,可以使代码更清晰、更易维护。 switch 是 Go 中不可或缺的控制结构之一
832 1
|
1月前
动态规划之打家劫舍
最后在此,送坚持到这里的读者一句话。简单题,用来培养方法;难题,用来突破自我;两者结合,方能突破至高;当难题,难得你受不了时,恰恰是因为你没有重视简单题!希望大家有所收获。
102 1
|
1月前
|
算法
动态规划-01背包
本文深入解析动态规划经典问题——01背包及其四大变式:分割等和子集、最后一块石头的重量II、目标和、一和零。从暴力回溯切入,对比O(2ⁿ)与O(N·W)动态规划解法,详解状态定义、递推公式、二维/一维滚动数组优化,并配以清晰代码与图示,助你透彻掌握背包问题核心思想与实战技巧。
208 1
|
1月前
|
人工智能 前端开发 中间件
Go语言企业级权限管理系统设计与实现
采用RBAC进行的,基于角色分配权限,能够更完美的进行访问控制。同时写有,我对casbin的理解。
144 0