了解web及网络基础

在浏览器中输入URL后 信息会被送往某处,Web浏览器从Web服务端获取文件资源等信息,从而显示出web页面。
像这种通过发送请求获取服务器资源的web浏览器,都可以被称为客户端。web使用一种名为HTTP的协议作为规范完成从客户端到服务器端一系列的运作流程。

1. 网络的基础TCP/IP

我们通常使用的网络是在TCP/IP协议的基础上运行的。HTTP协议是其的一个子集。TCP/IP协议包括IEEE802.3、FDDI、ICMP、IP、FTP、HTTP、UDP等。TCP/IP协议包含了许多内容,包含了从电缆规格到IP地址的选定方式,寻找异地用户的方法、双方建立通讯的顺序,以及web页面显示需要处理的步骤等等。

1.1 TCP/IP的分层管理

TCP/IP协议主要分为四层,各层的作用如下:

  1. 应用层:决定了向用户提供应用服务时通信活动,(如HTTP协议,FTP协议,DNS服务);
  2. 传输层:提供网络连接中两台计算机之间的数据传输(主要包含两种协议TCP(传输控制协议)和
    UDP(用户数据报协议)协议)
  3. 网络层:用来处理在网络上流动的数据包,数据包是网络中传输的最小数据单位。该层规定了通过怎样的
    路径将数据传动到对方计算机,并将数据包传送给对方。(选择路径,传送数据包)
  4. 链路层:处理网络连接的硬件部分。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            client       servers

应用层 HTTP客户端 HTTP服务器
^ ^
| |
V V
传输层 TCP TCP
^ ^
| |
V V
网络层 IP IP
^ ^
| |
V V
链路层 网络 网络
^ ^
| |
+------------+
  1. 首先客户端会在应用层发出想看某个web页面的HTTP请求。
  2. 传输层对应用层的数据进行分割,并在各个报文上打上标记序号及端口号转发给网络层。
  3. 在网络层对传输层的数据包添加最为通讯目的地的MAC地址后转发各链路层。

这种将数据信息包装起来的方法称为封装。

2. HTTP相关的IP/TCP/DNS协议

2.1 IP 协议

IP协议位于网络层,将各种数据包传送给对方。其中最重要的是需要IP地址和MAC地址。IP地址指明节点被分配的网络地址,MAC地址指明网卡所属的固定地址(IP地址可以和Mac地址绑定,但是MAC地址基本不会变化)。当服务端和客户端不再同一个LAN下面的时候会通过ARP协议先发送给路由器。

客户端想往10.0.9.110发送数据->使用ARP未在当前LAN下面找到,先发送给MAC地址为XXX的路由器-> MAC地址为XXX的路由器中转给MAC地址为XXXXX的路由器->路由器再次中转->指定IP地址的服务接收端。

2.2 TCP 协议

TCP协议属于传输层,提供可靠字节流服务(将大块的数据分割成报文段为单位的数据包进行管理),同时将数据包准确传递给对方。TCP协议采用三次握手的策略。发送端首先发送一个带有SYN(TCP协议标志)的数据包给对方,接收端收到后回传一个带有SYN/ACK标志的数据包,最后发送端回传一个带有ACK标志的数据包,代表握手结束。

若上述过程在某个阶段中断,TCP协议会按相同的顺序发送相同的数据包。

参考资料

  1. 计算机网络第36讲-TCP的运输连接管理(计算机网络简明教程及仿真实验)
  2. LIUSE网络安全-渗透测试教程03-TCP三次握手讲解

2.3 DNS 服务

DNS协议提供域名查找IP地址,或者逆向从IP地址查找域名的服务。

2.4 小结

通过上面的知识,这里总结当在浏览器中请求一个URL会发生的事情:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
                       向DNS请求www.baidu.com的地址
客户端 ---------------------------------------------------------------> DNS
(请求http://www.baidu.com/xxs/ 页面)<---------------------------------
| 返回地址10.0.0.11X
| 客户端使用HTTP协议,
| 生成目标服务器的HTTP请求报文(get)
+--------------------------------+
|
|
V
TCP协议
将HTTP请求分割成多个报文段,将每
个报文段的信息可靠的传递给对方。
|
|
V
路由器 IP协议
搜素对方的地址,一边中转一边传输。
路由器 |
|
V
TCP协议
从客户端接收数据包,按数据包序号重组数据包。
|
| 通过HTTP协议
| 理解Web服务器是想要请求计算机上/xxs/的资源
+----------------------------------+
|
|
V
服务器

服务器的请求处理结果同样也是通过上面步骤进行回传。

3 URL VS URI

URI(Uniform Resource Identifier)浏览网页时需要输入的网址。

URL(Uniform Resource Locator)某个协议方案中表示资源的定位标识符。协议方案是指访问资源所要使用的协议类型名称。URI格式如下:

URL表示资源的地址,URI标识某一互联网资源。URL是URI的子集。

1
2
http://user:pass@www.zhaoyun.cn:80/dir/index.html?uid=1#ch1
{协议名}{认证信息}@{服务器地址}:{服务器端口号}{请求资源路径}?{查询字符串}#{片段标识符}