商品参数
| 图解HTTP |
| | 定价 | 49.00 |
| 出版社 | 人民邮电出版社 |
| 出版时间 | 2014年05月 |
| 开本 | 大32开 |
| 作者 | [日]上野宣,于均良 |
| 页数 | 0 |
| ISBN编码 | 9787115351531 |
内容介绍
《图解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日文版的审校工作。
译者简介
于均良
上海交通大学硕士,高*软件工程师,马拉松跑者,四点网创始人。
关联推荐
172张图解轻松入门
从基础知识到**动向,一本书掌握HTTP协议
Web前端开发*必*,从基础知识到**动向一网打尽
本书前半部分由HTTP的成长发展史娓娓道来,基于HTTP 1.1 标准讲解通信过程,包括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。作者还从细节方面举例,让读者更好地理解何为无状态(stateless)、301和302重定向的区别在哪、缓存机制,等等。本书后半部分的重心放在Web安全上,涵盖HTTPS、SSL、证书认证、加密机制、Web攻击手段等内容。
媒体评论
编辑推荐
172张图解轻松入门
从基础知识到动向,一本书掌握HTTP协议
Web前端开发*必*,从基础知识到动向一网打尽
本书前半部分由HTTP的成长发展史娓娓道来,基于HTTP 1.1 标准讲解通信过程,括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。作者还从细节方面举例,让读者更好地理解何为无状态(stateless)、301和302重定向的区别在哪、缓存机制,等等。本书后半部分的重心放在Web安全上,涵盖HTTPS、SSL、证书认证、加密机制、Web攻击手段等内容。
目录
第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章 了解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-MD5
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.0
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 衍生的轻量级易用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 后门程序
显示全部信息
深入理解网络基石:HTTP协议的奥秘与实践 在这个信息爆炸的时代,互联网已成为我们生活不可或缺的一部分。从浏览网页到在线购物,再到观看视频,这一切的背后都离不开高效、可靠的网络通信。而HTTP(Hypertext Transfer Protocol),作为构建这个庞大网络的基石,其重要性不言而喻。它不仅是Web前端开发人员必须掌握的核心技术,更是理解整个互联网工作原理的关键。 本书将带您踏上一段深入探究HTTP协议的旅程。不同于市面上那些仅浮于表面的教程,本书将以图文并茂、由浅入深的方式,带领您全面理解HTTP协议的方方面面。我们将不仅仅停留在“客户端发送请求,服务器返回响应”的简单认知,而是深入剖析每一个环节,揭示其背后的精妙设计和运作机制。 为何需要深入理解HTTP? 对于Web前端开发而言,HTTP协议是构建用户体验的基石。理解HTTP的请求方法(GET, POST, PUT, DELETE等)、状态码(200 OK, 404 Not Found, 500 Internal Server Error等)、头部信息(Content-Type, Cache-Control, Cookie等)以及传输的数据格式(HTML, JSON, XML等),能够帮助开发者写出更高效、更安全、更友好的Web应用。例如,如何正确地使用POST请求提交表单数据,如何利用缓存机制优化页面加载速度,如何通过Cookie管理用户会话,这些都是前端开发中至关重要的技能,而这一切都建立在对HTTP协议的深刻理解之上。 对于后端开发人员,HTTP协议更是其工作的核心。理解HTTP的请求和响应流程,能够帮助他们设计出健壮的API接口,处理来自各种客户端的请求,并确保数据的准确传输和安全。例如,如何设计 RESTful API,如何处理并发请求,如何防止CSRF攻击,这些都直接与HTTP协议的理解深度相关。 即便您是一名系统管理员或运维工程师,对HTTP的理解同样不可或缺。例如,配置Nginx、Apache等Web服务器时,需要了解HTTP请求的处理逻辑;优化服务器性能时,需要理解HTTP的连接管理、缓存策略;排查网络故障时,需要分析HTTP流量,定位问题根源。 更广泛地说,任何对互联网运作原理感兴趣的朋友,都能从本书中获益。理解HTTP,就是理解信息如何在网络上传输,理解Web是如何构建的,理解我们每天使用的各种在线服务是如何工作的。 本书将带您领略的精彩内容: 第一部分:HTTP基础概念与发展历程 什么是HTTP? 我们将从最基础的概念入手,解释HTTP协议的定义、作用以及它在互联网中的地位。 HTTP的发展演进: 从HTTP/1.0的简单文本交换,到HTTP/1.1的持续连接和管道化,再到HTTP/2的二进制分帧和多路复用,以及新兴的HTTP/3(基于QUIC协议),我们将回顾HTTP协议的每一次重要升级,理解它们是如何解决之前版本存在的问题,并带来性能和效率的提升。 URL、URI与URN: 区分这三个概念,理解它们在HTTP请求中的作用。 HTTP消息结构: 深入剖析HTTP请求和响应消息的组成部分,包括起始行、头部字段和实体主体。 第二部分:HTTP请求详解 请求方法(Methods): GET: 获取资源,无副作用。我们将探讨GET请求的适用场景,以及如何通过URL参数传递数据。 POST: 提交数据,通常用于创建或更新资源。我们将详细介绍POST请求与GET请求的区别,以及如何正确地使用POST提交表单数据。 PUT: 更新资源,如果资源不存在则创建。 DELETE: 删除资源。 HEAD: 只获取响应头部,不获取响应实体,常用于检查资源是否存在或获取元数据。 OPTIONS: 获取服务器支持的HTTP方法。 TRACE: 进行请求响应链的测试。 CONNECT: 建立隧道,常用于HTTPS。 我们将通过大量的实例,展示不同请求方法的使用方式,以及在实际开发中应如何选择合适的请求方法。 请求头部字段(Request Headers): User-Agent: 标识客户端的浏览器和操作系统。 Accept: 告知服务器客户端可以接受的媒体类型。 Accept-Encoding: 告知服务器客户端可以理解的压缩编码。 Accept-Language: 告知服务器客户端希望接收的语言。 Host: 指定请求的目标主机名和端口号。 Cookie: 客户端发送存储在本地的Cookie信息。 Referer: 告知服务器请求的来源页面。 Authorization: 包含身份验证凭证。 Cache-Control: 控制缓存行为。 If-Modified-Since, If-None-Match: 条件请求,用于缓存验证。 我们将深入解析这些常用头部字段的含义、作用以及在实际开发中的应用,例如如何利用`Accept`字段实现内容协商,如何通过`Cookie`实现用户登录状态的保持。 请求实体(Request Body): 介绍POST、PUT等方法中携带的请求数据,包括常见的MIME类型(如`application/x-www-form-urlencoded`, `multipart/form-data`, `application/json`)及其编码方式。 第三部分:HTTP响应详解 响应状态码(Status Codes): 1xx Informational: 请求正在处理,需要继续。 2xx Success: 请求已成功处理。 200 OK: 请求成功。 201 Created: 资源已创建。 204 No Content: 请求成功,但响应体为空。 3xx Redirection: 需要进一步的操作以完成请求。 301 Moved Permanently: 资源永久移动。 302 Found (Moved Temporarily): 资源临时移动。 304 Not Modified: 资源未被修改(用于缓存)。 4xx Client Error: 请求包含错误。 400 Bad Request: 请求语法错误。 401 Unauthorized: 未授权。 403 Forbidden: 禁止访问。 404 Not Found: 资源未找到。 5xx Server Error: 服务器处理请求时出错。 500 Internal Server Error: 服务器内部错误。 503 Service Unavailable: 服务不可用。 我们将对这些状态码进行详细的分类和解释,并提供实际场景中的应用示例,帮助您快速定位和解决Web开发中遇到的常见错误。 响应头部字段(Response Headers): Content-Type: 告知客户端响应内容的媒体类型。 Content-Encoding: 告知客户端响应内容使用的压缩编码。 Content-Length: 告知客户端响应实体的长度。 Set-Cookie: 服务器在客户端设置Cookie。 Cache-Control, Expires: 控制客户端缓存。 Location: 指定重定向的目标URL。 Server: 标识服务器软件。 Date: 响应生成的时间。 我们将深入解析这些头部字段的作用,以及它们如何影响浏览器渲染、缓存策略和安全性。 响应实体(Response Body): 介绍服务器返回给客户端的数据,包括HTML、JSON、XML、图片、视频等多种格式。 第四部分:HTTP与Web安全 HTTPS: 深入讲解HTTPS协议,包括SSL/TLS的工作原理,数字证书的作用,以及HTTPS如何保障通信的机密性、完整性和身份验证。 同源策略(Same-Origin Policy): 理解同源策略对Web安全的重要性,以及如何处理跨域请求。 常见Web安全威胁与HTTP协议的关联: XSS(Cross-Site Scripting): 如何通过HTTP协议的输入输出进行防范。 CSRF(Cross-Site Request Forgery): 如何利用HTTP协议的特性进行防范。 SQL注入: HTTP请求中的数据如何被利用进行SQL注入。 第五部分:HTTP协议在实际场景中的应用 Web服务器(Nginx/Apache)与HTTP: 介绍Web服务器如何处理HTTP请求,配置虚拟主机,以及反向代理等功能。 RESTful API设计: 如何利用HTTP的请求方法和状态码来设计符合RESTful原则的API。 HTTP与AJAX: 讲解AJAX(Asynchronous JavaScript and XML)如何利用HTTP进行异步通信,实现动态网页。 HTTP缓存策略优化: 详细介绍如何配置HTTP头部字段来优化浏览器缓存和CDN缓存,提升网站性能。 HTTP/2与HTTP/3的优势与应用: 探讨新一代HTTP协议带来的性能提升,以及在实际项目中的应用考量。 网络抓包工具的使用: 教授如何使用Wireshark、Chrome DevTools等工具来捕获和分析HTTP流量,帮助理解协议的实际运作。 本书的特色: 图解化讲解: 大量精心设计的图示,将抽象的概念可视化,让学习过程更加直观易懂。 理论与实践结合: 不仅讲解协议的原理,更提供丰富的代码示例和实际场景分析,帮助读者将所学知识应用于实际开发。 由浅入深,循序渐进: 从基础概念到高级应用,逐步引导读者深入理解HTTP协议的精髓。 前沿技术覆盖: 关注HTTP协议的最新发展,包括HTTP/2和HTTP/3。 实战指导: 帮助读者解决在Web开发中遇到的实际问题,提升开发效率和质量。 无论您是初入Web前端开发的菜鸟,还是经验丰富的开发者,抑或是对互联网技术充满好奇的技术爱好者,本书都将是您理解网络通信、构建高效Web应用的宝贵指南。让我们一同揭开HTTP协议的神秘面纱,掌握驱动现代互联网运转的强大力量。