【HTTP】无状态协议和Cookie

 Pala   2018-10-08 17:31   24 人阅读  0 条评论

无状态以及无状态的优缺点

面试经常被问及的一道题目是,HTTP是有状态的吗?

HTTP是一种不保存状态的协议。

什么是无状态呢?

其实就是两次请求是相互独立的,不会记住上一次请求了啥。协议对于发送过的请求或响应都不做持久化处理。

使用 HTTP 协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。

HTTP优点:简单,可以减轻服务器的压力;

HTTP缺点:虽然协议本身很简单,但是这就会让业务变得复杂。比如登录过百度,但是跳转到其他页面后,也要继续保持登录状态怎么办呢?

使用cookie技术来管理状态。


持久链接

HTTP底层是基于TCP的,TCP的三次握手,四次挥手我们都很熟悉。持久连接很好理解,最开始HTTP诞生之初,因为HTTP连接是每一次都要建立连接的。随着需要传输的东西越来越大,建立连接的开销就很大,于是人们在HTTP/1.1中就使用了持久连接的方法。
特点:只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
优点:

  • 减少TCP连接重复的开销,减轻服务端的负载。

  • web页面加载速度变快。

11.png


管线化

实际上就是并发。管线化技术出现之后,可以同时并行发多个请求,而不需要一个接一个地等待响应。

12.png

Cookie状态管理

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的
首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器
发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出
去。服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一
个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前
的状态信息。Cookie是保存在客户端的,类似于钥匙打开房间的门。


本文地址:http://chenxm.cc/post/728.html
温馨提示:文章内容系作者个人观点,不代表陈新明对观点赞同或支持。
版权声明:本文为转载文章,来源于 Pala ,版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?