注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

Http无状态的协议见解  

来自马威Max   2016-03-22 20:40:10|  分类: 默认分类 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http总的来说是一个属于应用层面的协议,Http有四个重要的特写:
1,支持客户\服务器模式
2,快速灵活
3,无连接
4,无状态


这里就详述下3,4两条

无连接
无连接就是后台服务器每次只处理一个http请求,因此服务器需要处理同时面向整个互联网范围内数以万亿的连接访问,但是每次前端请求与后台服务器的交互数据间歇性比较大,且两次传送的数据关联性很低,所以大部分通道实际上时空闲,无端占用资源,因此为了最大限度的利用网络资源,Http协议涉及成请求时建立连接、请求完成后释放连接,以求尽快释放出资源应对其他请求访问
 

KeepAlive
我们经常在chrome的控制台上抓包看到这个Connection:Keep-Alive 
Keep-Alive功能是让客户端和服务器端的连接持续有效,当出现对服务器的后续请求时,Keep-Alive则可以避免建立或者重新建立连接,市场上的大部分web服务器都是支持的Keep-Alive的,对一些静态内容较多的网站,这样可以减轻建立连接所耗的资源


无状态
指的是http协议对事务处理是没有记忆能力,服务器不知道这个http的请求状态,也就是服务器接收到请求后,做相应的数据处理,并返回数据,自身不会记录任务业务信息。那么也就意味着所有的请求是相对独立的,那么这到底是优点还是缺点呢?

优点:
服务器相对灵活的去处理各请求,不会记录状态来自哪个用户,来自什么浏览器,一视同仁的去处理

缺点:
Http的信息由于是无状态,所以需要cookie信息去承载内容信息,这样每次的请求头中会带有冲虚的信息数据

由于http的无状态特性,我们则可以mock请求去模拟http请求访问后端接口逻辑,并得到真实的反馈数据,另一种说法仿造了一个http请求欺骗了服务器去处理这个非真实用户的请求(但是对于服务器来说都是一样的http请求)

那么从网易100分的项目来解释这个mock过程

1,用户用URS账号登录网易100分
Http无状态的协议见解 - 网易杭州QA - 网易杭州 QA Team
 
 
2,后台服务器接收到请求后,并验证通过后,在返回的cookie信息写入以下三个包含用户信息及持久对话的cookie

Http无状态的协议见解 - 网易杭州QA - 网易杭州 QA Team
3,本地服务器接收到这个返回的HttpResponse,获取返回消息的消息头中消息
则在本地浏览器写下cookie文件,并设定的相应的expiredDate
Http无状态的协议见解 - 网易杭州QA - 网易杭州 QA Team
4,再后续的所有访问网易100分网站的请求会自动带上cookie信息(包含用户信息及session信息)

Http无状态的协议见解 - 网易杭州QA - 网易杭州 QA Team

5,由此我们在mock数据时模拟登录的请求,并记录在本地Cookie,并在访问后续的所有接口时,在Http的Header上加入Cookie信息,
对于后台的服务器来说此请求时真实的用户业务访问请求,并给予相应的数据处理并返回。

注意点:也正由于http的无状态,决定了一旦模拟了用户的cookie信息(如果知道后台的加密逻辑和cookie处理逻辑),恶意攻击者便可以利用http无状态的性质请求而已的请求攻击后台服务器,所以如何强化网站后台的安全防护也是网站开发的重要环节(尤其是有大量用户数据或者现金交易数据的业务)
  评论这张
 
阅读(264)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016