《图解HTTP》简介:

本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。

本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。

《图解HTTP》摘录:

TCP/IP协议族按层次分:应用层、传输层、网络层、数据链路层。 TCP/IP通信传输流:发送端从应用层往下走,接收端往应用层往上走。 发送端在层与层之间传输数据时,每经过一层,被打上一个该层所属首部信息。反之,接收端传输数据,对应首部消去。 IP协议的作用是把各种数据包传送给对方,重要的条件是IP地址和MAC地址。 使用ARP协议凭借MAC地址进行通信。 TCP位于传输层,提供可靠的字节流服务。 为了准确无误将数据送达目标,TCP协议采用三次握手。 各种协议与HTTP协议的关系: HTTP协议的职责:生成针对目标Web服务器的HTTP请求报文 对Web服务器请求的内容处理 TCP协议的职责:为了方便通信,将HTTP请求报文分割成报文段 从对方那里接收到的报文段 IP协议的职责:搜索对方的地址,一边中转一边传送

《图解HTTP》目录:

目录
第1章 了解Web及网络基础  001
1.1  使用HTTP协议访问Web  002
1.2  HTTP的诞生003
1.2.1 为知识共享而规划Web    003
1.2.2 Web成长时代    004
1.2.3 驻足不前的HTTP    005
1.3  网络基础TCP/IP  006
1.3.1 TCP/IP协议族    006
1.3.2 TCP/IP的分层管理    007
1.3.3 TCP/IP通信传输流    009
1.4  与HTTP关系密切的协议:IP、TCP和DNS  010
1.4.1 负责传输的IP协议    011
1.4.2 确保可靠性的TCP协议    012
1.5  负责域名解析的DNS服务  013
1.6  各种协议与HTTP协议的关系  014
1.7  URI和URL  016
1.7.1 统一资源标识符  016
1.7.2 URI格式  017
第2章 简单的HTTP协议  021
2.1  HTTP协议用于客户端和服务器端之间的通信  022
2.2  通过请求和响应的交换达成通信  022
2.3  HTTP是不保存状态的协议  025
2.4  请求URI定位资源  026
2.5  告知服务器意图的HTTP  方法027
2.6  使用方法下达命令  033
2.7  持久连接节省通信量  034
2.7.1 持久连接  036
2.7.2 管线化  037
2.8  使用Cookie的状态管理  037
第3章HTTP报文内的HTTP信息  041
3.1HTTP报文  042
3.2  请求报文及响应报文的结构  042
3.3  编码提升传输速率  044
3.3.1 报文主体和实体主体的差异  044
3.3.2 压缩传输的内容编码  044
3.3.3 分割发送的分块传输编码  045
3.4  发送多种数据的多部分对象集合  046
3.5  获取部分内容的范围请求048
3.6  内容协商返回最合适的内容050
第4章 返回结果的HTTP状态码  053
4.1  状态码告知从服务器端返回的请求结果054
4.2  2XX成功  055
4.2.1 200 OK    055
4.2.2 204 No Content    056
4.2.3 206 Partial Content    056
4.3  3XX 重定向 056
4.3.1 301 Moved Permanently  057
4.3.2 302 Found 057
4.3.3 303 See Other    058
4.3.4 304 Not Modified  059
4.3.5 307 Temporary Redirect  059
4.4  4XX 客户端错误  060
4.4.1 400 Bad Request  060
4.4.2 401 Unauthorized  060
4.4.3 403 Forbidden  061
4.4.4 404 Not Found  061
4.5  5XX 服务器错误  062
4.5.1 500 Internal Server Error  062
4.5.2 503 Service Unavailable  062
第5章 与HTTP协作的Web服务器  065
5.1  用单台虚拟主机实现多个域名  066
5.2  通信数据转发程序:代理、网关、隧道  067
5.2.1 代理  068
5.2.2 网关  070
5.2.3 隧道  070
5.3  保存资源的缓存  071
5.3.1 缓存的有效期限  072
5.3.2 客户端的缓存  072
第6章 HTTP 首部  075
6.1  HTTP 报文首部  076
6.2  HTTP 首部字段  078
6.2.1 HTTP首部字段传递重要信息  078
6.2.2 HTTP首部字段结构  078
6.2.3 4种HTTP首部字段类型  079
6.2.4 HTTP/1.1首部字段一览  080
6.2.5 非HTTP/1.1首部字段  082
6.2.6   End-to-end首部和Hop-by-hop首部  083
6.3  HTTP/1.1  通用首部字段  083
6.3.1 Cache-Control  084
6.3.2 Connection  091
6.3.3 Date  093
6.3.4 Pragma  094
6.3.5 Trailer  095
6.3.6 Transfer-Encoding  096
6.3.7 Upgrade  097
6.3.8 Via  098
6.3.9 Warning  099
6.4  请求首部字段  100
6.4.1 Accept  101
6.4.2 Accept-Charset  102
6.4.3 Accept-Encoding  103
6.4.4 Accept-Language  104
6.4.5 Authorization  105
6.4.6 Expect  106
6.4.7 From  107
6.4.8 Host  107
6.4.9 If-Match  108
6.4.10 If-Modified-Since  110
6.4.11 If-None-Match  111
6.4.12 If-Range  112
6.4.13 If-Unmodified-Since  113
6.4.14 Max-Forwards  114
6.4.15 Proxy-Authorization  115
6.4.16 Range  116
6.4.17 Referer  116
6.4.18 TE  117
6.4.19 User-Agent  118
6.5  响应首部字段119
6.5.1 Accept-Ranges  119
6.5.2 Age  120
6.5.3 ETag    120
6.5.4 Location  122
6.5.5 Proxy-Authenticate  123
6.5.6 Retry-After  123
6.5.7 Server  124
6.5.8 Vary  125
6.5.9 WWW-Authenticate  125
6.6  实体首部字段126
6.6.1 Allow  126
6.6.2 Content-Encoding  127
6.6.3 Content-Language  128
6.6.4 Content-Length  128
6.6.5 Content-Location  129
6.6.6 Content-MD5  129
6.6.7 Content-Range  130
6.6.8 Content-Type  131
6.6.9 Expires  131
6.6.10  Last-Modified  132
6.7  为Cookie服务的首部字段  132
6.7.1 Set-Cookie  134
6.7.2 Cookie  136
6.8  其他首部字段137
6.8.1 X-Frame-Options  137
6.8.2 X-XSS-Protection  138
6.8.3 DNT  138
6.8.4 P3P  139
第7章 确保Web安全的HTTPS  141
7.1  HTTP的缺点  142
7.1.1 通信使用明文可能会被窃听  142
7.1.2 不验证通信方的身份就可能遭遇伪装  146
7.1.3 无法证明报文完整性,可能已遭篡改  148
7.2  HTTP+加密+认证+完整性保护=HTTPS  150
7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS  150
7.2.2 HTTPS是身披SSL外壳的HTTP  151
7.2.3 相互交换密钥的公开密钥加密技术  152
7.2.4 证明公开密钥正确性的证书  155
7.2.5 HTTPS的安全通信机制  161
第8章 确认访问用户身份的认证  167
8.1  何为认证  168
8.2  BASIC 认证  169
8.3  DIGEST 认证171
8.4  SSL客户端认证173
8.4.1 SSL客户端认证的认证步骤  174
8.4.2 SSL客户端认证采用双因素认证  175
8.4.3 SSL客户端认证必要的费用  175
8.5  基于表单认证  175
8.5.1 认证多半为基于表单认证  176
8.5.2 Session管理及Cookie应用  177
第9章 基于HTTP的功能追加协议  179
9.1  基于HTTP的协议180
9.2  消除HTTP瓶颈的SPDY  180
9.2.1 HTTP的瓶颈  180
9.2.2 SPDY的设计与功能  184
9.2.3 SPDY消除Web瓶颈了吗  185
9.3  使用浏览器进行全双工通信的WebSocket  186
9.3.1 WebSocket的设计与功能  186
9.3.2 WebSocket协议  186
9.4  期盼已久的HTTP/2.0  189
9.5  Web  服务器管理文件的WebDAV  190
9.5.1 扩展HTTP/1.1的WebDAV  191
9.5.2 WebDAV内新增的方法及状态码  192
第10章 构建Web内容的技术  195
10.1  HTML  196
10.1.1 Web页面几乎全由HTML构建  196
10.1.2 HTML的版本  197
10.1.3 设计应用CSS  198
10.2  动态HTML  198
10.2.1 让Web页面动起来的动态HTML  198
10.2.2 更易控制HTML  的DOM  198
10.3  Web应用  200
10.3.1   通过Web提供功能的Web应用  200
10.3.2 与Web服务器及程序协作的CGI  200
10.3.3 因Java  而普及的Servlet  201
10.4  数据发布的格式及语言  203
10.4.1 可扩展标记语言  203
10.4.2 发布更新信息的RSS/Atom  204
10.4.3 JavaScript衍生的轻量级易用JSON  206
第11章 Web的攻击技术  207
11.1  针对Web的攻击技术  208
11.1.1 HTTP不具备必要的安全功能  208
11.1.2 在客户端即可篡改请求  209
11.1.3 针对Web应用的攻击模式  210
11.2  因输出值转义不完全引发的安全漏洞  212
11.2.1 跨站脚本攻击  213
11.2.2 SQL注入攻击  218
11.2.3 OS命令注入攻击  223
11.2.4 HTTP首部注入攻击  225
11.2.5 邮件首部注入攻击  228
11.2.6 目录遍历攻击  229
11.2.7 远程文件包含漏洞  230
11.3  因设置或设计上的缺陷引发的安全漏洞  232
11.3.1 强制浏览  232
11.3.2 不正确的错误消息处理  234
11.3.3 开放重定向  237
11.4  因会话管理疏忽引发的安全漏洞  237
11.4.1 会话劫持  238
11.4.2 会话固定攻击  239
11.4.3 跨站点请求伪造  241
11.5  其他安全漏洞  242
11.5.1 密码破解  242
11.5.2 点击劫持  247
11.5.3 DoS攻击  249
11.5.4 后门程序  250
· · · · · ·