万年不变话题cookie,简单总结

  cookie是面试中经常会问到的一个问题,但是就我的项目实践来看,我用到的次数极少。有时候用到也不是为了存储用户名密码,只是存储一些需要记住的状态。可能和我的经验尚浅,涉足的项目不算多有关。这里简单做几点总结。

1.cookie由来
1)session和cookie都是会话跟踪技术,都是用来记录保存客户端跟服务器之间通信时需要用到的一些数据。
2)session对象存放在服务器内存里
3)cookie存放在客户端本地硬盘上
4)客户端每次访问服务器都会携带该服务器发送到本地的cookie文件
5)当使用session保存客户端信息时,cookie文件不再需要保存大量客户端信息,只需要简单记录一个session的ID号
6)当cookie文件丢失,服务器便无法辨别客户端的身份,只能假定客户端是第一次访问服务器,所以会要求客户端进行登陆操作。
7)服务器默认设定,当客户端30分不再与服务器产生交互,便认为会话过期,session对象会被销毁。此时再请求服务器,cookie中记录的sessionID号已经毫无意义。 session对象只能重新建立,用户也必须重新进行登陆。
8)当浏览器禁用掉cookie功能,服务器便彻底无法辨别客户端的身份,session功能就会失效,你就可能无法正常的访问网站。


2.cookie组成
cookie由 名/值 对形式的文本组成: name=value
完整格式为 name=value;[expires=date];[path=path];[domain=somewhere.com];[secure]
[ ]里面的属性和值是可选,name=value是必选。

expires=date失效时间;path=path 表示cookie所在的根目录;domain 表示cookie所在的域,默认为请求的地址;secure 安全设置,只能保证cookie与web服务器之间的数据传输过程加密,保存在本地的cookie不加密。

 

3.cookie交互原理

原理:不想保存在中央数据库的细节信息。设计一个站点,依照用户习惯登录的模式,cookie记录每个用户的习惯,并保存在用户的计算机上,而自己的数据库空间可以留给更有意义的数据。

 

4.cookie的限制
chrome和Safari没有对cookie的个数做限制,一般浏览器限制同一域名数量为50个。
cookie的文件大小一般为4kb(同一域名)。

 

5.禁止cookie
如果浏览器完全禁止cookie的话,大多数网站的功能无法正常使用。

 

6.cookie与存储
在本地客户端的磁盘上以很小的文件形式保存数据。
(HTTPCookie)最初是客户端与服务器进行会话使用的。
HTTPCookie要求服务器对任意HTTP请求发送set-cookie,cookie的处理原则是,需要在服务器环境下进行。现在大部分浏览器在客户端也能实现cookie的生成和获取(谷歌除外)。

 

7.cookie(拓展)
(1)cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的 多个网页,但不能跨越多个域名使用。不同的浏览器对cookie的实现也不一样,但其性质是相同的。
(2)cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

转载于:https://www.cnblogs.com/lmxHome/p/10749027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值