自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用不完的好奇心

前端初学者

  • 博客(103)
  • 问答 (3)
  • 收藏
  • 关注

原创 6.1 代理的概念

Web 代理(proxy)服务器是网络的中间实体。代理位于客户端和服务器之间,扮演“中间人”的角色,在各端点之间来回传送 HTTP 报文。HTTP 的代理服务器既是 Web 服务器又是 Web 客户端。如果要创建自己的 HTTP 代理,就要认真地遵循为 HTTP 客户端和 HTTP 服务器制定的规则。 1. 公共和私有代理公共代理:众多客户端共享的代理。大多数代理都是公共的共享代理。集中式代理的

2020-07-06 01:12:12 322

原创 21.3 命中率测量

原始服务器通常会出于计费的目的保留详细的日志记录。内容提供者需要知道 URL 的受访频率,广告商需要知道广告的出现频率,网站作者需要知道所编写的内容的受欢迎程度。客户端直接访问 Web 服务器时,日志记录可以很好地跟踪这些信息。缓存服务器位于客户端和服务器之间,用于防止服务器同时处理大量访问请求(这正是缓存的目的)。缓存要处理很多 HTTP 请求,并在不访问原始服务器的情况下满足它们的请求,服务器

2017-11-07 12:06:34 439

原创 21.2 日志格式

大部分商用和开源的 HTTP 应用程序都支持以一种或多种常用格式进行日志记录。很多这样的应用程序都支持管理者配置日志格式,创建自定义的格式。应用程序支持管理者使用这些更标准的格式的主要好处之一就在于,可以充分利用那些已构建好的工具处理这些日志,并产生基本的统计信息。有很多开源包和商用包都可用来压缩日志,以进行汇报。使用标准格式,应用程序及其管理员就都可以利用这些包了。1. 常见日志格式现在,最

2017-11-07 12:05:26 4147

原创 21.1 记录内容

几乎所有的服务器和代理都会记录下它们所处理的 HTTP 事务摘要。这么做出于一系列的原因:跟踪使用情况、安全性、计费、错误检测,等等。大多数情况下,日志的记录出于两种原因: 查找服务器或代理中存在的问题(比如,哪些请求失败了);生成 Web 站点访问方式的统计信息。统计数据对市场营销、计费和容量规划(比如,决定是否需要增加服务器或带宽)都非常有用。不应该记录实际上你并不感兴趣,甚至从来都不会

2017-11-07 11:59:14 266

原创 20.4 缓存的重定向方法

1. WCCP 重定向Cisco 系统公司开发的 WCCP 可以使路由器将 Web 流量重定向到代理缓存中去。WCCP 负责路由器和缓存服务器之间的通信,这样路由器就可以对缓存进行验证(确保它们已启动且正在运行),在缓存之间进行负载均衡,并将特定类型的流量发送给特定的缓存了。WCCP 版本 2(WCCP2)是个开放的协议。这里我们会探讨 WCCP2。1. WCCP 重定向工作流程启动包含了一些支持

2017-11-07 11:12:31 708

原创 20.3 代理的重定向方法

可以用 3 种方法来判断 Web 浏览器客户端如何知道要连接到某个代理上去:显式的浏览器配置、动态自动配置、透明拦截。代理可以顺次将客户端请求重定向到另一个代理上去。比如,没有缓存此内容的代理缓存可能会选择将客户端重定向到另一个代理缓存。这样一来,响应就会来自与客户端请求资源的地址不同的另外一个地址,所以,我们还会讨论几种用于对等代理-缓存重定向的协议:ICP、CARP 和 HTCP。1. 显式

2017-11-05 12:44:57 1266

原创 20.2 通用的重定向方法

主要介绍 HTTP 重定向、DNS 重定向、任播寻址、IP MAC 转发以及 IP 地址转发。1. HTTP 重定向Web 服务器可以将短的重定向报文发回给客户端,告诉他们去其他地方试试。有些 Web 站点会将 HTTP 重定向作为一种简单的负载均衡形式来使用。处理重定向的服务器(重定向服务器)找到可用的负载最小的内容服务器,并将浏览器重定向到那台服务器上去。对广泛分布的 Web 站点来说,

2017-11-04 18:43:20 801

原创 20.1 重定向简介

HTTP 并不是独自运行在网上的。很多协议都会在 HTTP 报文的传输过程中对其数据进行管理。HTTP 只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web 代理和缓存的网络世界中,HTTP 报文的目的地不一定是直接可达的。重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。1. 为何要重定向由

