这本区块链爱好者必读作品终于迎来第三版

学习区块链的书籍我推荐这两本,我在这里已经推荐过一次: Mastering Bitcoin Mastering Ethereum 比特币开创了一门新的技术——区块链,而以太坊则在比特币的理念基础上进行再创新和升华,二者是近十多年来区块链技术的代表。因此,学习区块链技术,绝对离不开它们。恰好,这两本书就完全阐述了比特币和以太坊的技术。 这两本书都由同一名作者编写,他是一名有十多年区块链研究经验的爱好者,两本书的传播度非常广,是学习、研究区块链技术的必读作品。 《Mastering Ethereum》翻译为《精通以太坊》,目前该书可以在 github 上免费阅读,地址在这里,翻译版在这里。 《Mastering Bitcoin》中文译作《精通比特币》,本书详细介绍了比特币底层的实现逻辑,目前版本是第二版。但是随着比特币2017、2021两次的重大升级,添加了隔离见证、Taproot、Schnorr签名等重大改进,不论是逻辑上还是技术上都有着很大的学习难度,第二版是在2017升级之前刊印的,现在未免显得有点过时了。如果你想学习比特币的底层知识,可以在这里阅读到本书的中文版。 让人兴奋的是,2023年《Mastering Bitcoin》迎来了它的第三个版本,它由原作者 Andreas Antonopoulos 和另一位区块链爱好者 David Harding 联合编著,在第二版的基础上补全了这几年比特币的多个升级技术。可惜的是,本书目前还没有中文版本,但你可以直接在 github 上阅读英文版,地址在这里。 另外,为了便于阅读,我也fork了本书,编译并搭建了在线阅读网站,打开即可直接阅读,可以选择单页阅读整书也可以分章节阅读。 区块链技术的学习是一个枯燥和费力的过程,但历史的车轮总是向前推进的,技术在进步,坚持下来者方能迎接蜕变。 相关阅读: Bitcoin’s Taproot Upgrade: What You Should Know https://github.com/ajtowns/taproot-review

2024-03-20 · 1 min · 34 words · Hank

Expert One-on-One J2EE Development without EJB中文版PDF下载

你的J2EE项目是否耗费了你太多的时间?它们是否难以调试?它们是否效率不彰?也许你还在使用传统的J2EE方案,然而这种主案太过复杂,而且并非真正面向对象。这里的很多问题都与EJB有关:EJB是一种复杂的技术,但它没有兑现自己曾经的承诺。 1. 站长评价 这是一本很古老的书,同时也是一本介绍Spring框架设计理念、出现缘由的书,也是一本介绍软件设计的书! 在Java开发领域,Spring框架应该说是久负盛名,而且是Java Web开发必备武器。但是,随着Spring的发展壮大, Spring涵盖的东西也越来越多:Spring Boot、Spring Cloud等等以Spring框架(Spring Framework)为基础的Spring生态系统。 所以,对于初学Spring的人而言,可能不知道从何入手。所以,推荐先阅读这本书,本书的作者也是Spring框架的发起者。他在本书中详细介绍了Spring框架的出现原因、Spring框架如何解决一系列企业级问题,如控制反转(IoC)、事务控制、远程调用等等。同时,他还详细阐述了Spring框架架构设计理念和技术抉择,对比当时流行的企业级框架EJB的种种缺陷,一一介绍了Spring框架如何采用轻量级的方式来解决企业级J2EE问题。总之,是一本深入了解Spring框架的经典著作。不论你是初学Spring,还是对Spring已经了如指掌,都可以从本书中学到很多东西。 本书的前5章都在讲述EJB相关的内容,如果不想了解EJB可以直接从第六章开始阅读。 丰富指数:☆☆☆☆ 难度指数:☆☆☆☆ 推荐指数:☆☆☆☆ 迫不及待想要阅读它了?点此立即下载本书的PDF版本(仅供可以学习研究使用,切勿用于商业用途)! 2. 内容简介 在这本实战手册中,你将看到另一种截然不同的方案:没有EJB,却可以创建质量更高的应用程序,所需的时间和成本则更低。你将学会如何充分利用各种实用的技巧和工具,包括时下流行的Spring框架和Hibernate两个开源工具。你将看到如何高效地解决企业级应用的核心问题,例如事务管理、持久化、远程调用和web设计。你将了解这种新的方案给可测试性、性能和可伸缩性带来怎样的影响,并亲身体验轻量级架构如何大幅降低项目开发所需的时间和工作量。 自从servlet、EJB、JSP等J2EE技术发布之初,本书作者Rod Johnson就一直在使用这些技术,他对于这些技术的优劣利弊了如指掌。现在,通过这本书,你将可以面对面地分享他的专家经验。 你将从本书学到…… 如何针对自己的应用程序找到 简单、 易维护的架构;在不使用EJB的情况下有效地管理事务;如何利用AOP和loC解决企业级软件开发中的常见问题;web层设计,以web层在设计良好的J2EE应用中的地位;J2EE应用中的数据访问技术,包括BC、Hibernate和O;如何利用开源产品提升生产率、减少编码量;如何从设计层面上改善性能和可伸缩性。 “传统的J2EE设计思路尤其是EJB日益让架构师和开发者们灰心丧气,我这本书正是为这些人而写的。本书将告诉读者,如何从现在开始用更清晰、更高效的方案去替代EJB,并开始迈向web应用的新时代。” 3. 作者简介 Rod Johnson,Spring框架的创始人,同时也是SpringSource的联合创始人。Spring是面向切面编程(AOP)和控制反转(IoC)的容器框架。Rod的畅销书Expert One-on-One J2EE Design and Development(2002年出版)是迄今为止J2EE领域最具影响力的书之一。 4. 目录 第1章 为什么要“j2ee without ejb” 聚光灯下的ejb j2ee还剩什么? 站在十字路口的j2ee 前行的路 主旋律 轻量级框架和容器 我们还应该使用ejb吗? 小结 第2章 目标 生产率 问题 传统j2ee方案解决生产率问题的办法 提升生产率更好的办法 oo 业务需求的重要性 经验过程的重要性 小结 第3章 各种架构 架构性构件 .业务服务层 向外部暴露业务对象 数据访问层,或eis层 j2ee架构 两种ejb架构 两种非ejb架构 j2ee架构实例 “经典的”j2ee远程ejb架构 本地ejb架构 特制的非ejb架构 “轻量级容器架构”:示例应用系统 确定是否采用应用服务器 小结 ...

