TCP/IP
TCP/IP协议族按层次分别分为以下几层:
应用层
传输层
网络层
数据链路层
TCP/IP协议各层作用如下
应用层:应用层决定了向用户提供应用服务时通信的活动。
传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
网络层(又名网络互联层):网络层用来处理在网络上流动的数据包。
链路层(又名数据链路层,网络接口层):用来处理连接网络的硬件部分。
与HTTP关系密切的协议:IP,TCP和DNS
IP(Internet Protocol):IP网际协议位于网络层,IP协议不是IP地址,IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址。
TCP:TCP位于传输层,提供可靠的字节流服务。字节流服务是指为了传输方便,将大块数据分隔成以报文段为单位的数据包进行管理。而可靠的传输服务是指,能够把数据可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分隔,而且TCP协议能够确认数据最终是否送达到对方。
为了准确无误地将数据送达目标处,TCP协议采用了三次握手策略。发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包
DNS:DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。
URL和URl
URI(Uniform Resource Identifier):统一资源标识符
URL(Uniform Resource Locator):统一资源定位符
绝对URI的格式
http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1
分段解析
http:// 协议方案名
user:pass 登录信息(认证)
www.example.jp 服务器地址
80 端口
/dir/index.htm 带层次的文件路径
uid=1 查询字符串
ch1 片段标识符
1.登录信息(认证)
指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项
2.服务器地址
使用绝对URI必须指定带访问的服务器地址。地址可以是类似hackr.jp这种DNS可解析的名称,或是192.168.1.1这类IPv4地址名,还可以是[0:0:0:0:0:0:0:1]这样用方括号括起来的IPv6地址名。
3.服务器端口号
指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。
4.带层次的文件路径
指定服务器上的文件路径来定位特指的资源。这与UNIX系统的文件目录结构相似。
5.查询字符串
针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。此项可选。
6.片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置)。但在RFC并没有明确规定其使用方法。该项也为可选项。