作者:汪娇娇
时间:2017年9月7日
这章我们会介绍一下什么是HTTP,HTTP是用来干嘛的; 然后还会介绍和HTTP关系紧密的3个协议:IP、TCP和DNS; 有人可能对URI和URL有点区分不开,这章也会做个大致的对比介绍。
先上一张脑图:
在说HTTP定义之前,先问大家一个问题,大家知道当我们在浏览器的地址栏中输入URL时,web页面是如何呈现的吗?
web使用一种名为HTTP(Hypertext Transfer Protocol,超文本传输协议)的协议作为规范,完成客户端到服务端等一系列运作流程。而协议是指规则的约定。可以说,web是建立在HTTP协议上通信的。
现在主流的HTTP协议版本是HTTP/1.1,那之前又有哪些版本,它们之间又有什么联系与区别呢?
HTTP于1990年问世。那时的HTTP还没有被作为正式的标准被建立。这时的HTTP其实包含HTTP/1.0之前版本的意思,因此被称为HTTP/0.9 。
HTTP正式作为标准公布是在1996年的5月,版本命名为HTTP/1.0,并记载于RFC1945。
1997年1月公布,是目前主流HTTP协议版本。当初的标准是RFC2068,之后发布的修订版RFC2616是当前的最新版本。
为了更好的理解HTTP,我们有必要事先了解一下TCP/IP协议族以及它们是如何进行网络通信的。
下面分别针对在TCP/IP协议族中与HTTP密不可分的3个协议进行说明。
按层次分,IP(Internet Protocol)网络协议位于网络层。
可能有人会把 “IP” 和 “IP地址” 搞混。
“IP” 其实是一种协议的名称,IP的作用是把各类数据包传送给对方。要保证确实传送到对方那里,则需要满足各类条件。其中最重要的2个条件就是IP地址和MAC地址(Media Access Control Address)。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,MAc地址基本上不会更改。
IP间的通信依赖MAC地址。在网络上,通信双方在同一LAN内的情况很少,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
在到达通信目标前的中转过程,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制称为路由选择(routing)。
按层次分,TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。而且TCP协议能够确认数据最终是否送达到对方(三次握手)。
注:SYN(synchronize)和ACK(acknowledgement)。
DNS(Domain Name System)服务和HTTP协议一样位于应用层。它提供域名和IP地址之间的解析服务。
URI是Uniform Resource Identifier的缩写。
Uniform:规定统一的格式。
Resource:可标识的任何东西。
Identifier:标识符。
综上,URI就是由某个协议方案表示的资源的定位标识符。
URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集。
片段标识符也就是我们常见的锚链接,用来标识页面的子资源。