1. 早期的HTTP协议使用短连接,收到响应后就立即关闭连接,效率很低;
  2.   HTTP/1.1默认启用长连接,在一个连接上收发多个请求响应,提高了传输效率;
  3.   服务器会发送“Connection:    keep-alive”字段表示启用了长连接;
  4.   报文头里如果有“Connection:    close”就意味着长连接即将关闭;
  5. 过多的长连接会占用服务器资源,所以服务器会用一些策略有选择地关闭长连接;
  6. “队头阻塞”问题会导致性能下降,可以用“并发连接”和“域名分片”技术缓解
  7. 重定向
    1. 重定向是服务器发起的跳转,要求客户端改用新的URI重新发送请求,通常会自动进行,用户是无感知 的;
    2. 301/302是最常用的重定向状态码,分别是“永久重定向”和“临时重定向”;
    3. 响应头字段Location指示了要跳转的URI,可以用绝对或相对的形式;
    4. 重定向可以把一个URI指向另一个URI,也可以把多个URI指向同一个URI,用途很多;
    5. 使用重定向时需要当心性能损耗,还要避免出现循环跳转。
  8. HTTP的Cookie机制
    1. Cookie是服务器委托浏览器存储的一些数据,让服务器有了“记忆能力”; 
    2.  响应报文使用Set-Cookie字段发送“key=value”形式的Cookie值;
    3.   请求报文里用Cookie字段发送多个Cookie值; 
    4. 为了保护Cookie,还要给它设置有效期、作用域等属性,常用的有Max-Age、Expires、Domain、 HttpOnly等;
    5. Cookie最基本的用途是身份识别,实现有状态的会话事务。
  9. HTTP的缓存控制
    1.  缓存是优化系统性能的重要手段,HTTP传输的每一个环节中都可以有缓存;
    2.   服务器使用“Cache-Control”设置缓存策略,常用的是“max-age”,表示资源的有效期;
    3. 浏览器收到数据就会存入缓存,如果没过期就可以直接使用,过期就要去服务器验证是否仍然可用;
    4. 验证资源是否失效需要使用“条件请求”,常用的是“if-Modified-Since”和“If-None-Match”,收到 304就可以复用缓存里的资源;
    5.     验证资源是否被修改的条件有两个:“Last-modified”和“ETag”,需要服务器预先在响应报文里设 置,搭配条件请求使用;
    6.    浏览器也可以发送“Cache-Control”字段,使用“max-age=0”或“no_cache”刷新数据。
    7. HTTP缓存看上去很复杂,但基本原理说白了就是一句话:“没有消息就是好消息”,“没有请求的请求, 才是最快的请求。
  10. http代理
    1.  HTTP代理就是客户端和服务器通信链路中的一个中间环节,为两端提供“代理服务”; 
    2.  代理处于中间层,为HTTP处理增加了更多的灵活性,可以实现负载均衡、安全防护、数据过滤等功能; 
    3.  代理服务器需要使用字段“Via”标记自己的身份,多个代理会形成一个列表;
    4.   如果想要知道客户端的真实IP地址,可以使用字段“X-Forwarded-For”和“X-Real-IP”; 
    5.  专门的“代理协议”可以在不改动原始报文的情况下传递客户端的真实IP
  11. HTTP的缓存代理
    1. 计算机领域里最常用的性能优化手段是“时空转换”,也就是“时间换空间”或者“空间换时间”, HTTP缓存属于后者; 
    2. 缓存代理是增加了缓存功能的代理服务,缓存源服务器的数据,分发给下游的客户端;
    3. “Cache-Control”字段也可以控制缓存代理,常用的有“private”“s-maxage”“no-transform”等, 同样必须配合“Last-modified”“ETag”等字段才能使用;
    4. 缓存代理有时候也会带来负面影响,缓存不良数据,需要及时刷新或删除
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