2017-11-04 18:39:17 257

原创 19.2 WebDAV 与协作

WebDAV (Web Distributed Authoring and Versioning,分布式写作与版本管理)为 Web 发布增添了新的内容——协作。WebDAV (作为 RFC 2518 发表)专注于对 HTTP 进行扩展,以提供协作写作的适宜平台。1. WebDAV 的方法WebDAV 定义了一些新的 HTTP 方法并修改了其他一些 HTTP 方法的操作范围。WebDAV 新增的

2017-11-03 13:24:23 1254

原创 19.1 FrontPage 服务器扩展

本章将讲解以 HTTP 为基础的两种重要的 Web 内容发布技术:FrontPage 和 WebDAV,重点关注 WebDAV。FrontPage(FP)是微软公司提供的一种通用 Web 写作和发布工具包。1. FrontPage 服务器扩展作为“随处发布”战略的一部分,微软公司发布了一系列服务器端软件,称为 “FrontPage 服务器扩展”,(FPSE)。这些服务器端组件和 Web 服务器

2017-11-03 13:20:50 1433

原创 18.3 服务器集群与 CDN

在下面列出的这些时间段内,网站通常是无法运作的: • 服务器宕机的时候。 • 拥堵:突然的拥堵可以使 Web 服务器过载,降低其响应速度,甚至使它彻底停机。 • 网络中断或掉线。本节会展示一些预判和处理这些常见问题的方法:1. 镜像的服务器集群服务器集群:一排配置相同的 Web 服务器,互相可以替换。每个服务器上的内容可以通过镜像复制,这样当某个服务器出问题的时候,其他的可以顶上。镜

2017-11-02 11:44:09 280

原创 18.2 虚拟主机托管

虚拟主机托管(或称共享主机托管):Web 托管者通过让一些顾客共享一台计算机来提供便宜的 Web 主机托管服务。每个网站看起来是托管在不同的服务器上,但实际上是托管在同一个物理服务器上。从最终用户的角度来看,被虚拟托管的网站应当和托管在专用服务器上的网站没什么区别。托管者可以创建成排同样的服务器,称为服务器集群 (server farm),把负载分摊在群里的服务器上。因为群里的每台服务器都一样,并

2017-11-02 11:43:02 256

原创 18.1 主机托管服务

对内容资源的存储、协调以及管理的职责统称为 Web 主机托管。主机托管是 Web服务器的主要功能之一。保存并提供内容,记录对内容的访问以及管理内容都离不开服务器。如果不想自行管理服务器所需的软硬件,就需要主机托管服务,即托管者。托管者出租服务和网站管理维护业务,并提供各种不同程度的安全级别、报告及易用性。托管者通常把很多网站放在一些强大的 Web 服务器上联合运行,这样可以获得更高的成本效益、可靠

2017-11-02 11:41:05 312

原创 17.2 转码

如果服务器没有能满足客户端需求的文档,服务器可以给出一个错误响应。但理论上,服务器可以把现存的文档转换成某种客户端可用的文档。这种选项称为转码。假设的转码: 有 3 种类别的转码:格式转换、信息综合、内容注入。1. 格式转换格式转换:是指将数据从一种格式转换成另一种合适格式,使之可以被相应的客户端查看。格式转换可以由内容协商首部集来驱动,但也能由 User-Agent 首部来驱动。注

2017-11-01 14:05:14 219

原创 17.1 内容协商技术

同一个 URL 针对不同用户提供不同的资源。比如给英语用户发送英文页面,给中文用户发送中文页面,但用户访问的是同一个 URL。HTTP 提供了内容协商方法,允许客户端和服务器作这样的决定。通过这些方法,单一的 URL 就可以代表不同的资源,这些不同的版本称为变体。对于特定的 URL 来说,服务器还可以根据其他原则来决定发送什么内容给客户端最合适。在有些场合下,服务器甚至可以自动生成定制的页面。比

2017-11-01 14:03:38 364

原创 16.5 注意的问题

