zoukankan      html  css  js  c++  java
  • cookie与session的区别与联系

    cookie是什么?

        cookie是存在于客户端(浏览器)。

      cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

      cookie的内容主要包括:名字,值,过期时间,路径和域。其中路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。如下图:访问百度得到的cookie,域都是指向百度的。

      访问百度之后返回的设置cookie的响应头

    session是什么?

      session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 

    session 存放在什么地方?

      存在于服务器端的。

    cookie与session如何联系与通信的

      用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在 HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端。这个SessionID就是保存在客户端的,属于客户端Session。其实客户端Session默认是以cookie的形式来存储的。

      当然我们客户端可以禁用cookie,这时候服务器端就拿不到sessionID。

         另外一个办法:使用url方式存储sessionID;但是一般都不推荐使用,因为可以伪造url。

    session一般存储在什么地方?

    1. php session默认保存在文件中,在php.ini配置文件中:

      session.save_handler = files

      session.save_path=D:\www\tmp  //文件地址

      文件名以 sess_ 为前缀,后跟 SESSION ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的 SESSION 数据了。

    2.保存在数据库中。

      待学习了解后补充

  • 相关阅读:
    IE不支持 ES6 Promise 对象的解决方案
    微信小程序使用阿里图标
    IE浏览器 ajax传参数值为中文时出现乱码的解决方案
    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
    常见的一些浏览器兼容问题
    移动端rem设置(部分安卓机型不兼容)
    element ui el-menu样式调整
    原生login页面
    elemet ui去除table 样式
    项目上线
  • 原文地址:https://www.cnblogs.com/lingshao/p/5580273.html
Copyright © 2011-2022 走看看