《老子》第二章
天下皆知美之为美,斯恶矣;皆知善之为善,斯不善矣。
故有无相生,难易想成,长短相形,高下相倾,音声相和,前后相随。
是以圣人处无为之事,行不言之教,万物作焉而不辞,生而不有,为而不恃,功成而不居。夫唯不居,是以不去。
1.使用http协议访问web
当我们在浏览器上输入url地址并访问对方服务器的过程中,我们的浏览器会显示出web页面,web浏览器从web服务端获取文件资源,此时,web使用HTTP协议作为规范.
2.http的问世
http/0.9:http于1990年问世,这时http并没有被作为统一规范.
http/1.0:1996年被正式公布,至今仍然广泛应用.
http/1.1:1997年公布.
3.TCP/IP
HTTP是TCP/IP协议族的一个子集
计算机网络设备间要相互通信,必须基于相同方法,例如如何探测通信目标,哪一边先发起通信,使用何种语言,如何结束通信,不同操作系统和硬件之间的通信等等,所有这一切需要一种规则,我们称之为协议(protocol),我们把所有与互联网相关的协议集合起来总称TCP/IP.
分层管理
TCP/IP协议族里最重要的一点就是分层管理,按层次分为应用层,传输层,网络层和数据链路层.通过分而治之,达到灵活,简洁,有重点的目的.
应用层:决定了向用户提供应用服务时通信的活动,包含FTP,DNS,HTTP服务.
传输层:提供网络连接中两台计算机之间的数据传输,包含TCP,UDP协议.
网络层:处理网络中的流动包,包含IP协议.
数据链路层:处理连接网络的硬件部分.
举个例子,当我们在浏览器中输入一个url时,作为发送端的客户端在应用层(HTTP协议)发出一个想看某个web网页的http请求,为了传输方便,在传输层(TCP协议)把来自应用层的http报文分隔,标序打上端口号后转给网络层,网络层(IP协议)将信息中增加mac地址后转发给链路层,这样,发送网络的数据请求就齐全了.
接收端的服务器在链路层接收到数据,并反向发送到应用层,在此过程中一层层解包.
4.IP,TCP,DNS协议
IP(Internet protocol)协议:网际协议,几乎所有网络系统都要用到此协议,作用是传输数据包,而要传输数据包,不可避免需要ip地址和mac地址,ip地址指明节点被分配的地址,可变;mac地址指网卡所属地址,几乎不可变.
ARP(Adress Resolution Protocol)协议:一种解析地址的协议,IP间的通信主要依赖MAC进行,通信双方处在同一个局域网的情形少见,一般需要经过多次中转连接到对方,在进行中转时,会利用下一站的mac地址搜索下一个中转目标,这时采用ARP协议,通过IP地址反查出mac地址.
没有人能全面掌握互联网中的传输情况
中转过程中,网络设备只能粗略获取传输路线—路由选择.
TCP协议:传输控制协议,位于传输层,目的是保证数据准确无误地到达目的地,提供可靠的字节流服务.所谓字节流服务,是为了传输方便,将大块数据分割成以报文段(segment)为单位的数据包进行管理,为了确保数据准确无误地传输到目的地,TCP采取了三次握手(three-way handshaking)策略,当用TCP协议将数据包传输出去了之后,TCP协议不会对此不管不顾,它会向对方确认是否收到数据包,这个过程中使用到了TCP协议的标志(flag):SYN(synchronize)和ACK(acknowledge).
例如,发送端首先发送一个带有SYN标志的数据包给对方,接收端收到后,回传一个带有SYN和ACK标志的数据包代表接收到,最后发送端回传一个ACK标志的数据包,代表握手结束.若在握手过程中某个过程突然间断,TCP协议会再次以相同顺序发送数据包.
DNS服务:即域名解析服务,与HTTP服务一样,位于应用层,提供域名到IP地址的解析服务.计算机通过IP地址得以交流,但对于我们人来说当然是字符串类型的表现形式更加容易记住,就比如http://www.baidu.com,当我们在浏览器上输入这段域名时,计算机是不认识的,此时DNS服务就将这段域名转换为相应的IP地址得以访问.
综上,这几种协议与HTTP协议的关系可大致用下图反应:
5.URI和URL
与URI相比,我们更熟悉URL(uniform resource locator),url就是我们输入在浏览器上的网址.
URI(Uniform Resource Identifier):统一资源标识符,uniform代表规定统一格式以方便访问,resource代表各种网页资源,identifier代表可标识对象.即,URI是某个协议方案标识的资源定位符,当采用http协议时,协议方案就是http.
URI格式:http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch=1