「 图解HTTP 」 读书笔记 第一章
了解 Web 及网络基础
1. 使用 Http 协议访问 Web
Web 浏览器根据地址栏中的 URL,从 Web 服务器端获取文件资源(resource)等信息,从而显示在页面。
通过发送请求获取服务器资源的 Web 浏览器等,都称为客户端 (client)。
![](https://img.haomeiwen.com/i3990272/6cdd806a33392068.png)
Web 是建立在 HTTP 协议上通信。
-
Web 使用 HTTP 协议作为规范,完成从客户端到服务器端等一系列运作流程。
-
HTTP(HyperText Transfer Protocol):超文本传输协议
2. 网络基础 TCP/IP
2.1 TCP/IP 协议族
TCP/IP 是互联网相关的各类协议族的总称。
![](https://img.haomeiwen.com/i3990272/00991454260a1ba6.png)
协议包含的内容:
-
电缆的规格
-
IP 地址的选定方法
-
寻找异地用户的方法
-
双方建立通信的步骤
-
Web 页面显示需要处理的内容
-
...等等
2.2 TCP/IP 的分层管理
TCP/IP 协议族按层次分层如下:
-
应用层
-
应用层决定了向用户提供应用服务时的通信活动
-
TCP/IP 协议族内预存了各类通用的应用服务,如
-
FTP(File Transfer Protocol)文件传输协议
-
DNS (Domain Name System) 域名系统
-
-
HTTP 协议处于应用层
-
-
传输层
-
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
-
传输层有两个性质不同的协议
-
TCP (Transmission Control Protocol) 传输控制协议
-
UDP (User Data Protocol) 用户数据报协议
-
-
-
网络层 (又名网络互连层)
-
网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位
-
该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方
-
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线
-
-
链路层(又名数据链路层,网络接口层)
-
用来处理连接网络的硬件部分,包括控制操作系统 、硬件的设备驱动 、NIC (Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)
-
硬件上的范畴均在链路层的作用范围之内
-
2.3 TCP/IP 通信传输流
![](https://img.haomeiwen.com/i3990272/d253d4fd0180d32e.png)
TCP/IP 协议族进行网络通信时,会通过分层顺序与对方通信。
发送端从应用层往下走,接收端从链路层往上走。
用 HTTP 举例:
-
发送端
-
客户端在应用层(HTTP 协议),发出一个想看某 Web 页面的 HTTP 请求。
-
传输层(TCP 协议)把从应用层接受的数据(HTTP 请求报文)进行分割,并在各个保文上打上标记序号及端口号转发给网络层。
-
在网络层(IP 协议),增加作为通信目的地的 MAC 地址转发给链路层。
-
-
接收端
-
接收端的服务器在链路层接收到数据, 按序往上层发送,一直到应用层。
-
数据传输到应用层,服务器才真正接受到客户端发送来的 HTTP 请求
通信传输02.png
-
发送端在层与层传输数据时,每经过一层必定会打上该层的首部信息。
接收端在层与层传输数据时,每经过一层会把对应的首部信息消去。
把数据信息包装起来的做法称为封装(encapsulate)。
3. 与 HTTP 关系密切的协议:IP 、TCP 和 DNS
3.1 负责传输的 IP 协议
按层次分,IP(Internet Protocol) 名词
网际协定位于网络层。
IP 协议的作用就是把各种数据包传输给对方。
确保数据传输到对方那里,IP地址 和 MAC(Meida Access Control Address)地址尤为重要。
-
IP地址 指明了节点被分配的地址
-
MAC地址 是指网卡所属的固定地址
IP地址 可以和 MAC地址进行配对,IP地址可变换,MAC地址基本不会更改。
使用 ARP 协议凭借 MAC 地址进行通信
-
IP 间的通信依赖 MAC 地址
-
ARP 是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对方的 MAC地址
-
在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制成为路由选择(routing)
![](https://img.haomeiwen.com/i3990272/b53a8c319d198c60.png)
3.2 确保可靠性的 TCP 协议
按层次分,TCP 位于传输层,提供可靠的字节流服务。
TCP 协议为了更容易传送大数据才把数据分割,TCP 协议能够确认数据最终是否到达对方。
确保数据能到达目标
为了准确无误的将数据送到目标处,TCP 协议采用三次握手策略,握手过程中使用了 TCP 的标志(flag)
-
SYN (synchronize)
-
ACK (acknowledgement)
握手过程:
-
发送端首先发送一个带有 SYN 标志的数据包给对方。
-
接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。
-
发送端再回传一个带 ACK 标志的数据包,代表握手结束。
![](https://img.haomeiwen.com/i3990272/3a9c88d7ec7ecc8d.png)
握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包
除了三次握手外,TCP 协议还有其它手段来保证通信的可靠性
4. 负责域名解析的 DNS 服务
DNS(Domain Name System) 服务和 HTTP 协议一样位于应用层的协议,提供域名到 IP地址之间的解析服务。
计算机既可以被赋予 IP地址,也可以被赋予主机名和域名。如 www.hackr.jp。
DNS 协议提供通过域名查找 IP地址,或逆向从 IP地址 反查域名的服务。
![](https://img.haomeiwen.com/i3990272/8a6549e8c4d7bef4.png)
5. 各种协议与 HTTP 协议的关系
![](https://img.haomeiwen.com/i3990272/8d4bff123ce8a540.png)
6. URI 和 URL
6.1 统一资源标识符
Uniform Resource Identifier 统一资源标识符
-
Uniform
规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。
-
Resource
可标识的任何东西,除了文档文件,图像或服务等能够区别其它类型的,全都可以作为资源。 资源不仅可以是单一的,也可以是多数的集合体。
-
Indentifier
标识可标识的对象,也称为标识符。
URI 就是由某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称。
采用 HTTP协议时,协议方案就是 http,初次之外,还有 ftp、matilo、telnet、file 等。
URI 用字符串标识某一互联网资源,URL 表示资源的地点(互联网上所处的位置),URL 是 URI 的子集。
RFC3896: 统一资源标识符通用语法如下所示:
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
6.2 URI 格式
绝对 URI 格式:
![](https://img.haomeiwen.com/i3990272/7c25a5beedab4280.png)
-
协议方案名
使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型,不区分字母大小写,最后附一个(:)。
-
登录信息(认证)
指定用户名密码作为从服务器端获取资源时必要的登录信息(身份认证),可选项。
-
服务器地址
使用绝对 URI 必须指定待访问的服务器地址,如:
a. 类似 hackr.jp 这种 DNS 可解析的名称
b. 或是 192.168.1.1 这类的 IPv4 地址名
c. 还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名
-
服务器端口号
指定服务器连接的网络端口号,若用户省略则使用默认端口号,可选项。
-
带层次的文件路径
指定服务器上的文件路径来定位特指的资源。
-
查询字符串
针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数,可选项。
-
片段标识符
使用片段标识符通常可标记出已获取资源中的子资源,可选项。
7.2 URL
Uniform Resource Locator 统一资源定位符
URL 就是 Web 浏览器访问 Web 页面需要输入的网址。如 http://hackr.jp/
![](https://img.haomeiwen.com/i3990272/6740a3766b0d0232.png)