HTTP (HyperText Transfer Protocol)超文本传输协议
是由欧洲原子研究组织(CERN)的 Tim Bernerslee 博士提出的,为了让远在世界各地的学者能够分享知识。
HTTP 0.9
HTTP于1990年问世,由于当时的标准没有建立,所以是1.0的前版本,所以叫0.9
HTTP 1.0
在1996年5月,HTTP标准正式发布
HTTP1.1
1997年1月修改,是目前最主流的http协议版本
TCP/IP协议族
图:TCP/IP 是互联网相关的各类协议族的总称TCP/IP的分层管理
分为 应用层,传输层,网络层,数据链路层
应用层
应用层决定用户提供应用服务时的通信的活动
TCP/IP 协议族内预存了各类通用的应用服务,FTP,DNS,HTTP都在其中。
传输层
传输层提供两台计算机之间的数据传输
有两个性质不同的协议,TCP协议(Transimission control protocol 传输控制协议)
UDP(user data protocol 用户数据报协议)
网络层
网络层用来处理网络上流动的数据包,该层规定了两台计算机之间的数据包传输路线,IP协议在网络层
链路层
用来处理连接网络的硬件部分
TCP/IP通信传输流
发送端向下走,接收端向下走拿HTTP来举例,首先在发送端的客户端在应用层发送一个想看某个web页面的请求 ,然后通过dns查找对应的域名,接着为了传输方便,传输层的TCP协议对从应用层收到的报文进行切割,用3次握手来确保数据可以发到接收端,然后给各个报文打上序号和端接口号发送到网络层,在网络层(IP协议),增加作为 通信目的的mac地址后转发给链路层
然后接收端的链路层收到数据,层层向上发送,一直到应用层,接收端才算收到发送端发送的HTTP请求
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该 层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层 时会把对应的首部消去。
这种把数据信息包装起来的做法称为封装(encapsulate)。
与 HTTP 关系密切的协议 : IP、TCP 和 DNS
负责数据传输的IP协议
IP协议的作用就是把各种数据包传送给对方,而要保证确实传到对方那里,需要满足各种条件,最重要的两个条件就是IP地址和MAC地址
IP地址指的是节点被分配到的地址,mac地址指的是网卡所属的固定的地址。IP地址可以和mac地址进行配对,IP地址可以改变,而mac地址不可以改变
在网络上,通信的双方在同一局域网 (LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转 才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方 的 IP 地址就可以反查出对应的 MAC 地址。这种机制称为路由选择(routing),有点像快递公司的送货过程。想 要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公 司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明 确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会 判断是否能送到对方的家中
确保可靠性的TCP协议
位于传输层,可以将数据进行切割,将大 块数据分割成以报文段(segment)为单位的数据包进行管理
还可以提供可靠的传输服务,三次握手,用TCP协议把数据发送出去之后,TCP不会置之不理,而是会问接收端收到没有(第一次),接收端会回复,嗯我收到了(第二次),然后接收端回复,嗯好的,我发完了,再见(第三次),如果中间有一个环节被切断,TCP就会重新发一次数据包,然后再问一次
传输过程dns协议
存在于应用层,可以通过域名查IP的资质或者通过IP反查域名
各个协议发挥的作用URI 和 URL
url就是我们经常用的网址
URI是(Unicode resource identifier)统一资源标识符
URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联 网上所处的位置)。可见 URL 是 URI 的子集。
URI的格式使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。不 区分字母大小写,最后附一个冒号(:)。 也可使用 data: 或 javascript: 这类指定数据或脚本程序的方案名。
登录信息(认证)
指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份 认证)。此项是可选项。
服务器地址
使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址 名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。
服务器端口号
指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动 使用默认端口号。
带层次的文件路径
指定服务器上的文件路径来定位特指的资源。这与 UNIX 系统的文件 目录结构相似。
查询字符串
针对已指定的文件路径内的资源,可以使用查询字符串传入任意参 数。此项可选。
片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个 位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选 项。
网友评论