Cookie和Session

前言扩展:笔者在之前学习前端扫盲阶段,写过一个简单易读的:表白墙项目,具体的前端代码如下:




    
    
    
    表白墙
    


    

表白墙

输入内容后点击提交, 信息会显示到下方表格中

谁:
对谁:
说:

运行出来的页面为:

Cookie和Session_第1张图片

当然,在这个前端运行出来的表白墙项目上有不小的问题!

  1. 如果刷新页面/关闭页面重新打开,之前输入的消息就不见了!
  2. 如果一个机器上输了数据,第二个机器是看不到的(这些数据都是在本地浏览器中,并没有存储到相应的数据库/云服务器中!

那么,我们有着一下思路:

让服务器来存储用户提交的数据,由服务器保存

当有新的浏览器打开页面的时候,从服务器获取数据

此处,服务器就可以用来进行“存档”,“读档”

根据上述思路,来设计程序:

写Web程序,务必要考虑前后端如何交互??约定好前后端交互的数据格式(设计前后端交互接口)

  • 请求是啥样的??
  • 响应是啥样的??
  • 浏览器啥时候发这个请求??
  • 浏览器按照啥样的格式来解析??
  • …………………
  • …………………

那么,我们就得有着以下约定

约定:前后端交互数据的格式:

此处的约定方式有很多种,具体的设定都不尽相同

但是,此处的约定没有固定的强制要求

只要保证能够实现必要的代码即可

此处的目的就是为了前端代码和后端代码能够对上号即可!

哪个环节涉及到前后端交互??

  1. 点击提交:浏览器把表白信息,发到服务器这里

    Cookie和Session_第2张图片

  2. 页面加载,浏览器从服务器获取到表白信息

    Cookie和Session_第3张图片

当然,思路仅仅是这么多,至于其他的代码,就不在此涉及!!

经典面试题:

Cookie和Session

围绕Cookie的几个问题:

  1. Cookie是个啥??
    浏览器提供的持久化存储数据的机制
  2. Cookie从哪里来??

    Cookie从服务器返回给浏览器的

    服务器代码中,由程序员决定要把啥样的信息,保存到客户端这边

  3. Cookie到哪里去??
    Cookie会在后续浏览器访问服务器的时候,带着请求的header中,发给服务器
  4. 为啥要这么折腾??
    服务器不是只给一个客户端提供服务,同一时候要处理多个客户端,此时服务器就可以通过cookie的值,来识别当前客户端是谁??当前客户端的服务提供到哪个环节了??(客户端借助cookie自报家门)
  5. Cookie存在哪里??

    存储在浏览器(客户端)所在主机的硬盘中

    浏览器会根据域名来分别存储

    Cookie有个最典型的应用(Cookie的用途有很多):标识用户的身份信息:Cookie和Session_第4张图片

注意理解Cookie和Session之间的关联和区别:

区别:

  1. Cookie是客户端的存储机制,Session是服务器的存储机制
  2. Cookie里面可以存各种键值对(还可以有别的)
  3. Session则专门用来保护用户的身份信息
  4. Cookie是属于HTTP协议中的一部分
  5. Session则可以和HTTP无关(TCP,websocket…也可以用session)

你可能感兴趣的:(java要笑着学,操作系统哪些事?,java,网络)