说道Cookie,你喜欢吃饼干吗?

这里的Cookie不是饼干=_=

HTTP不对请求和响应的通信状态进行保存,所以被称为无状态协议,为了保持状态和协议功能引入了Cookie技术

Cookie技术在请求和响应报文中写入Cookie信息来控制客户端的状态

Cookie根据从服务器发送的请求报文内的一个叫Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再访问该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后再发送

服务器发现客户端发送的Cookie后,会检查究竟是从哪个客户端发送的连接请求,然后对比服务器的记录,最后得到之前的状态请求


没有Cookie信息下的请求


第二次以后(存有Cookie信息状态)的请求


请求报文(没有Cookie)

GET /reader/HTTP/1.1

Host:hackr.jp    //首部字段里没有Cookie信息


响应报文(服务器端生成Cookie信息)

HTTP/1.1 200 OK

Date:Thu, 12 Jul 2012 07:12:20 GMT

Server:Apache

<Set-Cookie: sid = 1342077140226724;path = 1;expires = wed, => 10-oct-12 07:12:20 GMT>

Contect-Type:text/plain;charset = UTF-8


请求报文(自动发送Cookie信息)

GET/images/HTTP/1.1

Host:hackr.jp

Cookie:sid = 1342077140226724


以上事例也说明了HTTP报文的实体可以省略


 //本系列教程基于《图解HTTP》,此书国内各大购物网站皆可购买


 转载请注明出处  by:M_ZPHr

 最后修改日期:2019-02-03

#WEB安全基础 : HTTP协议 | 0x8 HTTP的Cookie技术的更多相关文章

  1. #WEB安全基础 : HTTP协议 | 文章索引

    本系列讲解WEB安全所需要的HTTP协议 #WEB安全基础 : HTTP协议 | 0x0 TCP/IP四层结构 #WEB安全基础 : HTTP协议 | 0x1 TCP/IP通信 #WEB安全基础 : ...

  2. #WEB安全基础 : HTTP协议 | 0x0 TCP/IP四层结构

    学完HTML/CSS了? 做了这么多网页,但是你知道它们是怎么工作的吗? 作为你的朋友,我也对这些东西感兴趣,在写博客的同时也在和你一起学. 废话少说,进入正题 网络中的通信包括两个端分别为:客户端( ...

  3. #WEB安全基础 : HTTP协议 | 0x13 不安全的HTTP

    HTTP作为一个大规模使用的网络协议就真的安全了吗? 我们知道互联网为什么叫互联网,你可以在任何地方都可以与之相连,所以在这些可以连接的点上都可以获取互联网的部分信息. 那么HTTP通信时有什么缺点吗 ...

  4. #WEB安全基础 : HTTP协议 | 0x12 MIME多用途邮件扩展以及多部分对象集合

    我们是怎么让邮件里又有图片又有文字的? 文字和图片是两个不同的类型,而邮件又是一个类型. C语言的结构体允许用户定义一个含有多类型的自定义类型 像这样,看不懂没关系,你只要知道邮件里有多个类型就可以了 ...

  5. #WEB安全基础 : HTTP协议 | 0x16 HTTPS:加密的秘密

    公开秘钥加密&&共享秘钥加密 这两个冗长的短语,让我拿什么理解? 我们知道HTTPS有加密功能,以上的两个短语很常用.先摆在这,接下来开始尝试理解它们. 共享秘钥加密(对称秘钥加密): ...

  6. #WEB安全基础 : HTTP协议 | 0x15 HTTPS:给你点颜色看看

    "你好,我是HTTPS,我只是披了个外壳,我还是原来的HTTP." 这是HTTPS叫我转达给你的话. HTTPS本质上就是HTTP,只不过加了点调料.它比HTTP更安全,使用了加密 ...

  7. #WEB安全基础 : HTTP协议 | 0x10 扩展HTTP报文结构概念和内容编码

    #以后的知识都是HTTP协议的扩展,如果精力有限可以选择暂时忽略,注意只是暂时忽略,以后的东西同样重要 HTTP传输数据时可以直接传输也可以对数据进行编码,由于编码在计算机内运行,所以会占用一些CPU ...

  8. #WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部

    你需要认识一些常见的头部以及了解报文的详细结构 请求报文的请求行 GET/HTTP/1.1 响应报文的响应行 HTTP/1.1 200 OK 想必这些大家都知道了 请求 我访问一个页面 Host // ...

  9. #WEB安全基础 : HTTP协议 | 0x1 TCP/IP通信

    TCP/IP是如何通信的呢? 请看图 用TCP/IP协议族通信时,会通过分层顺序与对方进行通信.发送端从应用层往下走,接受层从链路层往上走. 客户端为了浏览界面在应用层发送请求,为了方便传输在传输层的 ...

随机推荐

  1. 外盘持仓盈亏何时推送---ITapTradeAPINotify::OnRtnPositionProfit

    易盛外盘提供了一个可以直接获取持仓盈亏的函数,这个比CTP方便多了 virtual void TAP_CDECL ITapTrade::ITapTradeAPINotify::OnRtnPositio ...

  2. Win8.1,windows10部署 .NET Framework 3.5 安装方式汇总

    .NET Framework,操作系统安装过程中默认安装 .NET Framework 4.5.1.如果程序需要.NET Framework 3.5支持,将自动启用相关功能. 注意: 1. .NET ...

  3. jenkins GitHub 自动触发

    jenkins GitHub 自动触发 转载请注明出处: 转载自Bin's Blog:  jenkins GitHub 自动触发( http://www.wenbin.cf/post/54/ ) 需要 ...

  4. python中MetaClass的一些用法

    元类在很多编程语言中都有这样的概念,我们都知道,类可以创建对象,类本身也是对象,既然是对象,那么它肯定也是被创造出来的,元类就专门用来创造类对象,于是,这就给我们提供了一种操纵或者监听类的能力. 平时 ...

  5. git报错You are not allowed to force push code to a protected branch on this project

    当我们有时候回滚了代码,想强制push到远程仓库的时候, git push origin --force 会报如下错误: You are not allowed to force push code ...

  6. MySQL命令学习

    上面两篇博客讲了MySQL的安装.登录,密码重置,为接下来的MySQL命令学习做好了准备,现在开启MySQL命令学习之旅吧. 首先打开CMD,输入命令:mysql -u root -p  登录MySQ ...

  7. 使用Python启动一个简单的服务器

    在 Linux 服务器上或安装了 Python 的机器上,Python自带了一个WEB服务器 SimpleHTTPServer,我们可以很简单的使用  python -m SimpleHTTPServ ...

  8. mac更改launchpad图标大小

    设置每列显示的图标数目为8 defaults write com.apple.dock springboard-columns -int 8设置每行显示的图标数目为7 defaults write c ...

  9. 远程连接服务器影像文件进行服务发布以及问题解决【the data item is inaccessible】

    场景模拟: 本机安装有arcgis desktop以及arcgis server10.1,server的站点账号为arcgis. 需要发布影像服务并进行切片,使用的影像数据存放在远程服务器上,影像较大 ...

  10. Sublime Text 3 3143 注册码和遇到的PyV8无法下载问题

    packagecontrol官网:https://packagecontrol.io/installation sublime安装之后,安装Package Control管理插件. sublime3 ...