2021-06-15 · 3 min · 450 words · Hank

HTTP权威指南中文高清版PDF下载

HTTP是Web的基础,这里所说的Web,不仅只是通常意义上的Browser/Server端的开发,而是Web Service。大多数人对HTTP的了解也就是这种程度了(没有读此书之前的我也是这样)。此书的意义在于,它让你知道,HTTP不仅只有一个简单的GET,HTTP可以做为一种通用的分布式编程的协议。现如今Web上大行其道的所谓Restful Web Service,其基础就是HTTP,而提出Rest这个概念的Roy Fielding,也是HTTP协议(RFC2616)的主要作者之一。 1. 站长评价 Web开发离不开Http,这本《HTTP权威指南》确实是介绍HTTP协议最权威的一本书籍,虽然古老(2012年出版)但是内容丰富,从Http0.9到未来的HTTP-NG,从HTTP基础到HTTP通信安全,可以说涵盖了HTTP协议的方方面面。不论是刚入行的新手,又或是有多年经验的程序大师,反复研读这本巨著肯定会受益匪浅! 丰富指数:☆☆☆☆ 难度指数:☆☆☆ 推荐指数:☆☆☆☆ 迫不及待了?点此立即下载! 2. 内容简介 HTTP(HyperText Transfer Protocol,超文本传输协议)是Web客户端与服务器交互文档和信息时所使用的协议,是每个成功Web事务的幕后推手。众所周知,我们每天访问公司内部网络、搜索绝版书籍、研究统计信息时所使用的浏览器的核心就是HTTP。但HTTP的应用远不仅仅是浏览Web内容。由于HTTP既简单又普及,很多其他网络应用程序也选择了它,尤其是采用SOAP和XML-RPC这样的Web服务。 本书详细解释了HTTP协议,包括它是如何工作的,如何用它来开发基于Web的应用程序。但本书并不只介绍了HTTP,还探讨了HTTP有效工作所依赖的所有其他核心因特网技术。尽管HTTP是本书的中心内容,但本书的本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中去,主要涵盖HTTP的技术运作方式、产生动机、性能和目标,以及一些相关技术问题。 本书是HTTP协议及相关Web技术方面的著作,主要内容包括: HTTP方法、首部以及状态码 优化代理和缓存的方法 设计Web机器人和爬虫的策略 Cookies、认证以及安全HTTP 国际化及内容协商 重定向及负载平衡策略 本书由具有多年实践经验的专家编写,通过简洁语言和大量翔实的细节图解帮助读者形象地理解Web幕后所发生的事情,详细说明了Web上每条请求的实际运行情况。要想高效地进行Web开发,所有Web程序员、管理员和应用程序开发者都应该熟悉HTTP。很多书籍只介绍了Web的使用方式,而本书则深入说明了Web的工作原理。 3. 作者简介 David Gourley,Endeca的首席技术官(Chief TechnologyOfficer),负责Endeca产品的研究及开发。Endeca开发的因特网及内部网络信息访问解决方案为企业级数据的导航及研究提供了一些新的方式。在到Endeca工作之前,David是Inktomi基础工程组的一员,他在那儿帮助开发了Inktomi的因特网搜索数据库,是Inktomi的Web缓存产品的主要开发者。David在加州大学伯克利分校获得了计算机科学的学士学位,还拥有Web技术方面的几项专利。 BrianTotty,出任了Inktomi公司(这是1996年他参与建立的一家公司)研发部副总裁,在公司中他负责Web缓存、流媒体及因特网搜索技术的研发工作。他曾是SiliconGraphics公司的一名科学家,他在那儿为高性能网络和超级计算机系统设计软件并对其进行优化。在那之前,他是苹果计算机公司高级技术组的一名工程师。Brian在伊利诺伊大学Urbana-Champaign分校获得了计算机科学的博士学位,在MIT获得了计算机科学及电子工程的学士学位,在那里他获得了计算机系统研究的Organick奖。他还为加州大学扩展系统开发并讲授了一些屡获殊荣的因特网技术方面的课程。 MarjorieSayer在Inktomi公司负责编写Web缓存方面的软件。在加州大学伯克利分校获得了数学硕士和博士学位之后,一直致力于数学课程的改革。从1990年开始致力于能量资源管理、并行系统软件、电话和网络方面的写作。 Sailu Reddy目前在Inktomi公司负责嵌入式的性能增强型HTTP代理的开发。Sailu从事复杂软件系统的开发已经有12年了,从1995年开始深入Web架构的研发工作。他是Netscape Web服务器、Web代理产品,以及后面几代产品的核心工程师。他具备HTTP应用程序、数据压缩技术、数据库引擎以及合作管理等方面的技术经验。Sailu在亚里桑那大学获得了信息系统的硕士学位并握有Web技术方面的多项专利。 AnshuAggarwal是Inktomi公司的工程总监。他领导着Inktomi公司Web缓存产品的协议处理工程组,从1997年就开始参与Inktomi的Web技术设计工作。Anshu在科罗拉多大学Boulder分校获得了计算机科学的硕士和博士学位,从事分布式多处理器的内存一致性技术研究。他还拥有电子工程的硕士和学士学位。Anshu撰写了多篇技术论文,还拥有两项专利。 4. 目录 第一部分 HTTP:Web的基础 第1章 HTTP概述 1.1 HTTP——因特网的多媒体信使 1.2 Web客户端和服务器 1.3 资源 1.3.1 媒体类型 1.3.2 URI 1.3.3 URL 1.3.4 URN 1.4 事务 1.4.1 方法 1.4.2 状态码 1.4.3 Web页面中可以包含多个对象 1.5 报文 1.6 连接 1.6.1 TCP/IP 1.6.2 连接、IP地址及端口号 1.6.3 使用Telnet实例 1.7 协议版本 1.8 Web的结构组件 1.8.1 代理 1.8.2 缓存 1.8.3 网关 1.8.4 隧道 1.8.5 Agent代理 1.9 起始部分的结束语 1.10 更多信息 1.10.1 HTTP协议信息 1.10.2 历史透视 1.10.3 其他万维网信息 第2章 URL与资源 2.1 浏览因特网资源 2.2 URL的语法 2.2.1 方案——使用什么协议 2.2.2 主机与端口 2.2.3 用户名和密码 2.2.4 路径 2.2.5 参数 2.2.6 查询字符串 2.2.7 片段 2.3 URL快捷方式 2.3.1 相对URL 2.3.2 自动扩展URL 2.4 各种令人头疼的字符 2.4.1 URL字符集 2.4.2 编码机制 2.4.3 字符限制 2.4.4 另外一点说明 2.5 方案的世界 2.6 未来展望 2.7 更多信息 第3章 HTTP报文 3.1 报文流 3.1.1 报文流入源端服务器 3.1.2 报文向下游流动 3.2 报文的组成部分 3.2.1 报文的语法 3.2.2 起始行 3.2.3 首部 3.2.4 实体的主体部分 3.2.5 版本0.9的报文 3.3 方法 3.3.1 安全方法 3.3.2 GET 3.3.3 HEAD 3.3.4 PUT 3.3.5 POST 3.3.6 TRACE 3.3.7 OPTIONS 3.3.8 DELETE 3.3.9 扩展方法 3.4 状态码 3.4.1 100~199——信息性状态码 3.4.2 200~299——成功状态码 3.4.3 300~399——重定向状态码 3.4.4 400~499——客户端错误状态码 3.4.5 500~599——服务器错误状态码 3.5 首部 3.5.1 通用首部 3.5.2 请求首部 3.5.3 响应首部 3.5.4 实体首部 3.6 更多信息 第4章 连接管理 4.1 TCP连接 4.1.1 TCP的可靠数据管道 4.1.2 TCP流是分段的、由IP分组传送 4.1.3 保持TCP连接的正确运行 4.1.4 用TCP套接字编程 4.2 对TCP性能的考虑 4.2.1 HTTP事务的时延 4.2.2 性能聚焦区域 4.2.3 TCP连接的握手时延 4.2.4 延迟确认 4.2.5 TCP慢启动 4.2.6 Nagle算法与TCP_NODELAY 4.2.7 TIME_WAIT累积与端口耗尽 4.3 HTTP连接的处理 4.3.1 常被误解的Connection首部 4.3.2 串行事务处理时延 4.4 并行连接 4.4.1 并行连接可能会提高页面的加载速度 4.4.2 并行连接不一定更快 4.4.3 并行连接可能让人“感觉”更快一些 4.5 持久连接 4.5.1 持久以及并行连接 4.5.2 HTTP/1.0+ keep-alive连接 4.5.3 Keep-Alive操作 4.5.4 Keep-Alive选项 4.5.5 Keep-Alive连接的限制和规则 4.5.6 Keep-Alive和哑代理 4.5.7 插入Proxy-Connection 4.5.8 HTTP/1.1持久连接 4.5.9 持久连接的限制和规则 4.6 管道化连接 4.7 关闭连接的奥秘 4.7.1 “任意”解除连接 4.7.2 Content-Length及截尾操作 4.7.3 连接关闭容限、重试以及幂等性 4.7.4 正常关闭连接 4.8 更多信息 4.8.1 HTTP连接 4.8.2 HTTP性能问题 4.8.3 TCP/IP 第二部分 HTTP结构 第5章 Web服务器 5.1 各种形状和尺寸的Web服务器 5.1.1 Web服务器的实现 5.1.2 通用软件Web服务器 5.1.3 Web服务器设备 5.1.4 嵌入式Web服务器 5.2 最小的Perl Web服务器 5.3 实际的Web服务器会做些什么 5.4 第一步——接受客户端连接 5.4.1 处理新连接 5.4.2 客户端主机名识别 5.4.3 通过ident确定客户端用户 5.5 第二步——接收请求报文 5.5.1 报文的内部表示法 5.5.2 连接的输入/输出处理结构 5.6 第三步——处理请求 5.7 第四步——对资源的映射及访问 5.7.1 docroot 5.7.2 目录列表 5.7.3 动态内容资源的映射 5.7.4 服务器端包含项 5.7.5 访问控制 5.8 第五步——构建响应 5.8.1 响应实体 5.8.2 MIME类型 5.8.3 重定向 5.9 第六步——发送响应 5.10 第七步——记录日志 5.11 更多信息 第6章 代理 6.1 Web的中间实体 6.1.1 私有和共享代理 6.1.2 代理与网关的对比 6.2 为什么使用代理 6.3 代理会去往何处 6.3.1 代理服务器的部署 6.3.2 代理的层次结构 6.3.3 代理是如何获取流量的 6.4 客户端的代理设置 6.4.1 客户端的代理配置:手工配置 6.4.2 客户端代理配置:PAC文件 6.4.3 客户端代理配置:WPAD 6.5 与代理请求有关的一些棘手问题 6.5.1 代理URI与服务器URI的不同 6.5.2 与虚拟主机一样的问题 6.5.3 拦截代理会收到部分URI 6.5.4 代理既可以处理代理请求,也可以处理服务器请求 6.5.5 转发过程中对URI的修改 6.5.6 URI的客户端自动扩展和主机名解析 6.5.7 没有代理时URI的解析 6.5.8 有显式代理时URI的解析 6.5.9 有拦截代理时URI的解析 6.6 追踪报文 6.6.1 Via首部 6.6.2 TRACE方法 6.7 代理认证 6.8 代理的互操作性 6.8.1 处理代理不支持的首部和方法 6.8.2 OPTIONS:发现对可选特性的支持 6.8.3 Allow首部 6.9 更多信息 第7章 缓存 7.1 冗余的数据传输 7.2 带宽瓶颈 7.3 瞬间拥塞 7.4 距离时延 7.5 命中和未命中的 7.5.1 再验证 7.5.2 命中率 7.5.3 字节命中率 7.5.4 区分命中和未命中的情况 7.6 缓存的拓扑结构 7.6.1 私有缓存 7.6.2 公有代理缓存 7.6.3 代理缓存的层次结构 7.6.4 网状缓存、内容路由以及对等缓存 7.7 缓存的处理步骤 7.7.1 第一步——接收 7.7.2 第二步——解析 7.7.3 第三步——查找 7.7.4 第四步——新鲜度检测 7.7.5 第五步——创建响应 7.7.6 第六步——发送 7.7.7 第七步——日志 7.7.8 缓存处理流程图 7.8 保持副本的新鲜 7.8.1 文档过期 7.8.2 过期日期和使用期 7.8.3 服务器再验证 7.8.4 用条件方法进行再验证 7.8.5 If-Modified-Since:Date再验证 7.8.6 If-None-Match:实体标签再验证 7.8.7 强弱验证器 7.8.8 什么时候应该使用实体标签和最近修改日期 7.9 控制缓存的能力 7.9.1 no-Store与no-Cache响应首部 7.9.2 max-age响应首部 7.9.3 Expires响应首部 7.9.4 must-revalidate响应首部 7.9.5 试探性过期 7.9.6 客户端的新鲜度限制 7.9.7 注意事项 7.10 设置缓存控制 7.10.1 控制Apache的HTTP首部 7.10.2 通过HTTP-EQUIV控制HTML缓存 7.11 详细算法 7.11.1 使用期和新鲜生存期 7.11.2 使用期的计算 7.11.3 完整的使用期计算算法 7.11.4 新鲜生存期计算 7.11.5 完整的服务器——新鲜度算法 7.12 缓存和广告 7.12.1 发布广告者的两难处境 7.12.2 发布者的响应 7.12.3 日志迁移 7.12.4 命中计数和使用限制 7.13 更多信息 第8章 集成点:网关、隧道及中继 8.1 网关 8.2 协议网关 8.2.1 HTTP/*:服务器端Web网关 8.2.2 HTTP/HTTPS:服务器端安全网关 8.2.3 HTTPS/HTTP客户端安全加速器网关 8.3 资源网关 8.3.1 CGI 8.3.2 服务器扩展API 8.4 应用程序接口和Web服务 8.5 隧道 8.5.1 用CONNECT建立HTTP隧道 8.5.2 数据隧道、定时及连接管理 8.5.3 SSL隧道 8.5.4 SSL隧道与HTTP/HTTPS网关的对比 8.5.5 隧道认证 8.5.6 隧道的安全性考虑 8.6 中继 8.7 更多信息 第9章 Web机器人 9.1 爬虫及爬行方式 9.1.1 从哪儿开始:根集 9.1.2 链接的提取以及相对链接的标准化 9.1.3 避免环路的出现 9.1.4 循环与复制 9.1.5 面包屑留下的痕迹 9.1.6 别名与机器人环路 9.1.7 规范化URL 9.1.8 文件系统连接环路 9.1.9 动态虚拟Web空间 9.1.10 避免循环和重复 9.2 机器人的HTTP 9.2.1 识别请求首部 9.2.2 虚拟主机 9.2.3 条件请求 9.2.4 对响应的处理 9.2.5 User-Agent导向 9.3 行为不当的机器人 9.4 拒绝机器人访问 9.4.1 拒绝机器人访问标准 9.4.2 Web站点和robots.txt文件 9.4.3 robots.txt文件的格式 9.4.4 其他有关robots.txt的知识 9.4.5 缓存和robots.txt的过期 9.4.6 拒绝机器人访问的Perl代码 9.4.7 HTML的robot-control元标签 9.5 机器人的规范 9.6 搜索引擎 9.6.1 大格局 9.6.2 现代搜索引擎结构 9.6.3 全文索引 9.6.4 发布查询请求 9.6.5 对结果进行排序,并提供查询结果 9.6.6 欺诈 9.7 更多信息 第10章 HTTP-NG 10.1 HTTP发展中存在的问题 10.2 HTTP-NG的活动 10.3 模块化及功能增强 10.4 分布式对象 10.5 第一层——报文传输 10.6 第二层——远程调用 10.7 第三层——Web应用 10.8 WebMUX 10.9 二进制连接协议 10.10 当前的状态 10.11 更多信息 第三部分 识别、认证与安全 第11章 客户端识别与cookie机制 11.1 个性化接触 11.2 HTTP首部 11.3 客户端IP地址 11.4 用户登录 11.5 胖URL 11.6 cookie 11.6.1 cookie的类型 11.6.2 cookie是如何工作的 11.6.3 cookie罐:客户端的状态 11.6.4 不同站点使用不同的cookie 11.6.5 cookie成分 11.6.6 cookies版本0(Netscape) 11.6.7 cookies版本1(RFC 2965) 11.6.8 cookie与会话跟踪 11.6.9 cookie与缓存 11.6.10 cookie、安全性和隐私 11.7 更多信息 第12章 基本认证机制 12.1 认证 12.1.1 HTTP的质询/响应认证框架 12.1.2 认证协议与首部 12.1.3 安全域 12.2 基本认证 12.2.1 基本认证实例 12.2.2 Base-64用户名/密码编码 12.2.3 代理认证 12.3 基本认证的安全缺陷 12.4 更多信息 第13章 摘要认证 13.1 摘要认证的改进 13.1.1 用摘要保护密码 13.1.2 单向摘要 13.1.3 用随机数防止重放攻击 13.1.4 摘要认证的握手机制 13.2 摘要的计算 13.2.1 摘要算法的输入数据 13.2.2 算法H(d)和KD(s,d) 13.2.3 与安全性相关的数据(A1) 13.2.4 与报文有关的数据(A2) 13.2.5 摘要算法总述 13.2.6 摘要认证会话 13.2.7 预授权 13.2.8 随机数的选择 13.2.9 对称认证 13.3 增强保护质量 13.3.1 报文完整性保护 13.3.2 摘要认证首部 13.4 应该考虑的实际问题 13.4.1 多重质询 13.4.2 差错处理 13.4.3 保护空间 13.4.4 重写URI 13.4.5 缓存 13.5 安全性考虑 13.5.1 首部篡改 13.5.2 重放攻击 13.5.3 多重认证机制 13.5.4 词典攻击 13.5.5 恶意代理攻击和中间人攻击 13.5.6 选择明文攻击 13.5.7 存储密码 13.6 更多信息 第14章 安全HTTP 14.1 保护HTTP 的安全 14.2 数字加密 14.2.1 密码编制的机制与技巧 14.2.2 密码 14.2.3 密码机 14.2.4 使用了密钥的密码 14.2.5 数字密码 14.3 对称密钥加密技术 14.3.1 密钥长度与枚举攻击 14.3.2 建立共享密钥 14.4 公开密钥加密技术 14.4.1 RSA 14.4.2 混合加密系统和会话密钥 14.5 数字签名 14.6 数字证书 14.6.1 证书的主要内容 14.6.2 X.509 v3证书 14.6.3 用证书对服务器进行认证 14.7 HTTPS——细节介绍 14.7.1 HTTPS概述 14.7.2 HTTPS方案 14.7.3 建立安全传输 14.7.4 SSL握手 14.7.5 服务器证书 14.7.6 站点证书的有效性 14.7.7 虚拟主机与证书 14.8 HTTPS客户端实例 14.8.1 OpenSSL 14.8.2 简单的HTTPS客户端 14.8.3 执行OpenSSL客户端 14.9 通过代理以隧道形式传输安全流量 14.10 更多信息 14.10.1 HTTP安全性 14.10.2 SSL与TLS 14.10.3 公开密钥基础设施 14.10.4 数字密码 第四部分 实体、编码和国际化 第15章 实体和编码 15.1 报文是箱子,实体是货物 15.2 Content-Length: 实体的大小 15.2.1 检测截尾 15.2.2 错误的Content-Length 15.2.3 Content-Length与持久连接 15.2.4 内容编码 15.2.5 确定实体主体长度的规则 15.3 实体摘要 15.4 媒体类型和字符集 15.4.1 文本的字符编码 15.4.2 多部分媒体类型 15.4.3 多部分表格提交 15.4.4 多部分范围响应 15.5 内容编码 15.5.1 内容编码过程 15.5.2 内容编码类型 15.5.3 Accept-Encoding首部 15.6 传输编码和分块编码 15.6.1 可靠传输 15.6.2 Transfer-Encoding首部 15.6.3 分块编码 15.6.4 内容编码与传输编码的结合 15.6.5 传输编码的规则 15.7 随时间变化的实例 15.8 验证码和新鲜度 15.8.1 新鲜度 15.8.2 有条件的请求与验证码 15.9 范围请求 15.10 差异编码 15.11 更多信息 第16章 国际化 16.1 HTTP对国际性内容的支持 16.2 字符集与HTTP 16.2.1 字符集是把字符转换为二进制码的编码 16.2.2 字符集和编码如何工作 16.2.3 字符集不对,字符就不对 16.2.4 标准化的MIME charset值 16.2.5 Content-Type首部和Charset首部以及META标志 16.2.6 Accept-Charset首部 16.3 多语言字符编码入门 16.3.1 字符集术语 16.3.2 字符集的命名很糟糕 16.3.3 字符 16.3.4 字形、连笔以及表示形式 16.3.5 编码后的字符集 16.3.6 字符编码方案 16.4 语言标记与HTTP 16.4.1 Content-Language首部 16.4.2 Accept-Language首部 16.4.3 语言标记的类型 16.4.4 子标记 16.4.5 大小写 16.4.6 IANA语言标记注册 16.4.7 第一个子标记——名字空间 16.4.8 第二个子标记——名字空间 16.4.9 其余子标记——名字空间 16.4.10 配置和语言有关的首选项 16.4.11 语言标记参考表 16.5 国际化的URI 16.5.1 全球性的可转抄能力与有意义的字符的较量 16.5.2 URI字符集合 16.5.3 转义和反转义 16.5.4 转义国际化字符 16.5.5 URI中的模态切换 16.6 其他需要考虑的地方 16.6.1 首部和不合规范的数据 16.6.2 日期 16.6.3 域名 16.7 更多信息 16.7.1 附录 16.7.2 互联网的国际化 16.7.3 国际标准 第17章 内容协商与转码 17.1 内容协商技术 17.2 客户端驱动的协商 17.3 服务器驱动的协商 17.3.1 内容协商首部集 17.3.2 内容协商首部中的质量值 17.3.3 随其他首部集而变化 17.3.4 Apache中的内容协商 17.3.5 服务器端扩展 17.4 透明协商 17.4.1 进行缓存与备用候选 17.4.2 Vary首部 17.5 转码 17.5.1 格式转换 17.5.2 信息综合 17.5.3 内容注入 17.5.4 转码与静态预生成的对比 17.6 下一步计划 17.7 更多信息 第五部分 内容发布与分发 第18章 Web主机托管 18.1 主机托管服务 18.2 虚拟主机托管 18.2.1 虚拟服务器请求缺乏主机信息 18.2.2 设法让虚拟主机托管正常工作 18.2.3 HTTP/1.1的Host首部 18.3 使网站更可靠 18.3.1 镜像的服务器集群 18.3.2 内容分发网络 18.3.3 CDN中的反向代理缓存 18.3.4 CDN中的代理缓存 18.4 让网站更快 18.5 更多信息 第19章 发布系统 19.1 FrontPage为支持发布而做的服务器扩展 19.1.1 FrontPage服务器扩展 19.1.2 FrontPage术语表 19.1.3 FrontPage的RPC协议 19.1.4 FrontPage的安全模型 19.2 WebDAV与协作写作 19.2.1 WebDAV的方法 19.2.2 WebDAV与XML 19.2.3 WebDAV首部集 19.2.4 WebDAV的锁定与防止覆写 19.2.5 LOCK方法 19.2.6 UNLOCK方法 19.2.7 属性和元数据 19.2.8 PROPFIND方法 19.2.9 PROPPATCH方法 19.2.10 集合与名字空间管理 19.2.11 MKCOL方法 19.2.12 DELETE方法 19.2.13 COPY与MOVE方法 19.2.14 增强的HTTP/1.1方法 19.2.15 WebDAV中的版本管理 19.2.16 WebDAV的未来发展 19.3 更多信息 第20章 重定向与负载均衡 20.1 为什么要重定向 20.2 重定向到何地 20.3 重定向协议概览 20.4 通用的重定向方法 20.4.1 HTTP重定向 20.4.2 DNS重定向 20.4.3 任播寻址 20.4.4 IP MAC转发 20.4.5 IP地址转发 20.4.6 网元控制协议 20.5 代理的重定向方法 20.5.1 显式浏览器配置 20.5.2 代理自动配置 20.5.3 Web代理自动发现协议 20.6 缓存重定向方法 20.7 因特网缓存协议 20.8 缓存阵列路由协议 20.9 超文本缓存协议 20.9.1 HTCP认证 20.9.2 设置缓存策略 20.10 更多信息 第21章 日志记录与使用情况跟踪 21.1 记录内容 21.2 日志格式 21.2.1 常见日志格式 21.2.2 组合日志格式 21.2.3 网景扩展日志格式 21.2.4 网景扩展2日志格式 21.2.5 Squid代理日志格式 21.3 命中率测量 21.3.1 概述 21.3.2 Meter首部 21.4 关于隐私的考虑 21.5 更多信息 第六部分 附录 附录A URI方案 附录B HTTP状态码 附录C HTTP首部参考 附录D MIME类型 附录E Base-64编码 附录F 摘要认证 附录G 语言标记 附录H MIME字符集注册表 索引 ...

2021-04-12 · 6 min · 1228 words · Hank

Java编程思想(第4版)中文高清版PDF下载

Java编程思想一书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 1. 站长评价 Java程序员必备参考书、工具书,长期霸占Java编程书籍排行榜榜首的神级著作!Java编程必读书籍,需要反复研读、反复体会编程思想! 丰富指数:☆☆☆☆ 难度指数:☆☆☆ 推荐指数:☆☆☆☆☆ 迫不及待了?点此立即下载! 2. 内容简介 本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。 第4版特点: 适合初学者与专业人员的经典的面向对象叙述方式,为更新的Java SE5/6增加了新的示例和章节。 测验框架显示程序输出。 设计模式贯穿于众多示例中:适配器、桥接器、职责链、命令、装饰器、外观、工厂方法、享元、点名、数据传输对象、空对象、代理、单例、状态、策略、模板方法以及访问者。 为数据传输引入了XML,为用户界面引入了SWT和Flash。 重新撰写了有关并发的章节,有助于读者掌握线程的相关知识。 专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。 支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。 覆盖了所有基础知识,同时论述了高级特性。 详细地阐述了面向对象原理。 在线可获得Java讲座CD,其中包含Bruce Eckel的全部多媒体讲座。 3. 作者简介 Bruce Eckel是MindView公司(www.MindView.net)的总裁,该公司向客户提供软件咨询和培训。他是C标准委员会拥有表决权的成员之一,拥有应用物理学学士和计算机工程硕士学位。除本书外,他还是《C编程思想》的作者,并与人合著了《C++编程思想 第2卷》(这两本书的英文影印版及中文版均已由机械工业出版社引进出版)及其他著作。他已经发表了150多篇论文,还经常参加世界各地的研讨会并进行演讲。 4. 目录 读者评论 前言 简介 第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换对象 1.8 单根继承结构 1.9 容器 1.9.1 参数化类型(范型) 1.10 对象的创建和生命期 1.11 异常处理:处理错误 1.12 并发编程 1.13 Java与Internet 1.13.1 Web是什么 1.13.2 客户端编程 1.13.3 服务器端编程 1.22 总结 第2章 一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 2.4.1 域和方法 2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个Java程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 注释文档 2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 类型转换操作符 3.15.1 截尾和舍入 3.15.2提升 3.16 Java没有“sizeof” 3.17 操作符小结 3.18 总结 第4章 控制执行流程 4.1 true和false 4.2 if-else 4.3 迭代 4.3.1 do-while 4.3.2 for 4.3.3 逗号操作符 4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以返回值区分重载方法 5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 成员初始化 5.6.1 指定初始化 5.7 构造器初始化 5.7.1 初始化顺序 5.7.2. 静态数据的初始化 5.7.3. 显式的静态初始化 5.7.4. 非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O系统 第19章 枚举类型 第20章 注解 第21章 并发 第22章 图形化用户界面 附录A 补充材料 可下载的补充材料 Thinking in C:Java的基础 Java编程思想 研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课 设计咨询与复审 附录B 资源 软件 编辑器与IDE 书籍 分析与设计 Python 我的著作列表 索引 ...

2020-04-14 · 2 min · 350 words · Hank