1、HTTP无状态协议

首先看百度百科给出的定义:

HTTP无状态协议,是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,

这样导致可能每次连接传送的数据量增大。另一方面,在的服务器不需要先前信息时它的应答较快。

无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求

无状态原因:浏览器与服务器是使用socket套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的socket连接,而且服务器也会在处理页面完毕之后销毁页面对象。

2、简介

客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,登录状态、购物车都需要知道用户做了什么。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个是Session。HTTP本身是无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了。

也就是说实现状态保持主要有两种方式:

  • 在客户端存储信息使用Cookie
  • 在服务端存储信息使用Session

总结:

无状态协议:

  1. 协议对于事务处理没有记忆能力
  2. 对同一个url请求没有上下文关系
  3. 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求时无直接关系的,它不会受前面的请求应答情况直接影响;也不会直接影响后面的请求应答情况。
  4. 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去氢气服务器
  5. 人生若只如初见

http无状态协议,cookie和session详解(一)的更多相关文章

  1. HTTP协议-Cookie和Session详解

    前言: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的跟踪技术就是Cookie和Session. Cookie通过在客户端记录信息确定用户身份,Session通过在 ...

  2. 《图解HTTP》读书笔记(三:无状态协议/cookie管理状态)

    HTTP是一种不保存状态,即无状态(stateless)协议.HTTP协议自身不对请求和响应之间的通信状态进行保存. ——HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Co ...

  3. Cookie与Session详解

    来源:<PHP核心技术与最佳实践> 列旭松 陈文 著 Cookie与Session详解读书笔记,从概念.操作.应用.注意事项以及区别等几方面详细阐述两者的基础知识,它们都是针对HTTP协议 ...

  4. cookie和session详解

    cookie和session的区别 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来.当下次你再光临同 ...

  5. php之Cookie与Session详解

    Cookie管理 Cookie是在HTTP协议下,通过服务器或脚本语言可以维护客户浏览器上信息的一种方式,Cookie的使用很普遍,许多提供个人化服务的网站都是利用Cookie来区别不同用户,以显示与 ...

  6. cookie和session详解[转]

    文章链接: http://aijezdm915.iteye.com/blog/1272530 cookie.session 都是用来保存用户状态信息的一种方法或手段 二者主要区别是:         ...

  7. 会话技术cookie和session详解

    什么是会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话技术解决了什么问题 每个用户与服务器进行交互的过程中,各自会有一 ...

  8. Java Web(三) 会话机制,Cookie和Session详解

    很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...

  9. Java Web(三) 会话机制,Cookie和Session详解(转载)

    https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...

随机推荐

  1. keil5到iar8的使用配置迁移

      1.关于头文件的包含. keil: ALT+F7——>C/C++ IAR:ALT+F7——>C/C++ Compiler——>Preprocessor,(高版本汇编需要包含的头文 ...

  2. sql批量新增,修改

    <insert id="insertExtDocList" parameterType="map"> INSERT INTO extprjdoc ( ...

  3. C++: find()函数的注意事项

    头文件: <algorithm> iterator find(iterator it1, iterator it2, &T);

  4. jquery复制值到剪切板(clipboard.js)

    引入一个clipboard.js文件即可使用,下载地址:https://github.com/zenorocha/clipboard.js <script type="text/jav ...

  5. openXML设置Excel行组合

    重要代码: row = new DOS.Row() { RowIndex = new DOX.UInt32Value(rowIndex), Spans = new DOX.ListValue<D ...

  6. _ZNote_Qt_按钮增加图片

    给Button添加图片方法 有三种 一 : 用代码添加 QPushButton *findBtn = new QPushButton(this); //创建按钮 QIcon ico (":/ ...

  7. 《Node.js高级编程》之Node 核心API基础

    Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...

  8. IO在Socket中的应用

    一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个连接 ...

  9. 【webpack】-- 自动刷新与解析

    前端需要频繁的修改js和样式,且需要根据浏览器的页面效果不断的做调整:而且往往我们的开发目录和本地发布目录不是同一个,修改之后需要发布一下:另外一点就是并不是所有的效果都可以直接双击页面就能看到,我们 ...

  10. Android UID 机制

    UID一般理解为User Identifier,在linux中就是用户的ID,表明是哪个用户运行了这个程序.它们主要用于权限的管理. 而在Android 中又有所不同,因为Android为单用户系统, ...