概述

最近对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(超文本缓存协议)

《http权威指南》读书笔记18的更多相关文章

  1. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  2. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

  3. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  4. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  5. Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

    一:CPU 1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比. 系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比.系统态CPU高意味着共享资源有竞争或者I/O设备之间 ...

  6. Hadoop权威指南读书笔记

    本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系 ...

  7. JS权威指南读书笔记(七)

    第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义     a 事件类型(event type)     b 事件目标(event target) target ...

  8. JS权威指南读书笔记(六)

    第十五章 脚本化文档   1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...

  9. JS权威指南读书笔记(二)

    第四章 表达式和运算符 1 new调用构造函数的过程     a 创建一个新的空对象     b 设置空对象的_proto_指向构造函数原型prototype     c 将这个新对象当做this的值 ...

  10. JS权威指南读书笔记(一)

    第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.   第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...

随机推荐

  1. Visual Studio Installer 设置属性简介

    1. 创建安装项目 2.创建项目完成之后,具体各类操作和文件的添加需要自行设置 2.1文件系统 针对文件安装位置,内容进行设置.包括文件,项目输出,程序集 2.2.文件类型(不常用) 设置文件后缀名 ...

  2. 使用QML绘制界面

    1 使用QML设计登录界面 https://www.cnblogs.com/bhlsheji/p/5324871.html 2 使用QML实现下拉列表框  https://blog.csdn.net/ ...

  3. Python3 单下划线_双下划线__开头

    Python 中,下划线对解释器有特殊的含义,而且是内建标识符所使用的符号,使用时要多加留意. 在 Python3 的面向对象中,双下划线开头的变量和方法表名为私有变量和私有方法. __private ...

  4. 结巴分词的stopword.txt

    1. read the stop words to a list: stopwords = [line.strip() for line in open('d:/stopword.txt','r'). ...

  5. docker_sd

    docker exec --user jovyan -d jupyter nohup jupyter nbconvert --ExecutePreprocessor.timeout=-1 --Code ...

  6. cpptest测试总结

    项目继续,持续新增中-- 桩函数设置 桩 (函参指针赋值) √:fun(*p) { for(int i = 0; i<6; i++) p[i] = 10; } ×:fun(*p) { for(i ...

  7. jQuery实现简单的五星好评

    最近一直在认真的努力工作,今天工作完成得差不多了,比较轻松点,在工作中有遇到用jq实现五星好评功能,觉得简单又有用,所以空闲时间就想分享出来. css部分: <style> .u_star ...

  8. 去掉"You are running Vue in development mode"提示

    vue项目中报错: You are running Vue in development mode.Make sure to turn on production mode when deployin ...

  9. win10 64位 安装scrapy

    在学习python时,不可避免下载了Anaconda,当我打算写爬虫时,urllib,requests,selenium,pyspider都已经安装好了,可以直接使用了,但是有一天我想要使用scrap ...

  10. c# 将object尝试转为指定对象

    主方法: /// <summary> /// 将object尝试转为指定对象 /// </summary> /// <param name="data" ...