概述

最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。

重定向和负载均衡

1.http应用程序总是要做下列3件事:

  • 可靠地执行http事务;
  • 最小化时延;
  • 节约网络带宽。

2.http重定向的过程:

  • Alice向www.joes-hardware.com发送一条请求。
  • 服务器没有回送带有http状态码200的web页面主体,而是回送了一个带有状态码302的重定向报文。
  • 浏览器会用重定向URL重新发送请求,这次会发送给主机161.58.228.45。(另一个客户端可能会被重定向到另一台服务器上去,比如Bob的请求可能会被重定向到161.58.228.46)

3.http重定向有以下缺点

  • 需要原始服务器进行大量处理来判断要重定向到哪台服务器上去。
  • 增加了用户时延,因为访问页面时要进行两次往返。
  • 如果重定向服务器出故障,站点就会瘫痪。

4.DNS重定向:每次客户端访问网站时,都必须将域名解析为IP地址,DNS解析程序可能是客户端自己的操作系统,可能是客户端网络中的一台DNS服务器,或者是一台远距离的DNS服务器。

5.DNS轮转:为了使web服务器集群平衡负载,DNS主机名解析经常用到DNS轮转。大多数DNS客户端只会使用多地址集中的第一个地址,为了均衡负载,大多数DNS服务器都会在每次完成查询之后对地址进行轮转。

6.由于单个客户端的缓存的存在,DNS轮转通常都不会平衡单个客户端的负载——一个客户端通常会在很长时间内连接到一台服务器上。

7.除了DNS轮转,还有其它DNS的重定向算法

  • 负载均衡算法。(每次都将负载最轻的web服务器放在列表的最前面)
  • 邻接路由算法。(DNS服务器会尝试将用户导向最近的web服务器)
  • 故障屏蔽算法。(DNS服务器会绕过出现服务终端或其他故障的服务器。)

8.怎么重定向到某个代理上去呢:

  • 显式的浏览器配置。(在浏览器中配置代理,缺点是如果代理崩了,用户就会遇到连接方面的问题,而且每次修改代理都需要修改浏览器配置)
  • 代理自动配置。(使用PAC文件,里面有每个URL所关联的代理,这个PAC文件不是配置而是动态获取的)
  • 透明拦截。

9.缓存代理服务器重定向:

  • WCCP重定向
  • ICP(因特网缓存协议)
  • CARP(缓存阵列路由协议)
  • HTCP(超文本缓存协议)

最新文章

  1. nginx 虚拟主机基于端口的搭建
  2. iOS——Core Animation 知识摘抄(三)
  3. pragma伪指令
  4. 自动化中的PageObject思想
  5. Android Studio 导入Eclipse工程
  6. 组件接口(API)设计指南-文件夹
  7. jquery奇怪的问题
  8. C#中各种计时器 Stopwatch、TimeSpan
  9. windows程序设计 Unicode和多字节之间转换
  10. Spring tokenizeToStringArray
  11. df换行问题解决
  12. 使用Puppeteer进行数据抓取(四)——图片下载
  13. LR中,URL -based script与HTML -based script区别
  14. UVa 1343 旋转游戏(dfs+IDA*)
  15. 不同的路径12障碍物 · Unique Paths12
  16. 关于数据区间变换及numpy数组转图片数据的python实现
  17. c# 修改pdf
  18. Insubstantial 6.2 Release
  19. c3p0连接不上sql server
  20. 判断数A和数B中有多少个位不相同

热门文章

  1. 基于Linux环境,创建PHP后台守护进程(转载)
  2. Go 学习
  3. 24. pt-slave-find
  4. dotNet程序员的Java爬坑之旅(三)之spring MVC篇一
  5. python3 调用 Linux 脚本
  6. 支付宝app对接的坑
  7. java37
  8. git服务搭建以及本地连接
  9. Python从入门到精通之Second!
  10. 移动端各种滚动场景需求的插件better-scroll