总结:
这本书图文并茂让人很容易理解,但好多知识点都是蜻蜓点水,讲得不深入。我在阅读的过程就有一下的疑问:
1、把数据信息包装起来叫:封装。那么首部信息是什么?
2、IP协议:包含IP地址,Mac地址。那么MAC具体有什么用?
4、URI 和URL的区别
5、HTTP传输中用编码提升输出速率?是内容变小
6、报文主体与实体主体区别
7、代理、网关、隧道的区别?参考资料1、资料2
8、TCP是如何复用链接的?利用均衡负载器
个人建议可以当这本书当做HTTP导读来看待,如果想要了解HTTP的话,还是去啃HTTP权威指南吧。
图解HTTP
1 0、简单的HTTP协议
1.1 HTTP协议可以明确区分客户端/服务端
1.2 HTTP协议无状态协议,可由Cookie管理状态
1.3 HTTP协议的请求方法:是一种发送请求报文的方式
1.3.1 HEAD:和GET一样,只返回报文首部:状态等信息
1.3.2 PUT:传输文件
1.3.2.1 DELETE:删除文件
1.3.3 OPTIONS:查询请求支持的方法
1.4 TCP链接要经过三次握手,所以会添加传输过程中的流量
1.4.1 HTTP/1.1 --持久连接(默认)
1.5 持久连接中的 管线化 --同时并行发送多个请求,不需要一个个等待响应
2 1、了解web及网络基础
2.1 WWW:万维网
2.1.1 是web浏览器用来浏览超文本的客户端应用程序的名称
2.1.2 表示:HTML、HTTP、URL的集合
2.2 网络基础TCP/IP(各类协议族的总称)
2.2.1 子集:HTTP
2.2.2 分四层:应用层、传输层、网络层、数据链路层
2.3 与HTTP关系密切的协议
2.3.1 IP
2.3.1.1 网络协议,确定发送/接收方的位置
2.3.1.2 重要条件:IP地址、MAC地址
2.3.2 TCP
2.3.2.1 把大块数据分割成以报文段为单位的数据包进行管理
2.3.3 ARP
2.3.3.1 解析地址的协议,根据IP地址反查出对应的MAC地址
2.3.4 DNS
2.3.4.1 提供域名到IP地址之间的解析服务
2.3.5 URI与URL的联系
2.3.5.1 URI(统一资源标识符)包含URL、URN(统一资源名称)
2.3.5.2 URL,统一资源定位符(具体位置),URN(确认一个名字)
3 3、HTTP报文内的HTTP信息
3.1 用于HTTP协议交互的信息被称为HTTP报文
3.1.1 报文的首部
3.1.1.1 请求行、各种首部字段
3.1.2 报文的主体
3.1.2.1 内容
3.1.3 结构图
3.1.3.1
3.2 报文的主体/实体的主体
3.2.1 只有传输中进行了编码操作是,两者才有区别
3.3 内容编码
3.3.1 gzip、compress、deflat、identity
3.4 发送的报文主体的类型(content-type)
3.4.1 multipart/form-data、multipart/by teranges等
3.5 获取部分内容的范围请求Range
3.5.1 用于断点下载/上传
4 4、返回结果的HTTP状态码
4.1 状态码描述返回的请求结果
4.1.1 1XX:接收的请求正在处理
4.1.2 2XX:请求正常处理完毕
4.1.3 3XX:需要进行附加操作以完成:例如:重定向状态
4.1.4 4XX:服务器无法处理请求
4.1.5 5XX:服务器处理请求出错
5 5、与HTTP协作的web服务器
5.1 虚拟主机
5.1.1 单台虚拟主机实现多个域名(就是:一台服务器内托管多个域名)
5.1.2 虚拟主机寄存多个不同主机名和域名的web网站。用于区分相同IP地址下的不同域名请求
5.2 通信数据转发程序
5.2.1 代理(使用相同协议)
5.2.1.1 服务器和客户端的“中间人”的角色,过程不改变请求URI
5.2.2 网关(使用不同的请求协议)
5.2.2.1 网间连接器、协议转换器,是一个翻译器;可以让HTTP请求,转化为其他协议的通讯
5.2.3 隧道
5.2.3.1 按要求建立一条与其他服务器的通信线路,可以使用ssl等加密手段进行通信
6 6、HTTP首部
6.1 请求报文
6.1.1 报文首部
6.1.1.1 请求行
6.1.1.1.1 方法、URI、HTTP版本
6.1.1.2 请求首部字段
6.2 响应报文
6.2.1 HTTP版本、状态码、HTTP首部字段
6.3 HTTP首部
6.3.1 首部的类型
6.3.1.1 End-to-end
6.3.1.1.1 必须转发
6.3.1.2 Hop-to-hop
6.3.1.2.1 单次转发有有效,缓存和代理不在转发:就是会忽略了
6.3.1.2.2 除了8个是,其中有Connection
6.3.2 首部字段类型
6.3.2.1 通用首部字段、请求首部字段、响应首部字段
6.3.2.2 实体首部字段
6.3.2.2.1 Allow:资源可支持HTTP的方法
6.3.2.2.2 补充资源内容更新的时间等与实体有关的信息
6.3.3 首部字段结构
6.3.3.1 首部字段命:字段值
6.3.3.2 如果字段名重复了,就根据浏览器内部处理逻辑的不同,结果可能不同
7 7、确保web安全的HTTPS
7.1 HTTP的不足
7.1.1 1、通信用明文,内容被窃听
7.1.2 2、不验证通信方的身份,遭遇伪装
7.1.3 3、无法证明报文的完整性,内容可能遭篡改
7.1.3.1 中间人攻击:通信中,遭攻击者拦截并篡改内容的攻击
7.2 解决方法:HTTPS
7.2.1 身披SSL外壳的HTTP
7.2.2 通讯过程
7.2.2.1 1、公开密钥来交换共享密钥
7.2.2.2 2、使用共享的密钥来交换通信数据
7.2.3 SSL
7.2.3.1 1、加密
7.2.3.2 2、提供认证,确定身份。
7.2.3.3 3、摘要功能:完整性
8 8、确认访问用户身份的认证
8.1 1、BASIC认证 (基本认证)
8.1.1 HTTP/1.0
8.1.2 状态码401要求客户端输入进行认证 客户端讲用户ID和密码以Base64编码后发送 (相当于明文,密码容易泄露)
8.2 2、DIGEST认证 (摘要认证)
8.2.1 HTTP/1.1
8.3 3、SSL客户端认证
8.4 4、FormBase认证(基于表单认证)
8.4.1 使用cookies来管理链接状态
9 9、基于HTTP的功能追加协议
9.1 Ajax 局部更新
9.2 Comet 延迟响应直到服务器有更新
9.3 SPDY
9.3.1 在HTTP于TCP之前,都用SSL,解决HTTP性能瓶颈问题
9.3.2 优点
9.3.2.1 1、多路复用TCP【但目前只是将单个域名的通信多路复用】
9.3.2.2 赋予请求优先级、压缩HTTP首部、推送功能
9.4 WebSocket
9.4.1 web浏览器与web服务器之间全双工通信标准
9.4.2 建立在HTTP基础上的协议,有客户端发起请求,建立后双方可以主动互相通信
9.5 HTTP/2.0
9.5.1 集SPDY、WebSocket的优势
10 10、构建Web内容的技术
10.1 HTML
10.1.1 超文本标记语言。超文本是一种文档系统,将文档中任意位置的信息与其它信息建立关联,即超链接文本
10.2 CSS
10.2.1 指定如何展现HTML内的各种元素。目的是让文档的结构和设计分离
10.3 JavaScript
10.3.1 实现对HTML的web页面的动态改造。
10.4 DOM
10.4.1 将HTML内的元素当做对象操作。js对DOM的操作,简单控制HTML改变
10.5 数据发布的格式及语言
10.5.1 XML
10.5.1.1 可拓展标记语言,是一种记录数据的结构
10.5.1.2 RSS数据结构就是用XML
10.5.1.2.1 是发布新闻、博客日志更新信息文档的格式总称
10.5.2 JSON
10.5.2.1 是一种以Javascript的对象表示法为基础的轻量级数据标记语言。