Http协议的特点

node day09随堂笔记

HTTP协议的特点:

  • 无状态:是指协议对于事物处理没有记忆功能,也就是说,对于服务端来讲,他不关心客户端是谁,他只关心请求,请求来了服务端就响应,响应完了谁也不认识谁,这种特性严重阻碍了需要客户端与服务端进行动态交互的web应用程序的实现,所以呢,cookie和session这种用户保持HTTP连接状态的技术就应运而生了,就是为了解决这个缺陷的。
  • cookie:通过客户端来保持状态的解决方案(供服务端存储数据)
    • 以域名的形式进行区分
    • 具体时效性,过期之后会被浏览器自动删除,如果你不设置过期时间,那么默认情况下会在关闭浏览器时删除
    • 特别要注意:在发送请求的时候会自动携带到请求头中一并发送给服务端
    • 交互流程:客户端请求服务端(携带请求数据) ==> 服务端响应客户端(在响应头中携带需要被客户端保存的cookie数据) ==> 客户端接收服务端响应(保存cookie数据,存盘,磁盘中) ==> 客户端再次发送请求的时候(自动在请求头中携带已有的cookie数据) ==> 服务端接收客户端请求(从请求头中获取cookie数据),后面的流程同上。。。
  • session:通过服务端来保持状态的解决方案(供客户端存储数据)
    • 是服务端为客户端开辟的存储空间,在其中保存数据
    • 也有时效性,服务端重启时会失效
    • 很重的一点,他是基于cookie来实现的,会将生成的sessionId以cookie的形式保存在客户端中
    • 交互流程:客户端请求服务端(携带请求数据) ==> 服务端接收请求(给你开辟一个存储空间,用来保存你的数据,实际上就是创建session,并为之生成一个唯一的id,也就是sessionId) ==> 服务端响应客户端(在响应头中携带包含sessionId的cookie数据) ==> 客户端接收响应(从响应头中获取cookie数据,并存盘) ==> 该客户端再次发送请求的时候(会自动在请求头中携带cookie数据,其中就包含了sessionId) ==> 服务端再次接收请求的时候(从请求头的cookie中获取sessionId,然后根据sessionId获取对应的session,也就是存储空间,从而获取其中保存的数据)

你可能感兴趣的:(Http协议的特点)