学习笔记 | 了解Web及网络基础
第1章 了解Web及网络基础
1.1 使用HTTP协议访问Web
- Web是建立在HTTP协议(
HyperText Transfer Protocol
,超文本传输协议
)上通信的。 - 不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。我们把这种规则称为协议。
1.2 HTTP的诞生
1.2.1 为知识共享而规划Web
现在已提出了3项WWW构建技术,分别是:
- 把SGML(
Standard Generalized Markup Language
,标准通用标记语言
)作为页面的文本标记语言的HTML(HyperText Markup Language
,超文本标记语言
); - 作为文档传递协议的HTTP;
- 指定文档所在地址的URL(
Uniform Resource Locator
,统一资源定位符
);
1.2.2 Web成长时代
1.2.3 驻足不前的HTTP
HTTP/0.9
- HTTP于1990年问世。那时的HTTP并没有作为正式的标准被建立。这时的HTTP其实含有HTTP/1.0之前版本的意思,因此被称为
HTTP/0.9
。
HTTP/1.0
- HTTP正式作为标准被公布是在1996年的5月,版本被命名为
HTTP/1.0
,并记载于RFC1945。虽说是初期标准,但该协议标准至今仍被广泛使用在服务器端。
HTTP/1.1
-
1997年1月公布的
HTTP/1.1
是目前主流的HTTP协议版本。当初的标准是RFC2068,之后发布的修订版RFC2616就是当前的最新版本。 -
当年HTTP协议的出现主要是为了解决文本传输的难题。
1.3 网络基础TCP/IP
1.3.1 TCP/IP协议族
- TCP/IP是互联网相关的各类协议族的总称。
1.3.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
,用户数据报协议
)
网络层(又名网络互连层)
- 网络层用来处理在网络上流动的数据包。
- 数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
- 增加作为通信目的地的MAC地址后转发给链路层。
- 与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层(又名数据链路层,网络接口层)
- 用来处理连接网络的硬件部分。硬件上的范畴均在链路层的作用范围之内。
- 包括控制操作系统、硬件的设备驱动、NIC(
Network Interface Card
,网络适配器
,即网卡
),及光纤等物理可见部分(还包括连接器等一切传输媒介)。
1.3.3 TCP/IP通信传输流
1.4 与HTTP关系密切的协议:IP、TCP和DNS
1.4.1 负责传输的IP协议
- 可能有人会把“IP”和“IP地址”搞混,“IP”其实是一种协议的名称。
-
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址(
Media Access Control Address
)。 - 采用ARP协议(
Address Resolution Protocol
)。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
1.4.2 确保可靠性的TCP协议
-
按层次分,TCP位于传输层,提供可靠的字节流服务。所谓的字节流服务(
Byte Stream Service
)是指,为了方便传输,将大块数据分割成以报文段(segment
)为单位的数据包进行管理。 -
而可靠的传输服务是指,能够把数据准确可靠地传给对方。
-
为了准确无误地将数据送达目标处,TCP协议采用了三次握手(
three-way handshaking
)策略。
用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag
)——SYN(synchronize
)和ACK(acknowledgement
)。
发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。
最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。 -
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
1.5 负责域名解析的DNS服务
- DNS(
Domain Name System
)服务是和HTTP协议一样位于应用层的协议。 - 它提供域名到IP地址之间的解析服务。
1.6 各种协议与HTTP协议的关系
1.7 URI和URL
1.7.1 统一资源标识符
- URI用字符串标识某一互联网资源。
- URL表示资源的地点(互联网上所处的位置)。
- 可见URL是URI的子集。
1.7.2 URI格式
- URI表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL。
- 相对URL,是指从浏览器中基本URI处指定的URL,形如 /image/logo.gif。
让我们先来了解一下绝对URI的格式。