2021年在专业书籍的阅读方面相对困乏,伴随学习的深入,越来越感觉到底层知识在解决某个极为细节的问题过程中的重要性,所以选择静下心来进行阅读,并将阅读的书籍以笔记的形式在博客上进行打卡,欢迎大家进行监督。
这一章很简单地介绍了TCP/IP的四层结构:应用层、网络层、运输层、链路层
利用图解的方式介绍了HTTP发送请求从服务端到接收端发生了哪些事情、TCP/IP的三次握手,DNS解析在获取Web服务器上浏览器资源的角色,URL是URI的子集等内容;
• 利用Keep-alive(除非TCP连接一方明确提出断开连接,否则始终保持连接),来实现TCP的持续连接,从而降低服务端的压力,实现发送请求的管线化
• 利用隧道协议来支持并行发送请求
• 使用Cookie进行状态管理
这章讲解了
• HTTP报文的整体结构、请求/响应报文的结构划分
• 编码提升效率的两种方式:压缩传输,如gzip、compress编码,分块传送
• 获取部分范围的内容请求(Content-Range)
• 内容协商的传输请求
从表格中不难看到,三位状态码的第一位表示归属类别,后两位无固定划分
在这一章中,作者着重介绍了重定向的几种情况,如301、302、303、307几种情况,想要详细了解重定向的同学可以看一看
• 实体主机如何用一个IP地址识别多个域名(host字段的作用)
• 通信数据转发:代理、网关和隧道各自的作用
• 缓存的作用(缓存服务器在HTTP协议传输中起到的作用)
• HTTP报文首部的结构
• HTTP首部字段类型:通用首部字段、请求首部字段、响应首部字段、实体首部字段
通用首部字段:
Cache-Control->缓存控制
Connection->连接的管理
Upgrade->升级为某种特定的协议
Via->代理服务器的相关信息
Warning->错误通知
请求首部字段:
User-Agent->发送方的信息,包括途经的中转服务器
Accept->能够接受的媒体优先级及其权重,以及媒体的编码方式
Authorization->用户认证的信息
Host->代理服务器在主机上接受的域名
If-Modified-Since->返回在指定时间后修改的资源
If-Range->如果更新,则返回部分报文段
Max-forwards->最大查询字段
Proxy-Authorization->客户端接受到服务端的查询认证时,在报文中添加的认证信息
响应首部字段:
Accept-Range->能处理范围的请求
Age->缓存服务器告知客户端,源服务器在多久前响应了缓存服务器的更新
E-tag->标识符,分为强标识符和弱标识符
Server->告知客户端服务器上安装的HTTP服务器应用的版本信息、版本号和安装时的启用项
实体首部字段:
Allow->服务器支持的方法
Content-Coding->实体部分的编码方式
Last-Modified->上一次修改的时间
Expires->实体失效的时间
• HTTP的缺点
1.通信使用明文,易被监听窃取
2.没有对通信双方的身份进行认证
3.无法保证报文的完整性,可能得到篡改
• 加密处理
1.通信加密(SSL+TLS),对通信进行套接字处理
2.内容加密(对报文内容进行加密)
• SSL技术
• 公开密钥加密技术
1.对称密钥加密技术
2.使用两把密钥的公开加密技术
3.HTTPS采用的混合加密技术:保证传输的安全性和速率
• HTTPS的安全通信技术
• 使用SSL加密带来的加载速率变慢和服务器负荷上升代价
• Basic认证(用户ID+密码->Base64编码->服务器)
• Digest(认证->质询->质询码)
• SSL客户端认证
• 基于表单的认证
• Session管理和Cookie的应用
• HTTP的相关瓶颈协议
• Ajax
• 全双工通信的Websocket协议
• HTTP 2.0
• WebDAV的Web服务器的文件管理技术
• HTML、CSS、JSON、XML、CGI技术
• 基于Java的Servlet技术
这章会前端的可以不看。。
• 客户端篡改请求
• 针对Web的攻击模式
1.主动攻击
2.被动攻击
• 跨站脚本攻击
• SQL攻击
• OS注入攻击
• HTTP首部注入攻击
• 邮件首部注入攻击
• 目录遍历攻击
• 远程文件包含漏洞
• 开放重定向
• 会话挟持和会话固定攻击
这本书总体来说,对HTTP的涉猎比较全面:结构、客户端与服务端、安全都有所涉及,也普及了一些在写书时相对新颖的技术,如Websocket和JSON等技术,但因为图书出版时间的关系,图中的技术很多也进入了市场应用,一个普通的初级开发人员就可以接触到这些相关技术,但并不影响其作为一本给初级乃至中级程序员进行知识普及和查漏补缺的良好书籍。