码迷,mamicode.com
首页 > Web开发 > 详细

http协议

时间:2015-09-02 13:18:37      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

一、http请求流程

技术分享

用户:

  1. 填写要请求的参数(url、method等等)

浏览器:

  1. 补充部分http关键参数(cookie)、浏览器能力参数(Accept、Accept-Encoding、User-Agent)以及用户未填写参数的默认值(cache-control、proxy-connection)
  2. 缓存

代理服务器:

  1. 安全管理 
  2. 权限控制
  3. 缓存

 

二、缓存

  缓存既可以降低服务器压力,又节省带宽,而且还可以降低服务器峰值压力(突然出大事,很多人都想上同一网站)

  缓存的拓扑结构:浏览器有缓存 --〉 浏览器缓存不中,去低层次代理服务器缓存 -->低层次代理服务器缓存不中,再去高层次代理服务器缓存 --〉 .......

  程序如何控制缓存?

    服务器方面: 通过在response中添加expires/cache-control: max-age,设置文档的过期时间

    客户端方面:  通过pragma: no-store/no-cache等方式限制从缓存拿文件响应

 

三、连接

有三种方式:

  1、独立事务型 (connection: close)

    每次request/response都是一个独立的连接。服务器读到内容结束,就表示是全部的内容/网络中断了。

    但显然效率低

  2、持久连接型 (connection: keep-alive)

    现在浏览器默认都是这种,要求Http1.0以上版本。 需要特别指定content-length属性,服务器才能知道多长一段就是一个消息内容。

    效率高,一般服务器会限制每个用户最多只有4个持久连接

  3、分块传输 (Transfer-Encoding: xxx)

    用于当页面内容是动态生成,那么完全生成之前,服务器是无法知道内容的content-length的。只好一段段发送,但是每段的length是需要标明。

 

四、用户识别

有几种方式:

  1、ip  缺点是ip是动态的;而且多个用户可能共用一个电脑/ip

  2、user-agent  判断浏览器类型

  3、用户名  需要用户登录

  4、cookie  淘宝在未登陆状态下的购物车

 

五、

 

 

 

 

http协议

标签:

原文地址:http://www.cnblogs.com/johnchow/p/4778236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!