0%

基本信息

名称: 鸟哥的Linux私房菜-基础学习篇
作者信息: 作者: 鸟哥 [ 中文 pdf ]

简单介绍

《鸟哥的Linux私房菜:基础学习篇》第二版是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。《鸟哥的Linux私房菜:基础学习篇》分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
第一部分 Linux的规则与安装
 第0章 计算机概论 
 第1章 Linux是什么 
 第2章 Linux如何学习 
 第3章 主机规划与磁盘分区 
 第4章 安装CentOS 5.x与多重引导小技巧 
 第5章 首次登录与在线求助man page 
第二部分 Linux文件、目录与磁盘格式
 第6章 Linux的文件权限与目录配置 
 第7章 Linux文件与目录管理 
 第8章 Linux磁盘与文件系统管理 
 第9章 文件与文件系统的压缩与打包 
第三部分 学习shell与shell script
 第10章 vim程序编辑器 
 第11章 认识与学习bash 
 第12章 正则表达式与文件格式化处理 
 第13章 学习shell script 
第四部分 Linux使用者管理
 第14章 Linux账号管理与ACL权限设置 
 第15章 磁盘配额(Quota)与高级文件系统管理 
 第16章 例行性工作(crontab) 
 第17章 程序管理与SELinux初探 
 第18章 认识系统服务(daemons) 
 第19章 认识与分析日志文件 
第五部分 Linux系统管理员
 第20章 启动流程、模块管理与Loader 
 第21章 系统设置工具(网络与打印机)与硬件检测 
 第22章 软件安装:源码与Tarball 
 第23章 软件安装:RPM、SRPM与YUM功能  
 第24章 X Window设置介绍 
 第25章 Linux备份策略 
 第26章 Linux内核编译与管理 
附录A 快速索引

亚马逊链接

基本信息

名称: Oracle核心技术(英文)
作者信息: 作者: Jonathan Lewis [ 英文 pdf ]

简单介绍

Oracle资深专家Johnathan Lewis最新力作DBA和开发者必须了解的Oracle核心机制一本令人震撼、让你大开眼界的必读经典本书浓缩了Oracle的核心技术和精华,系统地介绍了数据库性能问题出现的原因以及背后的核心原理,以深入浅出的方式清晰地阐释了如何识别造成瓶颈的原因、如何优化数据库系统、为什么并发会严重降低性能等,是你解决数据库性能问题的必备工具。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
第1章 准备开始  1
1.1  Oracle的流程  1
1.2  Oracle实战  4
1.3  小结  4
第2章 redo和undo  5
2.1  基本数据改变  5
2.1.1  数据改变的方法  6
2.1.2  示例  6
2.1.3  任务报告  9
2.1.4  观察总结  10
2.2  ACID  11
2.3  redo复杂度  13
2.4  undo复杂度  18
2.4.1  读一致性  19
2.4.2  回滚  19
2.5  小结  21
第3章 事务与一致性  22
3.1  冲突解决  22
3.2  事务与undo  23
3.2.1  事务的开始与结束  24
3.2.2  事务表  25
3.2.3  undo块回顾  27
3.3  数据块访问与undo  30
3.3.1  设置场景  30
3.3.2  事务列表  31
3.3.3  并发动作  33
3.4  提交SCN  38
3.4.1  提交清除  39
3.4.2  延迟块清除  41
3.4.3  事务表回滚  44
3.5  大对象  48
3.6  小结  49
第4章 锁与闩锁  50
4.1  事情有先有后  50
4.1.1  数组  50
4.1.2  指针  51
4.1.3  链表  51
4.1.4  散列表  53
4.2  闩锁  56
4.2.1  闩锁背后的逻辑  56
4.2.2  闩锁活动统计  59
4.2.3  闩锁可扩展性  63
4.3  锁  64
4.3.1  基础结构  65
4.3.2  V$lock的图形展示  66
4.3.3  死锁  69
4.3.4  锁模式  72
4.3.5  保护锁的闩锁  73
4.3.6  KGL锁(和pin)  75
4.3.7  锁和pin  75
4.4  小结  77
第5章 缓存和复制  79
5.1  内存管理  79
5.1.1  granule  80
5.1.2  granule和缓冲区  81
5.2  多个数据块缓存  83
5.2.1  granule和缓冲池  84
5.2.2  缓冲池  85
5.3  工作集  86
5.4  LRU/TCH算法  88
5.4.1  LRU/TCH实战  89
5.4.2  重新链接缓冲区  90
5.5  REPL_AUX  92
5.6  查找数据  94
5.6.1  pin住缓冲区  96
5.6.2  逻辑I/O  98
5.6.3  更新(update)  99
5.6.4  载入散列链  100
5.6.5  读一致性拷贝  100
5.6.6  物理I/O  101
5.6.7  表扫描  102
5.7  小结  103
第6章 写入和恢复  105
6.1  目标  105
6.2  日志写进程  106
6.2.1  日志写进程写入  108
6.2.2  PL/SQL优化  110
6.2.3  ACID异常  113
6.2.4  提交改进  113
6.2.5  过程  115
6.2.6  重做日志浪费  118
6.2.7  私有重做  119
6.3  数据库写进程  120
6.3.1  缓冲区头部  121
6.3.2  检查点队列  121
6.3.3  增量检查点  123
6.4  数据库写进程的交互  124
6.4.1  数据库写进程与日志写进程  124
6.4.2  数据库写进程和LRU  125
6.4.3  检查点和队列  128
6.4.4  缓冲区头部队列  132
6.4.5  检查点和日志文件  133
6.5  恢复  135
6.5.1  介质恢复  136
6.5.2  备用数据库  137
6.5.3  闪回数据库  137
6.5.4  副作用  138
6.6  小结  139
第7章 解析与优化  141
7.1  理解SQL代码  141
7.1.1  解析  141
7.1.2  优化  142
7.1.3  解释tkprof Summaries  143
7.2  数据字典缓存  145
7.2.1  结构  149
7.2.2  数据字典缓存活动  151
7.3  什么是解析调用  154
7.3.1  Cursor Caching  155
7.3.2  持有游标  157
7.4  库缓存  158
7.4.1  共享池结构  160
7.4.2  精妙的共享池结构  163
7.4.3  那么,行动吧!  168
7.5  解析和优化  170
7.5.1  executing、locking和pinning  173
7.5.2  互斥锁  174
7.6  小结  175
第8章 RAC及“缺陷”  176
8.1  RAC示意图  177
8.2  重点是什么  180
8.2.1  高可用性  180
8.2.2  可扩展性  181
8.2.3  网格  182
8.3  它如何工作  183
8.3.1  全局资源目录  183
8.3.2  Master和Shadow  186
8.3.3  GCS和GES  189
8.3.4  缓存融合  190
8.3.5  后果  193
8.4  恢复  195
8.5  序列  196
8.5.1  缓存序列  197
8.5.2  深入解析序列  197
8.5.3  有序的序列  199
8.5.4  序列和索引  201
8.6  小结  203
附录A  转储与调试  205
词汇表  216
索引  224