1. 首部和不合规范的数据HTTP 首部必须由 US-ASCII 字符集中的字符构成。不过,并不是所有的客户端和服务器都正确地实现了这一点,你可能会时不时收到一些代码值大于 127 的非法字符。很多 HTTP 应用程序使用操作系统和库例程来处理字符(比如 Unix 中的字符分类库 ctype),但不是所有这些库都支持 ASCII 范围(0 ~ 127)之外的字符代码。在某些情况下(一般来说,是

2017-10-31 15:06:19 205

原创 16.4 国际化的 URI

直到今天,URI 还没有为国际化提供足够的支持。除了少数(定义得很糟的)例外,URI 如今还是由 US-ASCII 字符的一个子集组成的。人们正在努力使主机名和 URL 的路径中能包含更丰富的集合中的字符,但直到现在,这些标准还没有被广泛接受和部署。现在让我们来回顾一下当前的一些尝试。1. 全球性的可转抄能力与有意义的字符的较量URI 的设计者们希望世界上每个人都能通过电子邮件、电话、公告板,甚

2017-10-31 15:05:54 209

原创 16.3 语言标记与 HTTP

语言标记是命名口语的标准化字符串短语。英语的标记是 en,德语的标记是 de,韩语的标记是 ko,等等。语言标记能够描述语 言的地区变种和方言,比如巴西葡萄牙语的标记是pt-BR、美式英语的标记是 en-US,汉语中的湖南话的标记是 zh-xiang。1. Content-Language 首部实体的 Content-Language 首部字段描述实体的目标受众语言。如果内容主要是给法语受众的,

2017-10-31 15:04:51 292

原创 16.2 多语言字符编码入门

本节是对字符系统及其标准的概览。如果读者对字符编码很熟悉,或者对这部分细节不感兴趣,可以直接跳过。1. 字符集术语字符:字符是指字母、数字、标点、表意文字(比如汉语)、符号,或其他文本形式的书写“原子”。由统一字符集(Universal Character Set,UCS, 它的非正式的名字是 Unicode3)首创,为多种语言中的很多字符开发了一系列标准化的文本名称,它们常用来便捷地命名字符,

2017-10-31 15:03:42 665

原创 16.1 字符集与 HTTP

每天有上亿的人用数百种语言写着各种文档。为了真正实现万维网的目标,HTTP 要能够传输和处理用多种语言和字母表编写的国际性文档。本章涵盖网站国际化方面的两个主要问题:字符集编码(character set encoding)和语言标记(language tag)。HTTP 应用程序使用字符集编码请求和显示不同字母表中的文本,它们使用语言标记根据用户所理解的语言来说明并限制内容。HTTP 报文中

2017-10-31 15:00:37 354

原创 15.10 差异编码

差异编码是 HTTP 协议的一个扩展,它通过交换对象改变的部分而不是完整的对象来优化传输性能。差异编码也是一类实例操控,因为它依赖客户端和服务器之间针对特定的对象实例来交换信息。RFC 3229 描述了差异编码。下图展示了差异编码的结构,包括请求、生成、接收和装配文档的全过程: 客户端必须告诉服务器它有页面的哪个版本,它愿意接受页面最新版的差异(delta),它懂得哪些将差异应用于现有版本的算法

2017-10-30 15:26:16 419

原创 15.9 范围请求

HTTP 允许客户端实际上只请求文档的一部分,或者说某个范围。假设你正通过慢速的调制解调器连接下载最新的热门软件,已经下了四分之三,忽然因为一个网络故障,连接中断了。你已经为等待下载完成耽误了很久,而现在被迫要全部重头再来。有了范围请求,HTTP 客户端可以通过请求曾获取失败的实体的一个范围(或者说一部分),来恢复下载该实体。当然这有一个前提,那就是从客户端上一次请求该实体到这次发出范围请求的时

2017-10-30 15:24:57 251

原创 15.8 验证码和新鲜度

当文档在客户端“过期”之后(也就是说,客户端不再认为该副本有效),客户端必须从服务器请求一份新的副本。不过,如果该文档在服务器上并未发生改变,客户端也就不需要再接收一次了——继续使用缓存的副本即可。这种特殊的请求,称为有条件的请求(conditional request),要求客户端使用验证码(validator)来告知服务器它当前拥有的版本号,并仅当它的当前副本不再有效时才要求发送新的副本。1

2017-10-30 15:24:16 273

原创 15.7 随时间变化的实例

网站对象并不是静态的。同样的 URL 会随着时间变化而指向对象的不同版本。实例就是资源在某个时间的“快照”。比如,可以把 CNN 的主页当作一个对象来考虑,其不同版本就可以看作这个对象的不同实例(见下图)。在图中,客户端多次请求同一个资源(URL),但得到的是该资源的不同实例,因为它是随时间而变化的。在时间(a)和时间(b)具有相同的实例,而在时间(c)则是不同的实例。 HTTP 协议规定了称为实

2017-10-30 15:23:45 515

原创 15.6 传输编码和分块编码

前一节讨论的内容编码,是对报文的主体进行的可逆变换。内容编码是和内容的具体格式细节紧密相关的。例如,你可能会用 gzip 压缩文本文件,但不是 JPEG 文件,因为 JPEG 这类东西用 gzip 压缩的不够好。本节讨论传输编码。传输编码也是作用在实体主体上的可逆变换,但使用它们是由于架构方面的原因,同内容的格式无关。使用传输编码是为了改变报文中的数据在网络上传输的方式。 1. 可靠传输长久以来

2017-10-30 15:22:51 622

原创 15.5 Content-Encoding:内容编码

HTTP 应用程序有时在发送之前需要对内容进行编码。常见的比如服务器利用 gzip 进行压缩,减少传输实体的时间。1. 内容编码过程内容编码的过程: 网站服务器生成原始响应报文,其中有原始的 Content-Type 和 Content- Length 首部。内容编码服务器(也可能就是原始的服务器或下行的代理)创建编码后的报文。编码后的报文有同样的 Content-Type 但 Conten

2017-10-30 15:21:16 1336

原创 15.4 Content-Type:MIME 类型和字符集

Content-Type 首部字段说明了实体主体的 MIME 类型。(在HEAD请求中,Content-Type 说明如果请求是GET时,将要发送的主体的类型。)MIME 介绍见1.2.1 Web 资源——媒体类型(MIME)。注意:Content-Type 首部说明的是原始实体主体的媒体类型。如果实体经过内容编码的话,Content-Type 首部说明的仍是编码之前的实体主体的类型。Cont

2017-10-30 15:19:52 717

原创 15.3 Content-MD5:实体校验

尽管 HTTP 通常都是在像 TCP/IP 这样的可靠传输协议之上实现的,但仍有很多因素会导致报文的一部分在传输过程中被修改,比如有不兼容的转码代理,或者中间代理有误,等等。为检测实体主体的数据是否被不经意(或不希望有)地修改,发送方可以在生成初始的主体时,生成一个数据的校验和,这样接收方就可以通过检查这个校验和来捕获所有意外的实体修改了。当然,这种方法对同时替换报文主体和摘要首部的恶意攻击无效。

2017-10-30 15:17:58 2575 1

原创 15.2 Content-Length 实体的大小

Content-Length 首部指示出报文中实体主体的字节大小。这个大小是包含了所有内容编码的,比如,对文本文件进行了 gzip 压缩的话,Content-Length 首部就是压缩后的大小,而不是原始大小。除非使用了分块编码,否则 Content-Length 首部就是带有实体主体的报文必须使用的。使用 Content-Length 首部是为了能够检测出服务器崩溃而导致的报文截尾,并对共享持

2017-10-30 15:17:09 2994

原创 15.1 报文与实体

HTTP 要确保它所承载的“货物”满足以下条件: 可以被正确地识别(通过 Content-Type 首部说明媒体格式,Content- Language 首部说明语言),以便浏览器和其他客户端能正确处理内容;可以被正确地解包(通过 Content-Length 首部和 Content-Encoding 首部);是最新的(通过实体验证码和缓存过期控制);符合用户的需要(基于 Accept 系列

2017-10-30 15:16:36 2209

原创 14.5 HTTPS 与代理

客户端通常会用 Web 代理服务器代表它们来访问 Web 服务器。比如,很多公司都会在公司网络和公共因特网的安全边界上放置一个代理。代理是防火墙路由器唯一允许进行 HTTP 流量交换的设备,它可能会进行病毒检测或其他的内容控制工作。 但只要客户端开始用服务器的公开密钥对发往服务器的数据进行加密,代理就再也不能读取 HTTP 首部了。代理不能读取 HTTP 首部,就无法知道应该将请求转向何处了。 为了

2017-10-29 15:03:13 4074 1

原创 14.4 HTTPS 客户端实例

SSL 是个复杂的二进制协议。除非你是密码专家,否则就不应该直接发送原始的 SSL 流量。幸运的是,借助一些商业或开源的库,编写 SSL 客户端和服务器并不十分困难。1. OpenSSLOpenSSL 是 SSL 和 TLS 最常见的开源实现。OpenSSL 项目由一些志愿者合作开发,目标是开发一个强壮的、具有完备功能的商业级工具集,以实现 SSL 和 TLS 协议以及一个全功能的通用加密库。可

2017-10-29 15:01:21 900

原创 14.3 HTTPS 细节

HTTPS 是最常见的 HTTP 安全版本。HTTPS 将 HTTP 协议与一组强大的对称、非对称和基于证书的加密技术结合在一起,使得 HTTPS 不仅很安全,而且很灵活,很容易在处于无序状态的、分散的全球互联网上进行管理。1. HTTPS 概述HTTPS 就是在安全的传输层上发送的 HTTP。它在将 HTTP 报文发送给 TCP 之前,先将其发送给了一个安全层,对其进行加密。现在,HTTP

2017-10-29 15:00:25 687

原创 14.2 数字加密简介

在详细探讨 HTTPS 之前,我们先介绍一些 SSL 和 HTTPS 用到的加密编码技术的背景知识。在这个数字加密技术的入门介绍中,我们会讨论以下内容: 密码:对文本进行编码,使偷窥者无法识别的算法。密钥:改变密码行为的数字化参数。对称密钥加密系统:编/解码使用相同密钥的算法。不对称密钥加密系统:编/解码使用不同密钥的算法。公开密钥加密系统:一种能够使数百万计算机便捷地发送机密报文的系统。

2017-10-29 14:58:37 753

原创 14.1 保护HTTP的安全

前面介绍的安全技术,在友好环境中可以很好地工作,但在充满各种利益驱动和恶意对手的环境中,它们并不足以保护那些重要的事务处理。本章提供了一种更复杂,更安全的技术,通过数字密码来保护 HTTP 事务免受窃听和篡改的侵害。前面的章节讨论了一些提供认证(基本认证和摘要认证)和报文完整性检查(摘要 qop=”auth-int”)的轻量级方法。对很多网络事务来说,这些方法都是很好用的,但对大规模的购物、银行事

2017-10-29 14:54:34 258

原创 13.5 安全性考虑

1. 首部篡改为了提供一个简单明了的防首部篡改系统,要么就得进行端到端的加密,要么就得对首部进行数字签名——最好是两者的结合。摘要认证的重点在于提供一种防篡改认证机制,但并不一定要将这种保护扩展到数据上去。具有一定保护级别的首部只有 WWW-Authenticate 和 Authorization。2. 重放攻击重放攻击指的就是有人将从某个事务中窃取的认证证书用于另一个事务。尽管对 GET

2017-10-28 14:28:39 220

原创 13.4 注意的问题

1. 多重质询服务器可以对某个资源发起多重质询。比如,如果服务器不了解客户端的能力,就可以既提供基本认证质询,又提供摘要认证质询。客户端面对多重质询时,必须以它所支持的最强的质询机制来应答。质询自身可能会包含由逗号分隔的认证参数列表。如果 WWW-Authenticate 或 Proxy-Authenticate 首部包含了多个质询,或者提供了多个 WWW-Authenticate 首部,用户

2017-10-28 14:28:05 181

原创 13.3 增强保护质量

可以在三种摘要首部中提供 qop 字段:WWW-Authenticate、Authorization 和 Authentication-Info。通过 qop 字段,客户端和服务器可以对不同类型及质量的保护进行协商。比如,即便会严重降低传输速度,有些事务可能也要检查报文主体的完整性。服务器首先在 WWW-Authenticate 首部输出由逗号分隔的 qop 选项列表。然后客户端从中选择一个它支

2017-10-28 14:27:06 488

原创 13.2 摘要的计算

摘要认证的核心就是对公共信息、保密信息和有时限的随机值这个组合的单向摘要。1. 摘要算法的输入数据摘要是根据以下三个组件计算出来的: * 由单向散列函数 H(d) 和摘要 KD(s,d) 组成的一对函数,其中 s 表示密码,d 表示数据。 * 一个包含了安全信息的数据块,包括密码,称为 A1。 * 一个包含了请求报文中非保密属性的数据块,称为 A2。H 和 KD 处理两块数据 A1 和 A2

2017-10-28 14:24:49 1147

原创 13.1 摘要认证的改进

本章只需了解摘要认证的基本概念和流程即可,关于 HTTP 的安全问题,重点关注下一章。基本认证便捷灵活,但极不安全。用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改。安全使用基本认证的唯一方式就是将其与 SSL 配合使用。摘要认证与基本认证兼容,但却更为安全。摘要认证进行了如下改进: 永远不会以明文方式在网络上发送密码。可以防止恶意用户捕获并重放认证的握手过程。 可以

2017-10-28 14:23:16 324

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除