HTTP通信以及会话机制(Cookie和Session)

1.客户端与服务器之间的通信

客户端发出请求,服务器发出响应。
在这里插入图片描述

1.1 请求和响应

  • 客户端请求报文构成
    (请求方法、请求 URI、协议版本、可选的请求首部字段、内容实体)
    在这里插入图片描述

  • 服务器响应报文构成
    (协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段、实体主体)
    在这里插入图片描述

1.2 指定请求 URI 的方式

HTTP 协议使用 URI 让客户端定位到资源,当客户端请求访问资源而发送请求时,URI 需要将作为请求报文中的请求 URI 包含在内。

(1)GET :获取资源
在这里插入图片描述

(2)POST:传输实体主体
在这里插入图片描述

(3)PUT:传输文件(HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法)
在这里插入图片描述

(4)HEAD:获得报文首部(HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等)
在这里插入图片描述

(5)DELETE:删除文件(与 PUT 相反的方法)
在这里插入图片描述

(6)OPTIONS:询问支持的方法(用来查询针对请求 URI 指定的资源支持的方法)
在这里插入图片描述

(7)TRACE:追踪路径(不常用)
在这里插入图片描述

(8)CONNECT:要求用隧道协议连接代理
在这里插入图片描述

2.Cookie和Session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。Web应用程序是使用HTTP协议传输数据的。由于HTTP协议是无状态的协议,就是指它不具备保存之前发送过的请求或者响应的功能,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。因此引入了会话跟踪技术。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
在这里插入图片描述

2.1 Cookie机制

工作原理:由于HTTP协议是无状态的协议,这样的好处是减少服务器的CPU和内存资源的消耗,可以更快的处理大量事务,确保协议的可伸缩性,也是HTTP设计简单受欢迎的原因之一。但是无状态会导致业务处理变得棘手,如果用户登录到一家购物网站,web页面本身无法进行状态管理,是不能记录用户已登录的状态,那在每次跳转页面时就需要再次登录,为了能继续保持登录状态,网站也为了能够掌握是谁发出的请求,引入了Cookie技术用来管理用户的状态。
在这里插入图片描述

Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。 Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
在这里插入图片描述

2.2 Session机制

Session是另一种记录客户状态的机制。
在这里插入图片描述

Session 的主要作⽤就是通过服务端记录⽤户的状态。 还是以购物⻋为例,当你要添加商品到购物⻋的时候,系统不知道是哪个⽤户操作的,因为 HTTP 协议是⽆状态的。服务端给特定的⽤户创建特定的 Session 之后就可以标识这个⽤户并且跟踪这个⽤户了。

2.3 Cookie和Session的区别

(1)Cookie ⼀般⽤来保存⽤户信息 而Session 的主要作⽤就是通过服务端记录⽤户的状态。

我们在 Cookie 中保存已经登录过得⽤户信息,下次访问⽹站的时候⻚⾯可以⾃动帮你登录的⼀些基本信息给填了;⼀般的⽹站都会有保持登录也就是说下次你再访问⽹站的时候就不需要重新登录了,这是因为⽤户登录的时候我们可以存放了⼀个Token 在 Cookie 中,下次登录的时候只需要根据 Token 值来查找⽤户即可(为了安全考虑,重新登录⼀般要将 Token 重写);登录⼀次⽹站后访问⽹站其他⻚⾯不需要重新登录。

(2)Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。
(3)相对来说 Session 安全性更⾼。如果要在Cookie 中存储⼀些敏感信息,不要直接写⼊ Cookie 中,最好能将 Cookie 信息加密然后使⽤到的时候再去服务器端解密。
(4)最大的区别在于生存周期,Session是IE启动到IE关闭,浏览器页面一关 ,session就消失了。Cookie是预先设置的生存周期,或永久的保存于本地的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值