http连接,缓存,cookie,重定向,代理的更多相关文章

  1. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  2. Java-HTTP连接时如何使用代理(二)—— Proxy类方式

    阅读这篇文章之前,请先阅读 Java-HTTP连接时如何使用代理(一)——System.Property方式 除了使用 System.setProperty() 的方式之外,还可使用 Proxy 的方 ...

  3. nginx服务器开启缓存、反向代理

    一.反向代理配置 1.反向代理服务器配置如下 反向代理就是需要这一行proxy_pass来完成.当我们要访问后端web服务器的时候,我们只需要访问代理服务器就可以了,此时代理服务器就充当后端web服务 ...

  4. HTML5 Web缓存&运用程序缓存&cookie,session

    在介绍HTML5 web缓存前,来认识一下cookie和session: session: 由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的. 因此session(会话)出现了,它会 ...

  5. linux配置wifi连接并通过ssh代理开启socks代理

    1, 命令行配置连接wifi具体我是用的cubieboard2上Debian主机,其中配置wifi的命令行有wpa_cli,具体用法步骤如下.wpa_cli 命令行执行需要root权限,详细用法请见 ...

  6. 缓存Cookie、session、localStorage的区别

    cookie Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文 ...

  7. iOS AFNetworking中cookie重定向

    // 1. 取出需要同步的url (登录请求中返回的重定向地址)BESTHttpItem *httpItem = [BESTHttpHelper sharedHelper].curHttpItem;N ...

  8. 使用ssh正向连接、反向连接、做socks代理的方法

     ssh -L 219.143.16.157:58080:172.21.163.32:8080 用户名@localhost -p 10142  在 219.143.16.157机器执行   将ssh隧 ...

  9. websocket连接的后台反向代理问题

    今天要介绍的问题,是一个相对来说比较经典的问题,问题表面看不是很复杂的问题,但是反映出的背后通信逻辑,其实还是比较有意义的. websocket协议是当前绝大部分浏览器都支持的长连接协议,是HTTP协 ...

  10. requests模块的cookie和代理操作

    一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不 ...

随机推荐

  1. 删库吧,Bug浪——我们在同一家摸鱼的公司

    那些口口声声, Bug越来越难写人的,应该盯着你们: 像我一样,我盯着你们,满眼恨意. IT积攒了几十年的漏洞, 所有的死机.溢出.404和超时, 像是专门为你们准备的礼物. 圈复杂度.魔鬼变量.内存 ...

  2. 4W字的后端面试知识点总结(持续更新)

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  3. .NET Core下开源任务调度框架Hangfire

    今天无意中发现了一个很好用的任务调度框架.Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在 .net core的环境中,由Core自带的DI管理着生命周期. 相较于qu ...

  4. 全网最深分析SpringBoot MVC自动配置失效的原因

    前言 本来没有计划这一篇文章的,只是在看完SpringBoot核心原理后,突然想到之前开发中遇到的MVC自动失效的问题,虽然网上有很多文章以及官方文档都说明了原因,但还是想亲自看一看,本以为很简单的事 ...

  5. python之浅谈循环

    目录 流程控制之while循环 语法 while+break while+continue while+else while循环的嵌套 流程控制之for循环 语法 for+break for+cont ...

  6. FTP学习

    FTP服务的使用 一.LVM理论 介绍 FTP用于在Internet 上控制文件的双向传输. FTP的主要作用就是让用户连接一 个远程计算机(这些计算机上 运行着FTP服务器程序) ,并查看远程计算机 ...

  7. CSS通过text-transform实现大写、小写和首字母大写转换

    再日常项目中可能会用到一些特殊的样式,比如大写字母转小写.小写字母转大写.首字母大写等. 可以通过 CSS 的 text-transform 属性来实现: text-transform 转换不同的文本 ...

  8. 转载------一小时包教会 —— webpack 入门指南

    本文写的蛮好,转载地址:http://www.w2bc.com/Article/50764 其他的地址: http://webpack.github.io/docs/usage-with-gulp.h ...

  9. Mybatis源码初探——优雅精良的骨架

    @ 目录 前言 精良的Mybatis骨架 宏观设计 基础支撑 日志 日志的加载 日志的使用 数据源 数据源的创建 池化技术原理 数据结构 获取连接 回收连接 缓存 缓存的实现 CacheKey 反射 ...

  10. 【线型DP】【LCS】洛谷P4303 [AHOI2006]基因匹配

    P4303 [AHOI2006]基因匹配 标签(空格分隔): 考试题 nt题 LCS优化 [题目] 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球 ...