亚马逊链接

基本信息

名称: R语言编程艺术
作者信息: 作者: 麦特洛夫 [ 中文 pdf ]

简单介绍

R是一种用于统计计算与做图的开源软件,同时也是一种编程语言,它广泛应用于企业和学术界的数据分析领域,正在成为最通用的语言之一。由于近几年数据挖掘、大数据等概念的走红,R也越来越多地被人关注。截至本文完成之日,CRAN(http://cran。r-project。org/)上共有4383个包,涉及统计、化学、经济、生物、医学、心理、社会学等各个学科。不同类型的公司,比如Google、辉瑞、默克、美国银行、洲际酒店集团和壳牌公司都在使用它,同时以S语言环境为基础的R语言由于其鲜明的特色,一出现就受到了统计专业人士的青睐,成为国外大学里相当标准的统计软件。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
译者序
前言
致谢
第1章 快速入门
1.1 怎样运行R
1.1.1 交互模式
1.1.2 批处理模式
1.2 第一个R会话
1.3 函数入门
1.3.1 变量的作用域
1.3.2 默认参数
1.4 R语言中一些重要的数据结构
1.4.1 向量,R语言中的战斗机
1.4.2 字符串
1.4.3 矩阵
1.4.4 列表
1.4.5 数据框
1.4.6 类
1.5 扩展案例:考试成绩的回归分析
1.6 启动和关闭R
1.7 获取帮助
1.7.1 help()函数
1.7.2 example()函数
1.7.3 如果你不太清楚要查找什么
1.7.4 其他主题的帮助
1.7.5 批处理模式的帮助
1.7.6 互联网资源
第2章 向量
2.1 标量、向量、数组与矩阵
2.1.1 添加或删除向量元素
2.1.2 获取向量长度
2.1.3 作为向量的矩阵和数组
2.2 声明
2.3 循环补齐
2.4 常用的向量运算
2.4.1 向量运算和逻辑运算
2.4.2 向量索引
2.4.3 用:运算符创建向量
2.4.4 使用seq()创建向量
2.4.5 使用rep()重复向量常数
2.5 使用all()和any()
2.5.1 扩展案例:寻找连续出现1的游程
2.5.2 扩展案例:预测离散值时间序列
2.6 向量化运算符
2.6.1 向量输入,向量输出
2.6.2 向量输入,矩阵输出
2.7 NA与NULL值
2.7.1 NA的使用
2.7.2 NULL的使用
2.8 筛选
2.8.1 生成筛选索引
2.8.2 使用subset()函数筛选
2.8.3 选择函数which()
2.9 向量化的ifelse()函数
2.9.1 扩展案例:度量相关性
2.9.2 扩展案例:对鲍鱼数据集重新编码
2.10 测试向量相等
2.11 向量元素的名称
2.12 关于c()的更多内容
第3章 矩阵和数组
3.1 创建矩阵
3.2 一般矩阵运算
3.2.1 线性代数运算
3.2.2 矩阵索引
3.2.3 扩展案例:图像操作
3.2.4 矩阵元素筛选
3.2.5 扩展案例:生成协方差矩阵
3.3 对矩阵的行和列调用函数
3.3.1 使用apply()函数
3.3.2 扩展案例:寻找异常值
3.4 增加或删除矩阵的行或列
3.4.1 改变矩阵的大小
3.4.2 扩展案例:找到图中距离最近的一对端点
3.5 向量与矩阵的差异
3.6 避免意外降维
3.7 矩阵的行和列的命名问题
3.8 高维数组
第4章 列表
4.1 创建列表
4.2 列表的常规操作
4.2.1 列表索引
4.2.2 增加或删除列表元素
4.2.3 获取列表长度
4.2.4 扩展案例:文本词汇索引
4.3 访问列表元素和值
4.4 在列表上使用apply系列函数
4.4.1 lapply()和sapply()的使用
4.4.2 扩展案例:文本词汇索引(续)
4.4.3 扩展案例:鲍鱼数据
4.5 递归型列表
……
第5章 数据框
第6章 因子和表
第7章 R语言编程结构
第8章 数学运算与模拟
第9章 面向对象的编程
第10章 输入与输出
第11章 字符串操作
第12章 绘图
第13章 调试
第14章 性能提升:速度和内存
第15章 R与其他语言的接口
第16章 R语言并行计算
附录A 安装R
附录B 安装和使用包

亚马逊链接

基本信息

名称: SEO的艺术 原书第2版
作者信息: 作者: 恩吉 [ 中文 pdf ]

简单介绍

《O’Reilly精品图书系列:SEO的艺术(原书第2版)》由恩吉所著,《O’Reilly精品图书系列:SEO的艺术(原书第2版)》是真正的巨著,作者都是SEO领域的大腕,在SEO顾问、培训以及搜索引擎的理解方面有着胜人一筹的独到观点,而从内容看,《O’Reilly精品图书系列:SEO的艺术(原书第2版)》涵盖了SEO的各个领域,有丰富的实例,不仅详细剖析了不同类型网站在SEO不同阶段的最佳实践,还指出了许多过时以及危险的错误做法,仔细阅读这本书,在了解SEO的正确做法之外,还能够帮助读者远离“黑帽”SEO,实现可持续的网站目标。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146

前言
第1章 搜索:反映认知、连接商务
1.1 搜索引擎的任务
1.2 搜索引擎的市场份额
1.3 人类搜索的目标
1.4 确定搜索者意图:营销人员和搜索引擎面临的共同挑战
1.5 人们如何搜索
1.6 搜索引擎怎样驱动网络商务
1.7 注意力跟踪:用户如何浏览搜索结果页面
1.8 点击跟踪:用户如何点击自然搜索和付费搜索结果
1.9 结论
第2章 搜索引擎基础
2.1 理解搜索引擎结果
2.2 基于算法的排名系统:爬行、索引和排名
2.3 确定搜索者意图并交付相关、新鲜的内容
2.4 分析排名因素
2.5 使用高级搜索技术
2.6 垂直搜索引擎
2.7 结论
第3章 确定SEO目标,定义网站受众
3.1 SEO从业者所能完成的策略性目标
3.2 每个SEO计划都是量身定制的
3.3 理解搜索引擎流量和用户意图
3.4 在网站开发之前制订SEO计划
3.5 理解受众,寻找合适的定位
3.6 为原始流量开展SEO
3.7 为电子商务开展SEO
3.8 为头脑份额/品牌开展SEO
3.9 为客户挖掘和直接营销开展SEO
3.10 为声誉管理开展SEO
3.11 为意识形态影响力开展SEO
3.12 规划和评估的高级方法
3.13 结论
第4章 SEO的开始阶段
4.1 规划的要素
4.2 确认网站开发过程和参与者
4.3 定义网站信息架构
4.4 审计现有网站,发现SEO问题
4.5 确定当前服务器统计软件并获得权限
4.6 确定主要竞争对手
4.7 评估历史进展
4.8 建立当前索引状态的基准
4.9 建立当前排名基准
4.10 建立当前流量来源和流量的基准
4.11 利用企业资源推动SEO
4.12 整合企业资产和历史数据,进行SEO/网站SWOT分析
4.13 结论
第5章 关键词研究
5.1 策略性的考虑
5.2 理解关键词需求曲线的长尾
5.3 传统方法:行业专门知识,网站内容分析
5.4 关键词研究工具
5.5 确定关键词价值/潜在的ROI
5.6 利用关键词需求的长尾
5.7 结论
第6章 开发SEO友好的网站
6.1 让搜索引擎能够访问你的网站
6.2 创建最优的信息架构
6.3 根域、子域和微型网站
6.4 域名/URL优化
6.5 关键词定位
6.6 内容优化
6.7 重复内容问题
6.8 用Cookie和会话ID控制内容
6.9 内容交互和搜索蜘蛛控制
6.10 重定向
6.11 CMS问题
6.12 多语言/国家定位的最佳实践
6.13 结论
第7章 创建值得链接的内容和链接营销
7.1 链接如何影响搜索引擎排名
7.2 深入探讨搜索引擎评判链接的方法
7.3 链接心理学
7.4 链接建设类型
7.5 选择正确的链接建设策略
7.6 基于内容的链接获取的更多方法
7.7 基于利益的链接营销
7.8 搜索引擎如何与链接垃圾交锋
7.9 通过社会化网络得到链接
7.10 结论
第8章 社会化媒体和用户数据在搜索结果与排名中所起的作用
8.1 为什么依靠社会化信号
8.2 直接影响搜索结果的社会化信号
8.3 社会化媒体营销的间接影响
8.4 监控、度量和改进社会化媒体营销
8.5 作为搜索质量度量指标的用户交互
8.6 文档分析
8.7 优化用户体验以改进SEO
8.8 其他社会化媒体资源
8.9 结论
第9章 优化垂直搜索
9.1 垂直搜索中的机会
9.2 为本地搜索进行优化
9.3 优化产品搜索
9.4 优化新闻、博客和源搜索
9.5 其他:移动、视频/多媒体搜索
9.6 结论
第10章 跟踪结果与度量成功
10.1 为什么度量成功对SEO过程不可或缺
10.2 度量搜索流量
10.3 将SEO与转化和ROI联系起来
10.4 竞争性和诊断搜索指标
10.5 长尾SEO的关键绩效指标
10.6 跟踪重复内容
10.7 其他第三方工具
10.8 结论
第11章 域更改、SEO后再设计以及故障诊断
11.1 内容移动基础
11.2 在网站重新设计期间和之后维持搜索引擎可见性
11.3 在域名更改期间和之后维持搜索引擎可见性
11.4 更换服务器
11.5 隐藏内容
11.6 垃圾过滤和惩罚
11.7 内容剽窃
11.8 更换SEO供应商或者团队成员
11.9 结论
第12章 SEO调查和研究
12.1 SEO调查和分析
12.2 不同搜索引擎和搜索类型的算法差异分析
12.3 竞争分析
12.4 使用搜索引擎提供的SEO工具
12.5 Web上的SEO行业
12.6 参加会议和组织
12.7 结论
第13章 建立内部SEO团队、外包还是两者皆可
13.1 SEO的任务
13.2 使用内部人才和外包带来的活力与挑战
13.3 网站复杂性对SEO工作量的影响
13.4 小型机构的解决方案
13.5 大型机构的解决方案
13.6 雇用SEO人才
13.7 与外部专家合作的情况
13.8 选择SEO公司/顾问
13.9 组合外包SEO和内部SEO团队
13.10 在机构中建立SEO文化
13.11 结论
第14章 进化中的艺术形式:SEO的未来
14.1 搜索的持续演变
14.2 更多搜索内容和内容类型
14.3 个性化、本地化和用户对搜索的影响
14.4 本地、移动和语言识别搜索越来越重要
14.5 市场饱和度和竞争加剧
14.6 SEO是持久的艺术形式
14.7 结论
术语表

亚马逊链接

基本信息

名称: Scala编程
作者信息: 作者: Martin Odersky [ 中文 pdf ]

简单介绍

《Scala编程》经过精心编排以方便读者学习。开始的几章会有足够的基本知识做铺垫,让你能够立即上手用Scala实现简单的任务。全书经过组织,使每个新概念都建立于先前的概念之上-通过一系列的步骤确保帮助你掌握Scala语言及其所体现的重要编程理念。
作为Scala的综合教程和参考,《Scala编程》覆盖了语言的全部内容及重要的库。你将学到如何:用Scala编写脚本和系统从Scala调用、Java标准库使用Scala的面向对象特性以函数式风格编程使用Scala的集合库使用特质和混入做设计设计内嵌领域特定语言(DSL)受益于模式匹配利用函数和闭包创建新的控制抽象通过单元测试确保质量用actor编写并行程序
由Scala语言的设计者共同执笔,这本权威书籍将逐步引导你学习Scala语言及其背后的思想。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
图示清单
表格清单
代码清单

致谢
简介
第1章 可伸展的语言
第2章 Scala入门初探
第3章 Scala入门再探
第4章 类和对象
第5章 基本类型和操作
第6章 函数式对象
第7章 内建控制结构
第8章 函数和闭包
第9章 控制抽象
第10章 组合与继承
第11章 Scala的层级
第12章 特质
第13章 包和引用
第14章 断言和单元测试
第15章 样本类和模式匹配
第16章 使用列表
第17章 集合类型
第18章 有状态的对象
第19章 类型参数化
第20章 抽象成员
第21章 隐式转换和参数
第22章 实现列表
第23章 重访For表达式
第24章 抽取器(Extractors)
第25章 注解
第26章 使用XML
第27章 使用对象的模块化编程
第28章 对象相等性
第29章 结合Scala和Java
第30章 Actor和并发
第31章 连结符解析
第32章 GUI编程
第33章 Scell试算表
附录AUnix和Windows的Scala脚本
术语表
参考文献
关于作者
索引

亚马逊链接

基本信息

名称: 了不起的Node.js:将JavaScript进行到底(英文)
作者信息: 作者: Guillermo Rauch [ 英文 pdf ]

简单介绍

Node.js是一个由JavaScript书写而成的强大的web开发框架,它让开发强壮的、伸缩性良好的服务端web应用变得更加简单,容易。本书向你展示了什么是Node以及如何让你在项目中使用它。本书包含大量实际应用中的示例程序,证明了为什么Node.js会快速成为web开发首选工具的原因,通过本书,你能够快速熟悉和掌握达到如下目标所需的Node知识和技能:
了解Node基于事件轮询的架构、无阻塞IO以及事件驱动的编程方式
精通Node.js的API
轻松实现开发实时应用相关的技术,如SOCKET.IO和HTML5 WEBSOCKETS
编写能够支持跨多台服务器的高并发应用
通过Node来支持多种数据库以及数据存储工具
编写在单台服务器情况下能够处理万级并发量的程序
能够在一个包含更多Node知识和注解示例(含源代码)的网站上和其他开发者进行实时地沟通交流
本书包含大量全彩插图和实用的源代码,绝对是一本革命性web开发工具——Node的实用指南。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
PART Ⅰ 从安装与概念开始
CHAPTER 1 安装……………………………………….. 3
在Windows下安装……………………………………….. 3
在OS.X下安装. ………………………………………… 4
在Linux下安装…………………………………………. 5
编译. ……………………………………………………5
确保安装成功. ………………………………………..5
Node.REPL…………………………………………. 5
执行文件…………………………………………………. 6
NPM……………………………………………………….. 6
安装模块…………………………………………………..7
自定义模块. ……………………………………………….8
安装二进制工具包. …………………………………………..9
浏览NPM仓库. ……………………………………………….9
小结……………………………………………………….. 10
CHAPTER 2 JavaScript概览…………………………………..11
介绍…………………………………………………. 11
JavaScript基础…………………………………………….. 12
类型. ………………………………………………… 12
类型的困惑. ……………………………………….. 12
函数. …………………………………………………. 13
THIS、FUNCTION #CALL以及FUNCTION#APPLY……………….. 14
函数的参数数量. ……………………… 14
闭包. ……………………………………………….. 14
类. …………………………………………………….. 15
继承. …………………………………………….. 16
TRY.{}.CATCH.{}……………………………….. 17
v8中的JavaScript…………………………. 17
OBJECT#KEYS………………………………………………. 18
ARRAY#ISARRAY………………………………………… 18
数组方法…………………………………………. 18
字符串方法.. ……………………………………………. 19
JSON……………………………………………………. 19
FUNCTION#BIND………………………………………………. 19
FUNCTION#NAME………………………………………. 19
PROTO(继承). …………………………………….. 20
存取器………………………………………………. 20
小结…………………………………………………….. 21
CHAPTER 3 阻塞与非阻塞IO…………………………… 23
能力越强,责任就越大…………………………………………. 23
阻塞. ……………………………………………………. 25
单线程的世界. ……………………………………….. 27
错误处理…………………………………………….. 29
堆栈追踪………………………………………… 30
小结……………………………………………………… 32
CHAPTER 4 Node中的JavaScript ………………………………. 33
global对象………………………………………………. 33
实用的全局对象. ………………………………………… 34
模块系统…………………………………………………… 34
绝对和相对模块. ………………………………………….. 35
暴露API. ……………………………………………………… 37
事件………………………………………………… 38
buffer……………………………………………………… 40
小结…………………………………………………………. 41
PART Ⅱ Node重要的API
CHAPTER 5 命令行工具(CLI)以及FS API:首个Node应用………………. 45
需求…………………………………………. 45
编写首个Node程序……………………………….. 46
创建模块………………………………………. 46
同步还是异步. ………………………. 47
理解什么是流(stream)…………………………….. 49
输入和输出. …………………………………………………. 50
重构. …………………………………. 53
用fs进行文件操作. ………………………… 55
对CLI一探究竟. …………………………………………. 56
argv……………………………………………. 57
工作目录……………………………….. 57
环境变量……………………………………. 58
退出. ……………………………………….. 58
信号. …………………………………………………. 58
ANSI转义码…………………………………….. 59
对fs一探究竟. …………………………………………. 59
Stream………………………………………………… 59
监视. …………………………………… 60
小结……………………………………………… 61
CHAPTER 6 TCP ……………………………………. 63
TCP有哪些特性. …………………………………………….. 64
面向连接的通信和保证顺序的传递. ……………………… 64
面向字节…………………………………. 65
可靠性……………………………………….. 65
流控制………………………………….. 65
拥堵控制………………………………………. 65
Telnet………………………………………………………. 65
基于TCP的聊天程序……………………………………….. 68
创建模块………………………………. 68
理解NET.SERVER.API…………………… 68
接收连接………………………………… 70
data事件. ……………………………………………… 71
状态以及记录连接情况. …………………………………. 73
圆满完成此程序. …………………………………….. 75
一个IRC客户端程序…………………………………… 77
创建模块………………………………………. 77
理解NET#STREAM.API.. ………………………………….. 78
实现部分IRC协议. ………………………………………….. 78
测试实际的IRC服务器. ……………………………. 78
小结……………………………………………………….. 79
CHAPTER 7 HTTP ………………………………………….. 81
HTTP结构………………………………………………… 81
头信息. ……………………………………………… 82
连接…………………………………………………….. 87
一个简单的Web服务器………………………………………….. 88
创建模块………………………………… 88
输出表单……………………………………………. 88
method和URL. ……………………………………. 90
数据. ………………………………………. 92
整合. ………………………………………… 94
让程序更健壮. ………………………………. 95
一个Twitter.Web客户端………………………………….. 96
创建模块………………………………… 96
发送一个简单的HTTP请求. …………………. 97
发送数据………………………………….. 98
获取推文…………………………………………. 99
superagent来拯救………………………………………. 102
使用up重启HTTP服务器………………………………. 103
小结……………………………………… 104
PART Ⅲ Web开发
CHAPTER 8 Connect ………………………… 107
使用HTTP构建一个简单的网站. ………………………………… 108
通过Connect实现一个简单的网站……………………………….. 111
中间件. …………………………………………. 112
书写可重用的中间件. …………………….114
static中间件. ………………………………………119
query中间件. …………………………………120
logger中间件…………………………………………… 120
body.parser中间件. ……………………………122
cookie…………………………………………………125
会话(session). ………………………………..126
Redis.session…………………………………………..131
methodOverride中间件. ………………………132
basicAuth中间件. ………………………………..132
小结…………………………………………………….. 134
CHAPTER 9 Express…………………………………………..135
一个小型Express应用. ……………………………….. 135
创建模块……………………………………….136
HTML…………………………………………………..136
SETUP………………………………………………….137
定义路由……………………………………..137
查询. ………………………………………….140
运行. ……………………………………………..141
设置………………………………………………… 142
模板引擎……………………………………………… 143
错误处理……………………………………………….. 144
快捷方法…………………………………………. 144
路由………………………………………… 146
中间件. ……………………………………………. 148
代码组织策略. ………………………………….. 149
小结…………………………………………. 151
CHAPTER 10 WebSocket ……………… 153
Ajax………………………………………. 153
HTML5.WebSocket……………………………………….. 156
一个ECHO示例. ………………………………………………… 157
初始化项目. ………………………………………157
建立服务器. …………………………………………..158
建立客户端. ………………………………..159
运行示例程序. ……………………………..160
鼠标光标…………………………………… 161
初始化示例程序. …………………………………..161
建立服务器. ……………………………………..161
建立客户端. ……………………………….164
运行示例程序. …………………………………..166
面临一个挑战. ……………………………………… 166
关闭并不意味着断开连接. ………………………..166
JSON…………………………………….167
重连. ……………………………………………167
广播. …………………………………………167
WebSocket属于HTML5:早期浏览器不支持. ……………………..167
解决方案………………………………………….167
小结……………………………………………………. 167
CHAPTER 11 Socket.IO………………………………………169
传输…………………………………………. 170
断开.VS.关闭. ……………………………………..170
事件. ……………………………………170
命名空间……………………………………….171
聊天程序…………………………………………. 172
初始化程序. …………………………………172
构建服务器. ……………………………………172
构建客户端. …………………………………173
事件和广播. ………………………………….175
消息接收确认. ……………………………179
一个轮流做DJ的应用………………………….. 180
扩展聊天应用. …………………………………….181
集成Grooveshark.API. ………………………….182
播放歌曲………………………………………..185
小结……………………………………………. 190
PART Ⅳ 数据库
CHAPTER 12 MongoDB…………………..193
安装………………………………………….. 195
使用MongoDB:一个用户认证的例子. ……………………………. 195
构建应用程序. …………………………………195
创建Express.App.. …………………………196
连接MongoDB. ……………………………..200
创建文档………………………………..201
查找文档…………………………….203
身份验证中间件. …………………………….204
校验.. ……………………………………….205
原子性……………………………………….206
安全模式…………………………..206
Mongoose介绍………………………………….. 206
定义模型………………………………….207
定义嵌套的键. ……………………..208
定义嵌套文档. ……………………………….209
构建索引……………………………………209
中间件………………………………………….209
探测模型状态.. ………………………….210
查询. ……………………………………….210
扩展查询………………………………….210
排序.. ………………………………….211
选择. ………………………………………………211
限制.. ……………………………….211
跳过. …………………………………..211
自动产生键. ………………………….211
转换. ……………………………………….212
一个使用Mongoose的例子…………………………………. 212
构建应用……………………………212
重构. …………………………213
建立模型……………………………213
小结…………………………………… 215
CHAPTER 13 MySQL…………………………………….217
node-mysql…………………………………. 217
初始化项目. …………………………………217
Express应用. ……………………………..218
连接MySQL. ……………………………….219
初始化脚本. …………………………………220
创建数据…………………………………………224
获取数据……………………………….228
sequelize…………………………………….. 229
初始化sequelize. …………………………..230
初始化Express应用. ………………………………230
连接sequelize. …………………….233
定义模型和同步. ……………………… 234
创建数据……………………………236
获取数据………………………………..238
删除数据…………………………239
完整地完成应用. ………………………….240
小结…………………………………… 241
CHAPTER 14 Redis………………………………….. 243
安装Redis……………………………………….. 244
Redis查询语言. ……………………………………….. 245
数据类型……………………………………… 245
字符串. ……………………………..246
哈希. ………………………………………….246
列表. ………………………………….. 248
数据集. ……………………………….249
有序数据集. …………………………………..249
Redis和Node. …………………………………… 249
使用node-redis实现一个社交图谱. ………….250
小结………………………………….. 259
PART Ⅴ 测试
CHAPTER 15 代码共享 …………………………… 263
什么样的代码可以共享……………………………………. 263
书写兼容的JavaScript代码………………………….. 264
导出模块………………………………………………264
模拟实现ECMA.API. …………………………..265
模拟实现Node.API. ………………………………..267
模拟实现浏览器端API. ………………………….267
跨浏览器的继承实现. ………………………268
集成到一起:browserbuild. …………………. 268
基础案例………………………………269
小结………………………………….. 271
CHAPTER 16 测试…………………………….. 273
简单测试…………………………………. 273
测试目标……………………………………… 274
测试策略…………………………….. 274
测试程序……………………………………………275
expect.js…………………………………………. 276
API一览. …………………………………..276
Mocha…………………………………………. 278
测试异步代码. …………………………….279
BDD风格. …………………………..281
TDD风格. …………………………………281
export风格. ……………………………282
在浏览器端使用Mocha. ……………………………..282
小结……………………………… 284
索引 ……………………………….. 285

亚马逊链接

基本信息

名称: Web之困:现代Web应用安全指南(英文)
作者信息: 作者: Michal Zalewski [ 英文 pdf ]

简单介绍

“Thorough and comprehensive coverage from one of the foremost experts in browser security.” -Tavis Ormandy, Google Inc. Modern web applications are built on a tangle of technologies that have been developed over time and then haphazardly pieced together. Every piece of the web application stack, from HTTP requests to browser-side scripts, comes with important yet subtle security consequences. To keep users safe, it is essential for developers to confidently navigate this landscape. In The Tangled Web, Michal Zalewski, one of the world’s top browser security experts, offers a compelling narrative that explains exactly how browsers work and why they’re fundamentally insecure. Rather than dispense simplistic advice on vulnerabilities, Zalewski examines the entire browser security model, revealing weak points and providing crucial information for shoring up web application security. You’ll learn how to: * Perform common but surprisingly complex tasks such as URL parsing and HTML sanitization * Use modern security features like Strict Transport Security, Content Security Policy, and Cross-Origin Resource Sharing * Leverage many variants of the same-origin policy to safely compartmentalize complex web applications and protect user credentials in case of XSS bugs * Build mashups and embed gadgets without getting stung by the tricky frame navigation policy * Embed or host user-supplied content without running into the trap of content sniffing For quick reference, “Security Engineering Cheat Sheets” at the end of each chapter offer ready solutions to problems you’re most likely to encounter. With coverage extending as far as planned HTML5 features, The Tangled Web will help you create secure web applications that stand the test of time.

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Preface ………………………………………………………………………………………………………..xvii
Chapter 1: Security in the World of Web Applications ………………………………………………..1
PART I: ANATOMY OF THE WEB …………………………………………………………………. 21
Chapter 2: It Starts with a URL …………………………………………………………………………….23
Chapter 3: Hypertext Transfer Protocol ………………………………………………………………….41
Chapter 4: Hypertext Markup Language ………………………………………………………………. 69
Chapter 5: Cascading Style Sheets ………………………………………………………………………87
Chapter 6: Browser-Side Scripts …………………………………………………………………………..95
Chapter 7: Non-HTML Document Types ……………………………………………………………….117
Chapter 8: Content Rendering with Browser Plug-ins………………………………………………..127
PART II: BROWSER SECURITY FEATURES ……………………………………………………… 139
Chapter 9: Content Isolation Logic ……………………………………………………………………..141
Chapter 10: Origin Inheritance………………………………………………………………………….165
Chapter 11: Life Outside Same-Origin Rules ………………………………………………………….173
Chapter 12: Other Security Boundaries ……………………………………………………………….187
Chapter 13: Content Recognition Mechanisms……………………………………………………….197
Chapter 14: Dealing with Rogue Scripts ………………………………………………………………213
Chapter 15: Extrinsic Site Privileges ……………………………………………………………………225
PART III: A GLIMPSE OF THINGS TO COME ………………………………………………….. 233
Chapter 16: New and Upcoming Security Features …………………………………………………235
Chapter 17: Other Browser Mechanisms of Note ……………………………………………………255
Chapter 18: Common Web Vulnerabilities……………………………………………………………261
Epilogue ……………………………………………………………………………………………………..267
Notes …………………………………………………………………………………………………………269
Index ………………………………………………………………………………………………………….283

亚马逊链接

基本信息

名称: unix网络编程第一卷
作者信息: 作者: 史蒂文斯 [ 中文 pdf ]

简单介绍

《UNIX网络编程(卷1):套接字联网API(第3版)》全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
《UNIX网络编程(卷1):套接字联网API(第3版)》内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
第一部分 简介和TCP/IP
第1章 简介 2
1.1 概述 2
1.2 一个简单的时间获取客户程序 5
1.3 协议无关性 9
1.4 错误处理:包裹函数 10
1.5 一个简单的时间获取服务器程序 12
1.6 本书中客户/服务器程序示例索引表 14
1.7 OSI模型 16
1.8 BSD网络支持历史 17
1.9 测试用网络及主机 19
1.10 Unix标准 22
1.11 64位体系结构 24
1.12 小结 25
习题 25

第2章 传输层:TCP、UDP和SCTP 27 2.1 概述 27 2.2 总图 27 2.3 用户数据报协议(UDP) 29 2.4 传输控制协议(TCP) 30 .2.5 流控制传输协议(SCTP) 31 2.6 TCP连接的建立和终止 31 2.7 TIME_WAIT状态 37 2.8 SCTP关联的建立和终止 38 2.9 端口号 42 2.10 TCP端口号与并发服务器 43 2.11 缓冲区大小及限制 45 2.12 标准因特网服务 50 2.13 常见因特网应用的协议使用 51 2.14 小结 52 习题 53

第二部分 基本套接字编程 第3章 套接字编程简介 56 3.1 概述 56 3.2 套接字地址结构 56 3.3 值-结果参数 61 3.4 字节排序函数 63 3.5 字节操纵函数 66 3.6 inet_aton、inet_addr和inet_ntoa函数 67 3.7 inet_pton和inet_ntop函数 68 3.8 sock_ntop和相关函数 70 3.9 readn、writen和readline函数 72 3.10 小结 76 习题 76

第4章 基本TCP套接字编程 77 4.1 概述 77 4.2 socket函数 77 4.3 connect函数 80 4.4 bind函数 81 4.5 listen函数 84 4.6 accept函数 88 4.7 fork和exec函数 90 4.8 并发服务器 91 4.9 close函数 93 4.10 getsockname和getpeername函数 94 4.11 小结 96 习题 96

第5章 TCP客户/服务器程序示例 97 5.1 概述 97 5.2 TCP回射服务器程序:main函数 97 5.3 TCP回射服务器程序:str_echo函数 98 5.4 TCP回射客户程序:main函数 99 5.5 TCP回射客户程序:str_cli函数 100 5.6 正常启动 101 5.7 正常终止 102 5.8 POSIX信号处理 103 5.9 处理SIGCHLD信号 106 5.10 wait和waitpid函数 108 5.11 accept返回前连接中止 111 5.12 服务器进程终止 112 5.13 SIGPIPE信号 113 5.14 服务器主机崩溃 114 5.15 服务器主机崩溃后重启 115 5.16 服务器主机关机 116 5.17 TCP程序例子小结 116 5.18 数据格式 117 5.19 小结 120 习题 120

第6章 I/O复用:select和poll函数 122 6.1 概述 122 6.2 I/O模型 122 6.3 select函数 127 6.4 str_cli函数(修订版) 132 6.5 批量输入 133 6.6 shutdown函数 136 6.7 str_cli函数(再修订版) 137 6.8 TCP回射服务器程序(修订版) 138 6.9 pselect函数 142 6.10 poll函数 144 6.11 TCP回射服务器程序(再修订版) 146 6.12 小结 148 习题 149

第7章 套接字选项 150 7.1 概述 150 7.2 getsockopt和setsockopt函数 150 7.3 检查选项是否受支持并获取默认值 152 7.4 套接字状态 156 7.5 通用套接字选项 156 7.6 IPv4套接字选项 168 7.7 ICMPv6套接字选项 169 7.8 IPv6套接字选项 169 7.9 TCP套接字选项 171 7.10 SCTP套接字选项 173 7.11 fcntl函数 182 7.12 小结 184 习题 184

第8章 基本UDP套接字编程 186 8.1 概述 186 8.2 recvfrom和sendto函数 187 8.3 UDP回射服务器程序:main函数 187 8.4 UDP回射服务器程序:dg_echo函数 188 8.5 UDP回射客户程序:main函数 190 8.6 UDP回射客户程序:dg_cli函数 190 8.7 数据报的丢失 191 8.8 验证接收到的响应 191 8.9 服务器进程未运行 193 8.10 UDP程序例子小结 194 8.11 UDP的connect函数 196 8.12 dg_cli函数(修订版) 199 8.13 UDP缺乏流量控制 200 8.14 UDP中的外出接口的确定 203 8.15 使用select函数的TCP和UDP回射服务器程序 204 8.16 小结 206 习题 207

第9章 基本SCTP套接字编程 208 9.1 概述 208 9.2 接口模型 208 9.3 sctp_bindx函数 212 9.4 sctp_connectx函数 213 9.5 sctp_getpaddrs函数 213 9.6 sctp_freepaddrs函数 213 9.7 sctp_getladdrs函数 214 9.8 sctp_freeladdrs函数 214 9.9 sctp_sendmsg函数 214 9.10 sctp_recvmsg函数 215 9.11 sctp_opt_info函数 215 9.12 sctp_peeloff函数 216 9.13 shutdown函数 216 9.14 通知 217 9.15 小结 221 习题 222

第10章 SCTP客户/服务器程序例子 223 10.1 概述 223 10.2 SCTP一到多式流分回射服务器程序:main函数 223 10.3 SCTP一到多式流分回射客户程序:main函数 225 10.4 SCTP流分回射客户程序:sctpstr_cli函数 226 10.5 探究头端阻塞 228 10.6 控制流的数目 233 10.7 控制终结 233 10.8 小结 234 习题 235

第11章 名字与地址转换 236 11.1 概述 236 11.2 域名系统 236 11.3 gethostbyname函数 239 11.4 gethostbyaddr函数 242 11.5 getservbyname和getservbyport函数 242 11.6 getaddrinfo函数 245 11.7 gai_strerror函数 250 11.8 freeaddrinfo函数 251 11.9 getaddrinfo函数:IPv6 251 11.10 getaddrinfo函数:例子 253 11.11 host_serv函数 254 11.12 tcp_connect函数 254 11.13 tcp_listen函数 257 11.14 udp_client函数 261 11.15 udp_connect函数 263 11.16 udp_server函数 264 11.17 getnameinfo函数 266 11.18 可重入函数 267 11.19 gethostbyname_r和gethostbyaddr_r函数 270 11.20 作废的IPv6地址解析函数 271 11.21 其他网络相关信息 272 11.22 小结 273 习题 274

第三部分 高级套接字编程 第12章 IPv4与IPv6的互操作性 278 12.1 概述 278 12.2 IPv4客户与IPv6服务器 278 12.3 IPv6客户与IPv4服务器 281 12.4 IPv6地址测试宏 283 12.5 源代码可移植性 284 12.6 小结 284 习题 285

第13章 守护进程和inetd超级服务器 286 13.1 概述 286 13.2 syslogd守护进程 286 13.3 syslog函数 287 13.4 daemon_init函数 289 13.5 inetd守护进程 293 13.6 daemon_inetd函数 297 13.7 小结 299 习题 299

第14章 高级I/O函数 300 14.1 概述 300 14.2 套接字超时 300 14.3 recv和send函数 305 14.4 readv和writev函数 306 14.5 recvmsg和sendmsg函数 307 14.6 辅助数据 310 14.7 排队的数据量 313 14.8 套接字和标准I/O 313 14.9 高级轮询技术 316 14.10 T/TCP:事务目的TCP 320 14.11 小结 322 习题 323

第15章 Unix域协议 324 15.1 概述 324 15.2 Unix域套接字地址结构 324 15.3 socketpair函数 326 15.4 套接字函数 327 15.5 Unix域字节流客户/服务器程序 327 15.6 Unix域数据报客户/服务器程序 329 15.7 描述符传递 330 15.8 接收发送者的凭证 337 15.9 小结 340 习题 340

第16章 非阻塞式I/O 341 16.1 概述 341 16.2 非阻塞读和写:str_cli函数(修订版) 342 16.3 非阻塞connect 351 16.4 非阻塞connect:时间获取客户程序 352 16.5 非阻塞connect:Web客户程序 354 16.6 非阻塞accept 362 16.7 小结 363 习题 363

第17章 ioctl操作 365 17.1 概述 365 17.2 ioctl函数 365 17.3 套接字操作 366 17.4 文件操作 367 17.5 接口配置 367 17.6 get_ifi_info函数 369 17.7 接口操作 378 17.8 ARP高速缓存操作 378 17.9 路由表操作 380 17.10 小结 381 习题 381

第18章 路由套接字 382 18.1 概述 382 18.2 数据链路套接字地址结构 382 18.3 读和写 383 18.4 sysctl操作 390 18.5 get_ifi_info函数 394 18.6 接口名字和索引函数 397 18.7 小结 401 习题 401

第19章 密钥管理套接字 402 19.1 概述 402 19.2 读和写 403 19.3 倾泻安全关联数据库 404 19.4 创建静态安全关联 407 19.5 动态维护安全关联 412 19.6 小结 415 习题 416

第20章 广播 417 20.1 概述 417 20.2 广播地址 418 20.3 单播和广播的比较 419 20.4 使用广播的dg_cli函数 422 20.5 竞争状态 424 20.6 小结 431 习题 432

第21章 多播 433 21.1 概述 433 21.2 多播地址 433 21.3 局域网上多播和广播的比较 436 21.4 广域网上的多播 438 21.5 源特定多播 440 21.6 多播套接字选项 441 21.7 mcast_join和相关函数 445 21.8 使用多播的dg_cli函数 450 21.9 接收IP多播基础设施会话声明 451 21.10 发送和接收 454 21.11 SNTP:简单网络时间协议 457 21.12 小结 461 习题 461

第22章 高级UDP套接字编程 462 22.1 概述 462 22.2 接收标志、目的IP地址和接口索引 462 22.3 数据报截断 467 22.4 何时用UDP代替TCP 467 22.5 给UDP应用增加可靠性 469 22.6 捆绑接口地址 478 22.7 并发UDP服务器 482 22.8 IPv6分组信息 483 22.9 IPv6路径MTU控制 486 22.10 小结 487 习题 488

第23章 高级SCTP套接字编程 489 23.1 概述 489 23.2 自动关闭的一到多式服务器程序 489 23.3 部分递送 490 23.4 通知 492 23.5 无序的数据 495 23.6 捆绑地址子集 496 23.7 确定对端和本端地址信息 497 23.8 给定IP地址找出关联ID 500 23.9 心搏和地址不可达 501 23.10 关联剥离 502 23.11 定时控制 503 23.12 何时改用SCTP代替TCP 505 23.13 小结 506 习题 506

第24章 带外数据 507 24.1 概述 507 24.2 TCP带外数据 507 24.3 sockatmark函数 513 24.4 TCP带外数据小结 519 24.5 客户/服务器心搏函数 520 24.6 小结 524 习题 524

第25章 信号驱动式I/O 525 25.1 概述 525 25.2 套接字的信号驱动式I/O 525 25.3 使用SIGIO的UDP回射服务器程序 527 25.4 小结 532 习题 533

第26章 线程 534 26.1 概述 534 26.2 基本线程函数:创建和终止 535 26.3 使用线程的str_cli函数 537 26.4 使用线程的TCP回射服务器程序 538 26.5 线程特定数据 542 26.6 Web客户与同时连接 549 26.7 互斥锁 552 26.8 条件变量 555 26.9 Web客户与同时连接(续) 558 26.10 小结 560 习题 560

第27章 IP选项 561 27.1 概述 561 27.2 IPv4选项 561 27.3 IPv4源路径选项 562 27.4 IPv6扩展首部 569 27.5 IPv6步跳选项和目的地选项 569 27.6 IPv6路由首部 573 27.7 IPv6粘附选项 577 27.8 历史性IPv6高级API 578 27.9 小结 579 习题 579

第28章 原始套接字 580 28.1 概述 580 28.2 原始套接字创建 580 28.3 原始套接字输出 581 28.4 原始套接字输入 582 28.5 ping程序 584 28.6 traceroute程序 596 28.7 一个ICMP消息守护程序 608 28.8 小结 622 习题 622

第29章 数据链路访问 623 29.1 概述 623 29.2 BPF:BSD分组过滤器 623 29.3 DLPI:数据链路提供者接口 625 29.4 Linux:SOCK_PACKET和 PFPACKET 626 29.5 libpcap:分组捕获函数库 627 29.6 libnet:分组构造与输出函数库 627 29.7 检查UDP的校验和字段 628 29.8 小结 645 习题 645

第30章 客户/服务器程序设计范式 646 30.1 概述 646 30.2 TCP客户程序设计范式 648 30.3 TCP测试用客户程序 649 30.4 TCP迭代服务器程序 650 30.5 TCP并发服务器程序,每个客户一个子进程 650 30.6 TCP预先派生子进程服务器程序,accept无上锁保护 653 30.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护 659 30.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护 662 30.9 TCP预先派生子进程服务器程序,传递描述符 663 30.10 TCP并发服务器程序,每个客户一个线程 667 30.11 TCP预先创建线程服务器程序,每个线程各自accept 669 30.12 TCP预先创建线程服务器程序,主线程统一accept 671 30.13 小结 673 习题 674

第31章 流 675 31.1 概述 675 31.2 概貌 675 31.3 getmsg和putmsg函数 678 31.4 getpmsg和putpmsg函数 679 31.5 ioctl函数 680 31.6 TPI:传输提供者接口 680 31.7 小结 689 习题 689

附录A IPv4、IPv6、ICMPv4和ICMPv6 690 附录B 虚拟网络 704 附录C 调试技术 708 附录D 杂凑的源代码 714 附录E 精选习题答案 726 参考文献 756 索引 763

亚马逊链接

基本信息

名称: Windows Via C/C++
作者信息: 作者: Jeffrey M. Richter [ 英文 pdf ]

简单介绍

Master the intricacies of application development with unmanaged C++ code - straight from the experts. Jeffrey Richter’s classic book is now fully revised for Windows XP, Windows Vista, and Windows Server 2008. You get in-depth, comprehensive guidance, advanced techniques, and extensive code samples to help you program Windows - based applications. Discover how to: * Architect and implement your applications for both 32-bit and 64-bit Windows * Create and manipulate processes and jobs * Schedule, manage, synchronize and destroy threads * Perform asynchronous and synchronous device I/O operations with the I/O completion port * Allocate memory using various techniques including virtual memory, memory-mapped files, and heaps * Manipulate the default committed physical storage of thread stacks * Build DLLs for delay-loading, API hooking, and process injection * Using structured exception handling, Windows Error Recovery, and Application Restart services

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Part I Required Reading
 1 Error Handling
 2 Working with Characters and Strings
 3 Kernel Objects
Part II Getting Work Done
 4 Processes
 5 Jobs
 6 Thread Basics
 7 Thread Scheduling, Priorities, and Affinities
 8 Thread Synchronization in User Mode
 9 Thread Synchronization with Kernel Objects
10 Synchronous and Asynchronous Device I/O
11 The Windows Thread Pool
12 Fibers
part III Memory Management
13 Windows Memory Architecture
14 Exploring Virtual Memory
15 Using Virtual Memory in Your Own Applications
16 A Thread’s Stack
17 Memory-Mapped Files
18 Heaps
Part IV Dynamic-Link Libraries
 19 DLL Basics
 12 DLL Advanced Techniques
 21 Thread-Local Storage
 22 DLL Injection and API Hooking
Part V Structured Exception Handling
 23 Termination Handlers
 24 Exception Handlers and Software Exceptions
25 Unhandled Exceptions, Vectored Exception Handling, and C++Exceptions
26 Error Reporting and Application Recovery
Part VI Appendixes
 A The Build Environment
 B Message Crackers, Child Control Macros,and API Macros

亚马逊链接

基本信息

名称: Windows环境下32位汇编语言程序设计
作者信息: 作者: 罗云彬 [ 中文 pdf ]

简单介绍

《Windows环境下32位汇编语言程序设计》从编写应用程序的角度,从“HelloWorld”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。

《Windows环境下32位汇编语言程序设计》从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。

《Windows环境下32位汇编语言程序设计》作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://win32asm.yeah.net的站长。《Windows环境下32位汇编语言程序设计》是作者多年来编程工作的总结,适合于欲通过Win32汇编语言编写Windows程序的读者。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
第1章 背景知识
1.1 Win32的软硬件平台
1.2 Windows的特色
1.3 必须了解的东西
第2章 准备编程环境
2.1 Win32可执行文件的开发过程
2.2 编译器和链接器
2.3 创建资源
2.4 make工具的用法
2.5 获取资料
2.6 构建编程环境
第3章 使用MASM
3.1 Win32汇编源程序的结构
3.2 调用API
3.3 标号、变量和数据结构
3.4 使用子程序
3.5 高级语法
3.6 代码风格
第4章 第一个窗口程序
4.1 开始了解窗口
4.2 分析窗口程序
4.3 窗口间的消息互发
4.4 实验
第5章 使用资源
5.1 菜单和加速键
5.2 图标和光标
5.3 位图
5.4 对话框
5.5 字符串资源
5.6 版本信息资源
5.7 二进制资源和自定义资源
第6章 定时器
6.1 定时器简介
6.2 定时器的使用
6.3 取Windows时间
第7章 图形操作
7.1 GDI原理
7.2 绘制图形
7.3 创建和使用位图
7.4 块传送操作
7.5 区域和路径
第8章 通用对话框
8.1 通用对话框简介
8.2 使用通用对话框
8.3 浏览目录对话框
第9章 通用控件
9.1 通用控件简介
9.2 使用状态栏
9.3 使用工具栏
9.4 使用Richedit控件
9.5 窗口的子类化
9.6 控件的超类化
第10章 内存管理和文件操作
10.1 内存管理
10.2 文件操作
10.3 驱动器和目录
10.4 内存映射文件
第11章 动态链接库和钩子
第12章 多线程
第13章 进程控制
第14章 异常处理
第15章 注册表和INI文件
第16章 TCP/IP和网络通信
第17章 PE文件
参考文献

亚马逊链接