详解HTTP:协议基础与Go语言实现
全新正版 极速发货
¥
86.3
6.6折
¥
129.8
全新
库存12件
作者[日]涩川喜规
出版社人民邮电出版社
ISBN9787115593221
出版时间2022-08
装帧平装
开本16开
定价129.8元
货号1202739492
上书时间2024-06-05
商品详情
- 品相描述:全新
- 商品描述
-
前言
作者简介
涩川喜规(作者)现就职于日本FutureCorporation。工作中经常使用Python、C++、JavaScript、Golang,对Web有浓厚兴趣。著有《Go系统编程》、Mithril、《Mobage核心技术》(合著)等,同时也是TheArtofCommunity的日文版译者。
侯振龙(译者)软件开发工程师,日语一级,具有十余年对日软件开发经验,对HTTP通信技术非常感兴趣。
目录
前言 xix
第 1章 HTTP/1.0的语法:4个基本元素 1
1.1 HTTP的历史 1
1.2 尝试HTTP/0.9能够实现的处理 6
1.3 从HTTP/0.9到HTTP/1.0的发展过程 8
1.4 HTTP的祖先(1):电子邮件 9
1.4.1 发送首部 11
1.4.2 接收首部 13
1.4.3 MIME类型 14
1.4.4 Content-Type与安全性 15
1.4.5 HTTP与电子邮件的区别 16
1.5 HTTP的祖先(2):新闻组 16
1.5.1 方法 17
1.5.2 状态码 18
1.6 重定向 20
1.7 URL 22
1.7.1 URL的结构 23
1.7.2 URL与国际化 25
1.7.3 标准URL 25
1.7.4 协议相对URL 26
1.8 主体 27
1.9 本章小结 29
第 2章 HTTP/1.0的语义:浏览器基本功能的背后 31
2.1 使用x-www-form-urlencoded发送表单 31
2.2 使用multipart/form-data发送文件 33
2.3 使用表单进行重定向 36
2.4 内容协商 37
2.4.1 确定文件类型 37
2.4.2 确定显示语言 37
2.4.3 确定字符集 38
2.4.4 使用压缩提高通信速度 39
2.5 Cookie 40
2.5.1 Cookie的分类 43
2.5.2 Cookie的错误用法 43
2.5.3 对Cookie加以限制 44
2.5.4 源 45
2.5.5 SameSite属性 46
2.6 认证和会话 46
2.6.1 BASIC认证和Digest认证 47
2.6.2 使用Cookie进行会话管理 49
2.6.3 使用带签名的Cookie保存会话数据 50
2.7 代理 50
2.8 缓存 51
2.8.1 基于更新时间的缓存 52
2.8.2 Expires首部 53
2.8.3 Pragma:no-cache 55
2.8.4 不执行缓存的条件 55
2.8.5 添加ETag 55
2.8.6 Cache-Control 57
2.8.7 Vary 60
2.9 Referer 61
2.10 面向搜索引擎的内容访问控制 63
2.10.1 robots.txt 63
2.10.2 robots.txt与诉讼案例 64
2.10.3 站点地图 65
2.11 用户代理 65
2.12 本章小结 67
第3章 使用Go语言实现HTTP/1.0客户端 69
3.1 为何使用Go语言 69
3.2 Go语言的API结构 70
3.3 本章的主要内容 71
3.4 GET方法的发送及主体、状态码和首部的接收 71
3.5 使用GET方法发送查询 75
3.6 使用HEAD方法获取首部 76
3.7 使用POST方法发送x-www-form-urlencoded形式的表单 77
3.8 使用POST方法发送任意主体 78
3.9 使用multipart/form-data形式发送文件 79
3.10 Cookie的发送和接收 82
3.11 使用代理 84
3.12 访问文件系统 86
3.13 发送任意方法 87
3.14 发送首部 88
3.15 超时 89
3.16 国际化域名 90
3.17 本章小结 90
第4章 HTTP/1.1的语法:追求高速化和安全性 93
4.1 通过Keep-Alive提高通信速度 94
4.2 TLS 97
4.2.1 散列函数 99
4.2.2 公共密钥加密、公开密钥加密和数字签名 101
4.2.3 密钥交换 102
4.2.4 区分使用公共密钥方式和公开密钥方式的理由 104
4.2.5 TLS的通信步骤 106
4.2.6 加密强度 110
4.2.7 密码套件 111
4.2.8 选择协议 113
4.2.9 TLS保护的内容 114
4.2.10 TLS时代 115
4.3 PUT方法和DELETE方法的标准化 115
4.4 添加OPTIONS方法、TRACE方法和CONNECT方法 116
4.4.1 OPTIONS 116
4.4.2 TRACE(TRACK) 117
4.4.3 CONNECT 118
4.5 协议升级 119
4.5.1 客户端请求升级 120
4.5.2 服务器请求升级 120
4.5.3 向TLS升级时的问题点 121
4.6 支持虚拟主机 121
4.7 Chunk 122
4.8 确认主体发送 124
4.9 Data URI方案 124
4.10 本章小结 125
第5章 HTTP/1.1的语义:HTTP的扩展功能 127
5.1 下载文件并保存到本地 127
5.1.1 保存文件的Content-Disposition首部 128
5.1.2 默认文件名使用中文 128
5.1.3 在浏览器中显示 128
5.2 暂停和恢复下载 129
5.2.1 指定多个范围进行下载 131
5.2.2 并行下载 132
5.3 XMLHttpRequest 132
5.3.1 XMLHttpRequest的诞生 133
5.3.2 XMLHttpRequest与浏览器的HTTP请求的区别 134
5.3.3 Comet 134
5.3.4 XMLHttpRequest的安全性 136
5.4 Geo-Location 137
5.4.1 客户端获取位置的方法 137
5.4.2 服务器推测客户端位置的方法 138
5.5 X-Powered-By首部 139
5.6 远程过程调用 141
5.6.1 XML-RPC 141
5.6.2 SOAP 143
5.6.3 JSON-RPC 145
5.7 WebDAV 147
5.8 网站间共用的认证和授权平台 148
5.8.1 单点登录 149
5.8.2 Kerberos认证 149
5.8.3 SAML 150
5.8.4 OpenID 151
5.8.5 OpenSocial 153
5.8.6 OAuth 154
5.8.7 OpenID Connect 158
5.8.8 JWT 159
5.8.9 实际服务对认证系统提供支持时的陷阱 160
5.9 本章小结 161
第6章 使用Go语言实现HTTP/1.1客户端 163
6.1 Keep-Alive 163
6.2 TLS 164
6.2.1 创建证书 164
6.2.2 HTTPS服务器和注册证书 168
6.2.3 使用Go语言实现客户端 170
6.2.4 客户端证书 172
6.3 协议升级 175
6.3.1 服务器代码 175
6.3.2 客户端代码 176
6.4 Chunk 178
6.4.1 服务器发送数据 179
6.4.2 客户端依次接收数据(简易版) 180
6.4.3 客户端依次接收数据(完整版) 181
6.5 远程过程调用 183
6.6 本章小结 185
第7章 HTTP/2和HTTP/3的语法:重新定义协议 187
7.1 HTTP/2和HTTP/3中未变化的内容 187
7.2 HTTP/2 188
7.2.1 SPDY 188
7.2.2 HTTP/2的改进 189
7.2.3 使用流实现高速通信 190
7.2.4 HTTP/2的应用程序层 195
7.2.5 流量控制 196
7.2.6 服务器推送 197
7.2.7 使用预加载优化资源获取操作 197
7.2.8 使用HPACK压缩首部 200
7.3 HTTP/3 200
7.3.1 QUIC 201
7.3.2 向HTTP/3迈进 201
7.3.3 HTTP/3的层 201
7.3.4 使用HTTP Alternative Services进行升级 203
7.4 用于JavaScript的新的通信API 205
7.4.1 Fetch API 205
7.4.2 Server-Sent Events 206
7.4.3 WebSocket 207
7.5 WebRTC 210
7.5.1 WebRTC的用例(1) 211
7.5.2 WebRTC的用例(2) 213
7.5.3 RFC之外的用例 214
7.5.4 RTCPeerConnection 214
7.5.5 媒体通道和getUserMedia 215
7.5.6 RTCDataChannel 216
7.6 HTTP Web推送 217
7.6.1 浏览器向推送服务申请订阅 219
7.6.2 应用程序服务器向推送服务投递消息 220
7.6.3 浏览器接收推送消息 220
7.6.4 设置紧急度 221
7.7 本章小结 221
第8章 HTTP/2的语义:新的用例 223
8.1 响应式设计 223
8.2 语义网 225
8.2.1 RDF 225
8.2.2 都柏林核心 226
8.2.3 RSS 226
8.2.4 微格式 226
8.2.5 微数据 227
8.2.6 RDF的逆袭 227
8.2.7 RDF系列之外的数据 228
— 没有更多了 —
以下为对购买帮助不大的评价