前言
- 有输入就要有产出,该笔记是本人看完《图解HTTP》后对每章涉及到的知识进行汇总
- 博客将会已书的每章为一篇发布,下一篇博客发布时间不确定
- 笔记中有些个人理解后整理的笔记,可能有所偏差,也恳请读者帮忙指出,谢谢。
免责声明
- 本博客是本人在学习《图解 HTTP》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。
- 为了方便,博客有些图与书中的图一致,因此没有自行截图,而是采取引用他人博客图片地址,感谢这些博主提供的图床。
- 此笔记用于记录本人对于该知识的汇总。以方便日后的工作与学习。
- 内容与原书不完整,请读者结合原书观看
- 如有侵权请告知,马上删除。
第1章 了解Web及网络基础
1.1 使用HTTP协议访问Web
1. 客户端
- 通过发送请求获取服务器资源的Web浏览器等。
2. 协议
-
是指规则的约定
计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。
- HTTP协议:
- 超文本传输协议
- Web使用的协议规范,完成从客户端到服务端等一系列运作流程。(即Web是建立在HTTP协议上通信的)
- HTTP协议:
1.2 HTTP的诞生
1. HTML1.0
- 以in-line(内联)等形式显示HTML的图像
- 该协议标准至今任然被广泛使用在服务端
2. HTTP协议
- 主要是为了解决文本传输的难题
1.3 网络基础TCP/IP
1. TCP/IP 协议族
-
[协议](#2. 协议:)中存在各式各样的内容从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要处理的步骤,等等。
- 像这样把与互联网相关联的协议集合起来总称为 TCP/IP。
2. TCP/IP 的分层管理
-
TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。
-
分层的好处:
未使用分层 使用分层 如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。 只需把变动的层替换掉即可。 - 把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。
-
-
-
应用层:决定了向用户提供应用服务时通信的活动。
TCP/IP 协议族
内预存了各类通用的应用服务。- FTP:文件传输协议(File Transfer Protocol)
- DNS:域名系统(Domain Name System)
- HTTP 协议也处于该层。
-
传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
- 遵循协议
- TCP:传输控制协议(Transmission Control Protocol)
- UDP:用户数据报协议(User Data Protocol)
- 遵循协议
-
网络层(网络链路层):用来处理在网络上流动的数据包。
- 数据包:是网络传输的最小数据单位
- 该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
-
链路层(数据链路层|网络接口层):用来处理链接网络的硬件部分
-
3. TCP/IP 通信传输流
-
发送端从应用层往下走,接收端则往应用层往上走。
- 封装:数据信息包装起来的做法
- 发送端的封装:在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。
- 接收端的封装:在层与层传输数据时,每经过一层时会把对应的首部消去。
- 封装:数据信息包装起来的做法
1.4 与HTTP关系密切的协议:IP、TCP和DNS
1. 负责传输的IP协议
-
位于:网络层
-
IP协议!==IP地址
- IP协议:
- 作用:把各种数据包传送给对方。
- 保证确实传送成功条件
- IP地址
- MAC地址
IP 地址 MAC 地址 指明了节点被分配到的地址 指网卡所属的固定地址 地址可变换 地址基本上不会更改。 - IP 地址可以和 MAC 地址进行配对
2. 确保可靠性的TCP协议
-
位于:传输层
-
提供可靠的字节流服务
- **字节流服务(Byte Stream Service)**是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。
-
为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。
如何确保数据能到达目标?
-
TCP三次握手策略
第几次握手 端 行为 标志 1 发送端 发送一个待SYN标志的数据包给对方 发送握手请求 2 接收端 收到后,回传一个带有SYN/ACK标志的数据包 通信成功 3 发送端 接受到后,再回传一个带ACK标志的数据包 握手结束 【注意】若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包
3. 负责域名解析的DNS服务
-
位于:应用层的的协议
-
提供域名到IP地址之间的解析服务。
- DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
4. 各种协议与HTTP协议的关系
1.7 URI 和 URL
1. URI
-
统一资源标识符(Uniform Resource Identifier)
-
Uniform:统一的格式
-
Resource:资源
- 资源:
- 可以标识的任何东西
- 除了文档文件、图像或服务等能够区别于其他类型的。
- 可以是单一的,也可以是多数的集合体
- 资源:
-
Identifier:标识符
-
-
是由某个协议方案标识的资源的定位标识符
- 协议方案:
- 访问资源所使用的协议类型名称。
- 协议方案:
-
用字符串标识某一互联网资源。
-
格式:
-
绝对URI
字段说明 表示 规范 协议方案名 获取访问资源时要指定的协议类型 1. 不区分字母大小写。
2. 最后附上:
登录信息(认证) 指定用户名和密码作为从服务器获取资源时必要登录信息(身份认证) 可选 服务器地址 使用URI必须指定待访问的服务器地址 1. 必须指定
2. 可以是DNS可解析地址
3. 可以是IPv4地址名
4. 可以是IPv6地址名服务器端口号 指定服务器上连接的网络端口号 可选(若省略则自动使用默认端口) 带层次的文件路径 指定服务器上的文件路径来定位特指的资源 与UNIX系统的目录结构相似 查询字符串 针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数 可选 片段标识符 标记出已获取资源中的子资源(文档内的某个位置) 可选 -
相对URI
- 从浏览器中基本URI处指定的URL
-
2. URL
- 表示资源的地点 (互联网上所处的位置)。
- 是URI的子集。