您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
详解HTTP:协议基础与Go语言实现
字数: 604
出版社: 人民邮电
作者: [日]涩川喜规|译者:侯振龙
商品条码: 9787115593221
版次: 1
开本: 16开
页数: 413
出版年份: 2022
印次: 1
定价:
¥129.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书沿着HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3的发展历史,从方法和路径、首部、主体、状态码这4个HTTP的基本元素讲起,详细介绍了浏览器内部的动作、浏览器与服务器进行交互的方法等。针对各个版本的HTTP,分别从语法和语义两个角度,通俗易懂地讲解了HTTP的协议规范,并结合用Go语言实现的具体的客户端代码示例,为读者阐明了HTTP是如何通过功能设计和扩展来实现高速化和安全性目标的。 本书内容丰富,网罗了与HTTP相关的各种技术,包括简单的HTTP访问、表单的发送、缓存和Cookie的控制、Keep-Alive、SSL/TLS、协议升级、服务器推送、Server-Sent Events、WebSocket、DNS、CDN、RESTful API、Web应用程序和安全方面的内容等。 本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者阅读。
作者简介
涩川喜规(作者) 现就职于日本Future Corporation。工作中经常使用Python、C++、JavaScript、Golang,对Web有浓厚兴趣。著有《Go系统编程》、Mithril、《Mobage核心技术》(合著)等,同时也是The Art of Community的日文版译者。 侯振龙(译者) 软件开发工程师,日语一级,具有十余年对日软件开发经验,对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 8.3 开放内容协议 231 8.4 QR码 234 8.5 AMP 236 8.6 通过移动应用程序使浏览环境多样化 238 8.6.1 iOS的DeepLink 239 8.6.2 Android的DeepLink 239 8.7 使用HTTP Live Streaming播放视频流 240 8.7.1 HLS的视频标签 240 8.7.2 Master的.m3u8文件 240 8.7.3 字幕的.m3u8文件 241 8.7.4 视频文件 242 8.7.5 HLS的优点和缺点 243 8.7.6 HLS出现前后的视频流相关的历史 244 8.8 使用MPEG-DASH播放视频流 244 8.8.1 MPEG-DASH与HLS在播放方法上的区别 245 8.8.2 Media Presentation Description文件的结构 245 8.9 CMAF 248 8.10 本章小结 248 第9章 使用Go语言实现HTTP/2、HTML5的协议 251 9.1 HTTP/2 251 9.2 HTTP/2的服务器推送 253 9.3 Server-Sent Events 257 9.3.1 服务器的实现 257 9.3.2 客户端的实现 260 9.4 WebSocket 263 9.4.1 服务器的实现 263 9.4.2 客户端的实现 265 9.4.3 房间的实现 265 9.5 本章小结 266 第 10章 从客户端的角度来看RESTful API 269 10.1 RESTful API 269 10.1.1 RESTful API和RPC API的区别 270 10.1.2 Web API和事务 270 10.1.3 HATEOAS 272 10.1.4 RESTful和REST-ish 273 10.2 方法 274 10.3 状态码 275 10.4 主体 277 10.5 查看实际的RESTful API(PAY.JP的示例) 277 10.6 查看实际的RESTful API(GitHub的示例) 279 10.6.1 GitHub的授权 279 10.6.2 获取信息的API访问 283 10.6.3 刷新信息的API访问 284 10.7 访问RESTful API时的具体问题 286 10.7.1 超时 286 10.7.2 访问次数的限制 286 10.8 本章小结 287 第 11章 使用JavaScript实现浏览器的动态HTTP请求 289 11.1 浏览器的HTTP与生命周期 289 11.2 XMLHttpRequest 290 11.3 Fetch API 292 11.3.1 Fetch API的基础内容 292 11.3.2 Fetch的选项 293 11.3.3 创建和解析查询参数 294 11.3.4 发送主体 295 11.3.5 只有Fetch API可以执行的操作 297 11.3.6 使用Fetch API时常见的错误 299 11.3.7 在浏览器之外的JavaScript环境中使用Fetch API 300 11.4 使用JavaScript重新加载浏览器时的HTTP访问 300 11.5 下载文件 300 11.6 Server-Sent Events 302 11.7 WebSocket 303 11.8 本章小结 304 第 12章 Web应用程序的基础知识 307 12.1 术语 307 12.2 基本流程 308 12.3 Web应用程序的请求的生命周期 310 12.3.1 HTTP请求 310 12.3.2 会话 311 12.4 Web应用程序的动作模式 314 12.4.1 第 1代:服务端渲染 314 12.4.2 第 2代:Ajax 315 12.4.3 第3代:单页面应用 317 12.4.4 第3.5代:单页面应用 + 服务端渲染 318 12.5 基础设施的结构 319 12.5.1 开发环境 319 12.5.2 实际开发环境的基本结构 321 12.6 基础设施的其他形式 324 12.6.1 PaaS 324 12.6.2 Serverless 325 12.6.3 微服务 325 12.7 Web应用程序的内部层次结构 326 12.8 Web应用程序的组成元素的详细分类 329 12.9 Web API的设计:区分使用数据容器 330 12.10 今后不再使用的技术 331 12.10.1 CGI 331 12.10.2 RIA 332 12.11 本章小结 333 第 13章 云时代的HTTP:Web的各种强化技术 335 13.1 更大规模的Web系统的结构 335 13.2 DNS 336 13.2.1 DNS预查询 337 13.2.2 DNS服务器的缓存 338 13.2.3 DNS客户端的缓存 339 13.2.4 DNS负载均衡 339 13.2.5 DNS引流 339 13.2.6 使用SRV记录的服务发现 340 13.3 反向代理 341 13.4 CDN 346 13.4.1 提高通信本身的速度和稳定性 346 13.4.2 作为靠近用户的高级代理服务器 347 13.4.3 CDN的注意事项 349 13.5 负载均衡器 350 13.6 API网关 351 13.7 健康检查 351 13.7.1 Liveness Prove 351 13.7.2 Readiness Prove 352 13.8 VPC 352 13.9 微服务与认证 353 13.10 分布式追踪 354 13.10.1 向子任务传递追踪信息的HTTP首部 355 13.10.2 向浏览器传递服务器内部的时间信息的HTTP首部 356 13.11 其他技术元素 357 13.12 本章小结 358 第 14章 安全:守护浏览器的HTTP功能 359 14.1 传统类型的攻击 359 14.2 针对浏览器的攻击的特征 360 14.3 跨站脚本攻击 361 14.3.1 设置Cookie以防止泄露 362 14.3.2 Content-Security-Policy首部 362 14.3.3 Content-Security-Policy和JavaScript模板引擎 365 14.3.4 Mixed Content的应对策略 366 14.3.5 CORS 366 14.4 中间人攻击 370 14.5 会话劫持 371 14.5.1 旧的会话管理和会话固定攻击 372 14.5.2 Cookie注入 372 14.6 跨站请求伪造 373 14.6.1 应对跨站请求伪造的令牌 373 14.6.2 SameSite属性 374 14.7 点击劫持 374 14.8 列表型账户入侵 375 14.8.1 密码的保存:不保存明文密码 376 14.8.2 保存密码时使用的各种散列函数 377 14.8.3 密码的日志掩码化 377 14.8.4 多因素身份验证 378 14.8.5 TOTP算法 378 14.8.6 WebAuthn 380 14.8.7 通知用户别处的登录 380 14.9 注入存在漏洞的代码 381 14.10 面向Web应用程序的安全指南 382 14.11 Web广告和安全 382 14.11.1 第三方Cookie 383 14.11.2 Cookie以外的代替手段 384 14.11.3 Google Analytics 384 14.11.4 在不确定用户的情况下进行推测(Finger Print) 385 14.12 本章小结 386 附 录 387 A.1 状态码一览表 387 A.1.1 1字头(信息) 387 A.1.2 2字头(成功) 388 A.1.3 3字头(重定向) 388 A.1.4 4字头(客户端错误) 389 A.1.5 5字头(服务器错误) 390 A.2 首部字段一览表 391 A.3 Internet Explorer与Content-Security-Policy首部 396 A.3.1 X-Content-Security-Policy首部 397 A.3.2 X-XSS-Protection首部 397 A.3.3 X-Frame-Options首部 397 A.4 使用Go语言进行JSON解析 398 A.4.1 使用Go语言的结构体标签进行JSON解析 398 A.4.2 判断值到底是省略了,还是为0 400 A.4.3 想要执行特殊类型转换的情况 401 A.5 JSON相关的应用话题 403 A.5.1 在输出时对输出内容进行加工 403 A.5.2 类型因情况而改变的JSON的解析 404 A.5.3 转换为通用的数据类型 406 A.5.4 JSON Schema 407 后记 411
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网