《图灵程序设计丛书:图解HTTP》对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、全新技术动向等方面。《图解HTTP》的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过《图灵程序设计丛书:图解HTTP》快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。
《图灵程序设计丛书:图解HTTP》适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。
上野·宣 ,OWASP 日本分会会长,TRICORDER株式会社董事长。
主要从事安全咨询、风险评估、信息安全教育等工作。著有《今晚我们一起学习邮件协议》(今夜わかるメールプロトコル)、《今晚我们一起学习TCP/IP》(今夜わかるTCP/IP)、《今晚我们一起学习HTTP》(今夜わかるHTTP)。担任The Tangled Web:A Guide to Securing Modern Web Application日文版的审校工作。
于均良(译者),上海交通大学硕士,高级软件工程师,马拉松跑者,四点网创始人。
第1章 了解Web及网络基础
1.1 使用HTTP协议访问Web
1.2 HTTP的诞生
1.2.1 为知识共享而规划Web
1.2.2 Web成长时代
1.2.3 驻足不前的HTTP
1.3 网络基础TCP/IP
1.3.1 TCP/IP协议族
1.3.2 TCP/IP的分层管理
1.3.3 TCP/IP通信传输流
1.4 与HTTP关系密切的协议:IP、TCP和DNS
1.4.1 负责传输的IP协议
1.4.2 确保可靠性的TCP协议
1.5 负责域名解析的DNS服务
1.6 各种协议与HTTP协议的关系
1.7 URI和URL
1.7.1 统一资源标识符
1.7.2 URI格式
第2章 简单的HTTP协议
2.1 HTTP协议用于客户端和服务器端之间的通信
2.2 通过请求和响应的交换达成通信
2.3 HTTP是不保存状态的协议
2.4 请求URI定位资源
2.5 告知服务器意图的HTTP方法
2.6 使用方法下达命令
2.7 持久连接节省通信量
2.7.1 持久连接
2.7.2 管线化
2.8 使用Cookie的状态管理
第3章 HTTP报文内的HTTP信息
3.1 HTTP报文
3.2 请求报文及响应报文的结构
3.3 编码提升传输速率
3.3.1 报文主体和实体主体的差异
3.3.2 压缩传输的内容编码
3.3.3 分割发送的分块传输编码
3.4 发送多种数据的多部分对象集合
3.5 获取部分内容的范围请求
3.6 内容协商返回最合适的内容
第4章 返回结果的HTTP状态码
4.1 状态码告知从服务器端返回的请求结果
4.2 2XX成功
4.2.1 200 OK
4.2.2 204 No Content
4.2.3 206 Partial Content
4.3 3XX重定向
4.3.1 301 Moved Permanently
4.3.2 302 Found
4.3.3 303 See Other
4.3.4 304 Not Modified
4.3.5 307 Temporary Redirect
4.4 4XX客户端错误
4.4.1 400 Bad Request
4.4.2 401 Unauthorized
4.4.3 403 Forbidden
4.4.4 404 Not Found
4.5 5XX服务器错误
4.5.1 500 Internal Server Error
4.5.2 503 Service Unavailable
第5章 与HTTP协作的Web服务器
5.1 用单台虚拟主机实现多个域名
5.2 通信数据转发程序:代理、网关、隧道
5.2.1 代理
5.2.2 网关
5.2.3 隧道
5.3 保存资源的缓存
5.3.1 缓存的有效期限
5.3.2 客户端的缓存
第6章 HTTP首部
6.1 HTTP报文首部
6.2 HTTP首部字段
6.2.1 HTTP首部字段传递重要信息
6.2.2 HTTP首部字段结构
6.2.3 4种HTTP首部字段类型
6.2.4 HTTP/1.1首部字段一览
6.2.5 非HTTP/1.1首部字段
6.2.6 End-to-end首部和Hop-by-hop首部
6.3 HTTP/1.1通用首部字段
6.3.1 Cache-Control
6.3.2 Connection
6.3.3 Date
6.3.4 Pragma
6.3.5 Trailer
6.3.6 Transfer-Encoding
6.3.7 Upgrade
6.3.8 Via
6.3.9 Warning
6.4 请求首部字段
6.4.1 Accept
6.4.2 Accept-Charset
6.4.3 Accept-Encoding
6.4.4 Accept-Language
6.4.5 Authorization
6.4.6 Expect
6.4.7 From
6.4.8 Host
6.4.9 If-Match
6.4.10 If-Modified-Since
6.4.11 If-None-Match
6.4.12 If-Range
6.4.13 If-Unmodified-Since
6.4.14 Max-Forwards
6.4.15 Proxy-Authorization
6.4.16 Range
6.4.17 Referer
6.4.18 TE
6.4.19 User-Agent
6.5 响应首部字段
6.5.1 Accept-Ranges
6.5.2 Age
6.5.3 ETag
6.5.4 Location
6.5.5 Proxy-Authenticate
6.5.6 Retry-After
6.5.7 Server
6.5.8 Vary
6.5.9 WWW-Authenticate
6.6 实体首部字段
6.6.1 Allow
6.6.2 Content-Encoding
6.6.3 Content-Language
6.6.4 Content-Length
6.6.5 Content-Location
6.6.6 Content-MD
6.6.7 Content-Range
6.6.8 Content-Type
6.6.9 Expires
6.6.10 Last-Modified
6.7 为Cookie服务的首部字段
6.7.1 Set-Cookie
6.7.2 Cookie
6.8 其他首部字段
6.8.1 X-Frame-Options
6.8.2 X-XSS-Protection
6.8.3 DNT
6.8.4 P3P
第7章 确保Web安全的HTTPS
7.1 HTTP的缺点
7.1.1 通信使用明文可能会被窃听
7.1.2 不验证通信方的身份就可能遭遇伪装
7.1.3 无法证明报文完整性,可能已遭篡改
7.2 HTTP+加密+认证+完整性保护=HTTPS
7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS
7.2.2 HTTPS是身披SSL外壳的HTTP
7.2.3 相互交换密钥的公开密钥加密技术
7.2.4 证明公开密钥正确性的证书
7.2.5 HTTPS的安全通信机制
第8章 确认访问用户身份的认证
8.1 何为认证
8.2 BASIC认证
8.3 DIGEST认证
8.4 SSL客户端认证
8.4.1 SSL客户端认证的认证步骤
8.4.2 SSL客户端认证采用双因素认证
8.4.3 SSL客户端认证必要的费用
8.5 基于表单认证
8.5.1 认证多半为基于表单认证
8.5.2 Session管理及Cookie应用
第9章 基于HTTP的功能追加协议
9.1 基于HTTP的协议
9.2 消除HTTP瓶颈的SPDY
9.2.1 HTTP的瓶颈
9.2.2 SPDY的设计与功能
9.2.3 SPDY消除Web瓶颈了吗
9.3 使用浏览器进行全双工通信的WebSocket
9.3.1 WebSocket的设计与功能
9.3.2 WebSocket协议
9.4 期盼已久的HTTP/2.
9.5 Web服务器管理文件的WebDAV
9.5.1 扩展HTTP/1.1的WebDAV
9.5.2 WebDAV内新增的方法及状态码
第10章 构建Web内容的技术
10.1 HTML
10.1.1 Web页面几乎全由HTML构建
10.1.2 HTML的版本
10.1.3 设计应用CSS
10.2 动态HTML
10.2.1 让Web页面动起来的动态HTML
10.2.2 更易控制HTML的DOM
10.3 Web应用
10.3.1 通过Web提供功能的Web应用
10.3.2 与Web服务器及程序协作的CGI
10.3.3 因Java而普及的Servlet
10.4 数据发布的格式及语言
10.4.1 可扩展标记语言
10.4.2 发布更新信息的RSS/Atom
10.4.3 JavaScript衍生的轻量级易用JSON
第11章 Web的攻击技术
11.1 针对Web的攻击技术
11.1.1 HTTP不具备必要的安全功能
11.1.2 在客户端即可篡改请求
11.1.3 针对Web应用的攻击模式
11.2 因输出值转义不完全引发的安全漏洞
11.2.1 跨站脚本攻击
11.2.2 SQL注入攻击
11.2.3 OS命令注入攻击
11.2.4 HTTP首部注入攻击
11.2.5 邮件首部注入攻击
11.2.6 目录遍历攻击
11.2.7 远程文件包含漏洞
11.3 因设置或设计上的缺陷引发的安全漏洞
11.3.1 强制浏览
11.3.2 不正确的错误消息处理
11.3.3 开放重定向
11.4 因会话管理疏忽引发的安全漏洞
11.4.1 会话劫持
11.4.2 会话固定攻击
11.4.3 跨站点请求伪造
11.5 其他安全漏洞
11.5.1 密码破解
11.5.2 点击劫持
11.5.3 DoS攻击
11.5.4 后门程序
本书的上一版是2004 年出版的《今夜わかるHTTP》(中文译名: 今晚我们一起学习HTTP,翔泳社)。和当时一样,现在互联网的主流 仍是Web,但人们对Web 的要求却不断地发生变化。Google 在2005 年 推出了地图服务Google Maps,很多人看到这一Web 应用程序的界面后 感到十分震惊。因为在此之前,我们只能借助桌面应用程序或Flash 等 方式,实现流畅滚动及视角放大缩小等功能,如今这些功能仅需一个 Web 浏览器就能呈现了。也许正是由于Google Maps 的出现,人们对 Web 的要求才开始变得多了起来。发送请求、等待响应,这些HTTP 中 稀松平常的功能已经无法满足人们的需求了。于是,Web 不再停留在 HTTP/1.1 版本,在保持HTTP 简洁的同时,也开始开发新的功能。我 之所以要撰写《今夜わかるHTTP》一书,是因为我发现多数Web 应用 程序开发者并不了解支撑Web 基础的HTTP 协议。我坚信通过学习协 议,大家能更深刻地理解Web 开发。即使是在本书撰写完成后的今天, 我的这一想法仍未改变,肯定还有很多开发者尚未了解HTTP 协议。
对HTTP 协议有了更深入的理解后,也许你会从中得到一些启发。 不再囿于HTTP/1.1 版本的制约,你也能开发出Google Maps 那样的应 用程序。
本书不仅面向Web 应用程序的开发者,还面向使用Web 的软件开 发者、Web 风险评估的安全工程师、前端工程师以及Web 使用者等与 Web 相关的所有读者,希望这本书能对大家有所帮助。
写于华盛顿DC 的酒店
2013 年1 月吉日
TRICORDER株式会社 上野宣
我最近在学习前端开发,遇到了很多关于浏览器如何渲染网页的问题。虽然我能写出HTML、CSS和JavaScript代码,但对于浏览器接收到这些代码后,是如何解析、构建DOM树、CSSOM树,以及最终将页面呈现在我眼前的整个过程,一直感到有些模糊。我读到的这篇文章,虽然没有明确的书名,但它关于“浏览器缓存”和“CDN加速”的介绍,引起了我的极大兴趣。这让我意识到,网页的加载速度不仅仅取决于我的代码写得好不好,还涉及到许多底层的网络传输机制。如果这本书能够详细讲解这些内容,例如浏览器是如何判断哪些资源需要缓存,什么时候需要重新请求,以及CDN是如何通过分布式服务器来缩短用户访问延迟的,那将对我优化网站性能有巨大的帮助。我希望它能用清晰的图示,一步步地展示资源从服务器到浏览器,再到最终显示的完整链路,并且解释在这个过程中可能遇到的各种问题和相应的解决方案。
评分最近我迷上了一个新的网络技术话题,那就是RESTful API的设计。虽然我只是初略了解,但它所强调的“无状态”、“资源导向”等原则,听起来就非常吸引人。我一直在寻找一本能够系统讲解RESTful API设计理念和实现方式的书籍。我所阅读到的这篇文章,虽然没有直接提到书名,但它对于HTTP方法(GET、POST、PUT、DELETE)在API设计中的应用,以及URL路径的设计原则进行了细致的阐述。这让我对这本书产生了强烈的期待,因为我希望它能够更深入地探讨如何利用HTTP协议的特性来构建健壮、可扩展的Web服务。我期待它能用大量的实例,演示如何将不同的业务逻辑映射到HTTP方法和URL上,并且解释不同HTTP状态码的含义及其在API设计中的作用。我尤其希望能学习到如何处理API中的认证、授权和错误返回等细节,这对于我未来独立开发API非常有帮助。
评分作为一名长期在互联网上冲浪的用户,我经常会遇到各种各样的网络错误提示,比如“404 Not Found”、“500 Internal Server Error”等等。这些错误代码虽然简短,但背后却隐藏着复杂的网络通信问题。我最近阅读的一篇文章,虽然没有提及书名,但它对于HTTP状态码的分类和具体含义进行了详细的解释,并且分析了不同错误码可能出现的场景。这让我意识到,理解HTTP协议不仅仅是为了开发,对于普通用户来说,也能帮助我们更好地理解和解决遇到的网络问题。我希望这本书能够提供一个全面的HTTP状态码指南,用易于理解的语言解释每个状态码的意义,并提供相应的排查方向。如果它还能进一步讲解TCP/IP协议栈中与HTTP相关的部分,例如TCP三次握 holding,以及HTTPS的加密原理,那就更完美了。这有助于我从更底层的角度理解网络通信的健壮性,以及数据传输的安全性。
评分这本书的封面设计非常吸引人,我是在书店里偶然看到的。当时我被它简洁而富有信息量的插画所吸引,立刻就想了解它到底讲了些什么。拿到手里沉甸甸的,感觉很有分量,不是那种虚有其表的快餐读物。我一直对互联网的工作原理很好奇,但又觉得那些专业的网络书籍过于晦涩难懂,充满了各种我无法理解的缩写和术语。这本书的名字“图解HTTP”听起来就非常友好,暗示了它会用图示的方式来解释那些复杂的概念,这对我这样的初学者来说简直是福音。我抱着极大的期待把它带回了家,希望能借此机会深入了解我们每天都在使用的网络技术,尤其是那个神秘的HTTP协议,到底是怎么让网页在我的屏幕上“活”起来的。我个人对学习新知识的热情很高,但如果一开始就被劝退,那真是太可惜了。所以,这本书的图文并茂的风格,让我觉得学习的过程会充满乐趣,而不是枯燥的啃书。我特别期待它能讲清楚客户端和服务器之间是如何进行交互的,数据又是如何一层层地传输的,以及那些看似寻常的网址背后隐藏了怎样的逻辑。
评分我之前在网上搜索过一些关于网络协议的资料,但总觉得有些碎片化,不成体系。这篇文章虽然没有直接提及书名,但它所探讨的关于“请求-响应”模式的描述,让我一下子就联想到了可能这本书就包含了这类内容。作者在描述用户如何通过浏览器发送请求,然后服务器如何处理并返回结果时,用了非常生动的比喻,仿佛我真的能看到数据在网络中穿梭,经过层层关卡,最终抵达目的地。这让我对HTTP协议的工作流程有了初步的、直观的认识。我一直觉得,理解一个技术的精髓,在于理解它的“为什么”和“怎么做”。如果这本书能够清晰地解释HTTP设计出来是为了解决什么问题,以及它具体是如何一步步实现这些功能的,那将是非常有价值的。我特别希望它能深入剖析HTTP请求和响应报文的结构,例如各个字段的含义,以及不同方法(GET, POST等)的应用场景。这对于我理解Web开发的基础至关重要,也能够帮助我更好地理解其他相关技术。
评分经典书籍,名家大作,印刷不错,整体比较满意
评分物品不错,相对较为科普
评分薄薄的一本,图比较多,适合初学者。
评分质量好,正版,性价比高,值得购买。
评分图解系列可以说是入门级的好书
评分书不错,值得一读,推荐购买
评分对密码学感兴趣的可以看看
评分和描述的一样,物流和服务态度很好,书的内容看完以后在来评价……
评分经典书籍,名家大作,印刷不错,整体比较满意
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有