作者简介上野 宣OWASP 日本分会会长,TRICORDER株式会社董事长。主要从事安全咨询、风险评估、信息安全教育等工作。著有《今晚我们一起学习邮件协议》(今夜わかるメールプロトコル)、《今晚我们一起学习TCP/IP》(今夜わかるTCP/IP)、《今晚我们一起学习HTTP》(今夜わかるHTTP)。担任The Tangled Web:A Guide to Securing Modern Web Application日文版的审校工作。译者简介于均良上海交通大学硕士,高级软件工程师,马拉松跑者,四点网创始人。
本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。
目录第1章 了解Web及网络基础 0011.1 使用HTTP协议访问Web 0021.2 HTTP的诞生0031.2.1 为知识共享而规划Web 0031.2.2 Web成长时代 0041.2.3 驻足不前的HTTP 0051.3 网络基础TCP/IP 0061.3.1 TCP/IP协议族 0061.3.2 TCP/IP的分层管理 0071.3.3 TCP/IP通信传输流 0091.4 与HTTP关系密切的协议:IP、TCP和DNS 0101.4.1 负责传输的IP协议 0111.4.2 确保可靠性的TCP协议 0121.5 负责域名解析的DNS服务 0131.6 各种协议与HTTP协议的关系 0141.7 URI和URL 0161.7.1 统一资源标识符 0161.7.2 URI格式 017第2章 简单的HTTP协议 0212.1 HTTP协议用于客户端和服务器端之间的通信 0222.2 通过请求和响应的交换达成通信 0222.3 HTTP是不保存状态的协议 0252.4 请求URI定位资源 0262.5 告知服务器意图的HTTP 方法0272.6 使用方法下达命令 0332.7 持久连接节省通信量 0342.7.1 持久连接 0362.7.2 管线化 0372.8 使用Cookie的状态管理 037第3章HTTP报文内的HTTP信息 0413.1HTTP报文 0423.2 请求报文及响应报文的结构 0423.3 编码提升传输速率 0443.3.1 报文主体和实体主体的差异 0443.3.2 压缩传输的内容编码 0443.3.3 分割发送的分块传输编码 0453.4 发送多种数据的多部分对象集合 0463.5 获取部分内容的范围请求0483.6 内容协商返回最合适的内容050第4章 返回结果的HTTP状态码 0534.1 状态码告知从服务器端返回的请求结果0544.2 2XX成功 0554.2.1 200 OK 0554.2.2 204 No Content 0564.2.3 206 Partial Content 0564.3 3XX 重定向 0564.3.1 301 Moved Permanently 0574.3.2 302 Found 0574.3.3 303 See Other 0584.3.4 304 Not Modified 0594.3.5 307 Temporary Redirect 0594.4 4XX 客户端错误 0604.4.1 400 Bad Request 0604.4.2 401 Unauthorized 0604.4.3 403 Forbidden 0614.4.4 404 Not Found 0614.5 5XX 服务器错误 0624.5.1 500 Internal Server Error 0624.5.2 503 Service Unavailable 062第5章 与HTTP协作的Web服务器 0655.1 用单台虚拟主机实现多个域名 0665.2 通信数据转发程序:代理、网关、隧道 0675.2.1 代理 0685.2.2 网关 0705.2.3 隧道 0705.3 保存资源的缓存 0715.3.1 缓存的有效期限 0725.3.2 客户端的缓存 072第6章 HTTP 首部 0756.1 HTTP 报文首部 0766.2 HTTP 首部字段 0786.2.1 HTTP首部字段传递重要信息 0786.2.2 HTTP首部字段结构 0786.2.3 4种HTTP首部字段类型 0796.2.4 HTTP/1.1首部字段一览 0806.2.5 非HTTP/1.1首部字段 0826.2.6 End-to-end首部和Hop-by-hop首部 0836.3 HTTP/1.1 通用首部字段 0836.3.1 Cache-Control 0846.3.2 Connection 0916.3.3 Date 0936.3.4 Pragma 0946.3.5 Trailer 0956.3.6 Transfer-Encoding 0966.3.7 Upgrade 0976.3.8 Via 0986.3.9 Warning 0996.4 请求首部字段 1006.4.1 Accept 1016.4.2 Accept-Charset 1026.4.3 Accept-Encoding 1036.4.4 Accept-Language 1046.4.5 Authorization 1056.4.6 Expect 1066.4.7 From 1076.4.8 Host 1076.4.9 If-Match 1086.4.10 If-Modified-Since 1106.4.11 If-None-Match 1116.4.12 If-Range 1126.4.13 If-Unmodified-Since 1136.4.14 Max-Forwards 1146.4.15 Proxy-Authorization 1156.4.16 Range 1166.4.17 Referer 1166.4.18 TE 1176.4.19 User-Agent 1186.5 响应首部字段1196.5.1 Accept-Ranges 1196.5.2 Age 1206.5.3 ETag 1206.5.4 Location 1226.5.5 Proxy-Authenticate 1236.5.6 Retry-After 1236.5.7 Server 1246.5.8 Vary 1256.5.9 WWW-Authenticate 1256.6 实体首部字段1266.6.1 Allow 1266.6.2 Content-Encoding 1276.6.3 Content-Language 1286.6.4 Content-Length 1286.6.5 Content-Location 1296.6.6 Content-MD5 1296.6.7 Content-Range 1306.6.8 Content-Type 1316.6.9 Expires 1316.6.10 Last-Modified 1326.7 为Cookie服务的首部字段 1326.7.1 Set-Cookie 1346.7.2 Cookie 1366.8 其他首部字段1376.8.1 X-Frame-Options 1376.8.2 X-XSS-Protection 1386.8.3 DNT 1386.8.4 P3P 139第7章 确保Web安全的HTTPS 1417.1 HTTP的缺点 1427.1.1 通信使用明文可能会被窃听 1427.1.2 不验证通信方的身份就可能遭遇伪装 1467.1.3 无法证明报文完整性,可能已遭篡改 1487.2 HTTP+加密+认证+完整性保护=HTTPS 1507.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS 1507.2.2 HTTPS是身披SSL外壳的HTTP 1517.2.3 相互交换密钥的公开密钥加密技术 1527.2.4 证明公开密钥正确性的证书 1557.2.5 HTTPS的安全通信机制 161第8章 确认访问用户身份的认证 1678.1 何为认证 1688.2 BASIC 认证 1698.3 DIGEST 认证1718.4 SSL客户端认证1738.4.1 SSL客户端认证的认证步骤 1748.4.2 SSL客户端认证采用双因素认证 1758.4.3 SSL客户端认证必要的费用 1758.5 基于表单认证 1758.5.1 认证多半为基于表单认证 1768.5.2 Session管理及Cookie应用 177第9章 基于HTTP的功能追加协议 1799.1 基于HTTP的协议1809.2 消除HTTP瓶颈的SPDY 1809.2.1 HTTP的瓶颈 1809.2.2 SPDY的设计与功能 1849.2.3 SPDY消除Web瓶颈了吗 1859.3 使用浏览器进行全双工通信的WebSocket 1869.3.1 WebSocket的设计与功能 1869.3.2 WebSocket协议 1869.4 期盼已久的HTTP/2.0 1899.5 Web 服务器管理文件的WebDAV 1909.5.1 扩展HTTP/1.1的WebDAV 1919.5.2 WebDAV内新增的方法及状态码 192第10章 构建Web内容的技术 19510.1 HTML 19610.1.1 Web页面几乎全由HTML构建 19610.1.2 HTML的版本 19710.1.3 设计应用CSS 19810.2 动态HTML 19810.2.1 让Web页面动起来的动态HTML 19810.2.2 更易控制HTML 的DOM 19810.3 Web应用 20010.3.1 通过Web提供功能的Web应用 20010.3.2 与Web服务器及程序协作的CGI 20010.3.3 因Java 而普及的Servlet 20110.4 数据发布的格式及语言 20310.4.1 可扩展标记语言 20310.4.2 发布更新信息的RSS/Atom 20410.4.3 JavaScript衍生的轻量级易用JSON 206第11章 Web的攻击技术 20711.1 针对Web的攻击技术 20811.1.1 HTTP不具备必要的安全功能 20811.1.2 在客户端即可篡改请求 20911.1.3 针对Web应用的攻击模式 21011.2 因输出值转义不完全引发的安全漏洞 21211.2.1 跨站脚本攻击 21311.2.2 SQL注入攻击 21811.2.3 OS命令注入攻击 22311.2.4 HTTP首部注入攻击 22511.2.5 邮件首部注入攻击 22811.2.6 目录遍历攻击 22911.2.7 远程文件包含漏洞 23011.3 因设置或设计上的缺陷引发的安全漏洞 23211.3.1 强制浏览 23211.3.2 不正确的错误消息处理 23411.3.3 开放重定向 23711.4 因会话管理疏忽引发的安全漏洞 23711.4.1 会话劫持 23811.4.2 会话固定攻击 23911.4.3 跨站点请求伪造 24111.5 其他安全漏洞 24211.5.1 密码破解 24211.5.2 点击劫持 24711.5.3 DoS攻击 24911.5.4 后门程序 250
评论关闭。