Http是无状态、无连接的是什么意思?

无连接

无连接的含义:是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

Keep-Alive 功能(长连接):使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive 功能避免了建立或者重新建立连接。但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留打开的连接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。

  • 这样一来,客户端和服务器之间的 HTTP 连接就会被保持,不会断开(超过 Keep-Alive规定的时间,意外断电等情况除外),当客户端发送另外一个请求时,就会复用这条已经建立的连接。
无状态

无状态是指:协议对于事务处理没有记忆能力。即我们给服务器发送 HTTP 请求之后,服务器会给我们响应数据过来。但是,响应完结束后,服务器不会记得刚才请求了什么,还有响应过什么。

缺点:缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快,简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。

HTTP 无状态的特性严重阻碍了某些交互的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持 HTTP 状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。


Cookie——Cookie数据放在浏览器中。通过浏览器来保持状态的。

Cookie:可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

Cookies 最典型的应用是:判定注册用户是否已经登录网站(进而达到下一次登陆时,免去重新输入登陆的操作),用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookies 的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookies,以便在最后付款时提取信息。

Cookies的应用原理:就是,服务器为客户创建一个唯一识别码,并以此为索引在服务器的后端数据库中产生一个项目,就这在给客户的响应报文中添加一个叫做Set-cookie的首部行,将这个唯一识别码发送给客户,客户收到响应后,浏览器会在他管理的cookie文件中添加一行关于这个的信息,这样当客户继续访问此网站时,浏览器就会从cookie文件中取出这个网站的识别码,并放到http请求报文的cookie首部行中,这样这个网站就可以跟踪用户在该网站的活动了。

应用:免登陆操作、、、购物车功能。


Session——数据存在服务器当中,通过服务器来保持状态的
  • 当客户端访问服务器时,服务器根据需求设置 Session,将会话信息保存在服务器上,同时将标示 Session 的 SessionId 作为cookie信息 响应给客户端浏览器浏览器将这个 name为sessionId的Cookie保存在客户端的内存中。浏览器关闭后,浏览器占用内存释放,这个内存中的Cookie信息就会 就会被清掉,它不会跟普通的Cookie一样存 在于用户的 Cookie 临时文件中。

  • 浏览器没有关闭期间,以后浏览器每次请求都会额外加上这个参数值,服务器会根据这个 SessionId,就能取得保存了客户状态的数据信息。

  • 如果客户端浏览器意外关闭,服务器保存的 Session 数据不是立即释放,此时数据还会存在,只要我们知道那个 SessionId,就可以继续通过请求获得此 Session 的信息,因为此时后台的 Session 还存在。当然我们可以设置一个 Session 超时时间,一旦超过规定时间没有客户端请求时,服务器就会清除对应 SessionId 的 Session 信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值