http协议总览(前端建议收藏)

http解释

全称"超文本传输协议" ,解释以下前端

  • 超文本 指代text,video,image 等二进制文件
  • 传输 顾名思义用于传输数据
  • 协议 互联网中最基础的协议,是一切协议的基础,几乎均可以与其搭上关系

http协议的优缺点

  1. 明文, 便可感知的,整个传输对于客户端可见,对于开发者是优势,方便调试,诸如抓包以及谷歌的调试工具。对于黑客来讲是优势,对于用户是缺点,诸如公共场合的黑wifi
  2. 无状态 即每次请求都要从新向服务器确认身份,自己是无感知的,直至后期加入了cookie,才有改善
  3. 扩展性强 因为http协议只是一个基础规范,因此不少协议能够在他的基础上添砖加瓦 ,自己http协议只是规定了 请求方式+header+body 大体框架

http的链接方式

http链接的发展历程以及缘由webpack

  1. 短链接(目前基本已基本为长链接)
  • 短链接每一次链接都须要经历TCP的三次握手,才能与服务器保持关联,而这种方式无疑加大了服务器的压力,每一次链接都是很是昂贵的
  1. 长链接
  • 长链接的原理是在例如nginx上,设置一个响应时间,在这个时间段服务器都会与客户端保持关联,不会像短连接同样请求一次就要经历TCP三次握手的过程,此操做大大减小了服务器的压力
  1. 双向通讯webSocket

在没有出现webSocket以前,仅能使用轮询的方式不断发起请求,十分费力不讨好,webSocket是将TCP请求假装成HTPP请求的作法,保证服务端能够向客户端主动发送数据nginx

cookie对于http协议的意义

  • 对于服务器而言更像是让他有了记忆功能,不用每次请求都要去确认用户身份,带上cookie就可让他知道这次用户是什么身份。诸如前端的seeion等浏览器存储是让方式更加多种多样,结果都是让服务器能够记住访问者的身份

http代理

http代理是对http请求扩展性强的一次很好的解释,是对http请求"请求-应答"模型的扩展,对于代理服务器,客户端视他为服务端,对于真实服务器而言,代理服务器则为客户端web

  • 代理流程

avatar

常规流程

avatar

优化http请求之客户端

  • 已知数据大小
  1. zip压缩
  • 通常前端的webpack都会对文本使用zip压缩,会有更好的效果,对音频,视频则效果不大
Response Headers:{
	 Content-Encoding:gizp
	}
复制代码
  1. 分块传输
  • 数据过大,服务端采用分片传输,记录切片的数量以及切片索引,前端计算后传输给后端
Transfer-Encoding: chunked
复制代码

http缓存加速

  • 初次请求会耗时较久,当浏览器发现缓存中没有数据,会对服务器发起请求,如数据过期,或者设置的"max-age"到期,则从新发起请求,若缓存中已有数据,则不会额外发起请求减缓服务器压力后端

  • 服务端可设置浏览器

max-age:no-store:不容许缓存,用于某些变化很是频繁的数据,例如秒杀页面;
max-age:no-cache:它的字面含义容易与 no-store 搞混,实际的意思并非不容许缓存,而是能够缓存,但在使用以前必需要去服务器验证是否过时,是否有最新的版本;
max-age:must-revalidate:又是一个和 no-cache 类似的词,它的意思是若是缓存不过时就能够继续使用,但过时了若是还想用就必须去服务器验证。

复制代码
相关文章
相关标签/搜索