HTTP的诞生?
最开始1989年时候,是为了能够让远隔两地的研究者们共享知识的一个设想,1990年时候研发成功了世界上第一台的web服务器和web浏览器,1994年网景公司发布了Netscape Navigator 1.0,1995年微软IE1.0和2.0。开始了浏览器大战,两家公司对于HTML做了扩展,于是导致写HTML页面时候,必须兼容两家公司的浏览器。2004年,Firefox浏览器出现,第二次浏览器大战开始爆发。IE浏览器从IE6到IE7花费五年。随后Chrome,Opera,Safari等浏览器也纷纷抢占市场份额。
其实不管你干哪一行都得了解这个行业的历史,不然你不知道现在的人为什么要这么做,为什么这么做是对的?因为有先辈们已经踩过的坑留念,所以后辈才知道,啊,原来这么做是对的,如果你都不去探究为啥要这么做,就只是会实现,那跟咸鱼还有什么差别【白眼】?
HTTP/0.9是1990年问世,那时候HTTP并没有作为正式的标准被建立。
HTTP/1.0标准被公布是在1996年,虽说是初期,但是至今仍然被广泛使用在服务器端。
HTTP/1.1是目前主流的HTTP协议版本,发布时间1997年,新一代的HTTP/2.0正在制定中,但要达到较高的覆盖率还需假以时日。HTTP协议出现的主要目的是为了解决文本传输的难题。
网络基础TCP/IP:
计算机和网络之间通讯时需要协议的,把与互联网相关联的协议集合起来总称为TCP/IP。TCP/IP协议族里最重要一点就是分层:应用层,传输层,网络层,数据链路层。层次化的好处:感觉跟我们前端的模块化有点像,比如,如果互联网只由一个协议统筹,某个地方要改动的话,牵一发而动全身了,而层次化只需要把变动的层替换即可。
应用层:连接客户端,决定向用户提供应用服务。例如:FTP,DNS,HTTP协议都在这层。
传输层:对应用层进行数据传输,协议有:TCP,UDP。
网络层:处理在网路上流动的数据包。数据包就是网络传输的最小数据单位。所起的作用就是在众多的选项内选择一条传输线。
链路层:处理连接网络的硬件部分。包括操作系统,驱动,网卡,光纤等物理可见部分。
发送端是从应用层往下走,接收端则是从链路层往上走。发送端在层与层之间传输数据时,每经过一层必定会打上一个该层所属的头部信息,接受端在层与层之间传输信息时候,每经过一层则把对应的头部消去。
与HTTP关系密切的协议:IP,TCP和DNS:
1> IP协议
IP协议不要跟IP地址搞混啊,先提醒下小白们,虽然我也是刚开始具体了解,防止大家误解先声明下。IP协议位于第三层网络层。IP协议作用是把各种数据包传送给对方。要确保传送给对方那里,需要满足各类条件,其中最重要的两个条件:IP地址和MAC地址。
IP地址指明节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对,IP地址可变换,但是MAC地址基本上不会更改。
IP间的通讯依赖MAC地址。在一个局域网段内的用户可以直接进行IP地址通讯,如果不是,则需要中转,利用ARP(Address Resolution Protocol)协议,一种解析地址的协议,可以根据通信方的IP地址反查MAC地址。
没有人能够全面掌握互联网中的传输状况:在到达通信目标前的中转过程中,会有路由的选择,类似发快递一样,集散中心——中转站——中转——对方家中。举个栗子:1、想往192.0.43.01的IP地址发送数据包——使用APR协议进行解析没有解析出来,总之先发给MAC地址为00-XX-C6-6B-XX-XX吧【路由器】——中转,下一站是路由器MAC地址是00-XX-B5-A5-XX-XX——中转,下一站MAC地址是00-XX-A6-6B-XX-XX,IP地址就是192.0.43.01的接受端。
2>TCP协议
TCP协议位于第二层传输层。为了方便传输,将大数据进行分割成报文段的数据包进行管理,主要还是为了更容易传送大数据才分割数据,而且能够确认数据最终是否送达到对方,策略就是三次握手。
如果在握手过程中某个阶段中断,TCP协议会再次以相同的顺序发送相同的数据包。
3> DNS域名解析
DNS服务是和HTTP协议一样位于第一层应用层。提供域名和IP地址之间的解析。说白了就是:计算机比较爱处理一串数字,而愚蠢的人类喜欢用主机名+域名来访问,DNS协议可以通过域名查找IP地址,也可以反查。
各种协议和HTTP协议之间的关系梳理:
小白想访问http://gaodashang.jp/xss/housailei.html页面,首先呢,在应用层是DNS协议告诉客户端这个域名的ip地址22X.198.105.112,然后呢HTTP协议开始工作,生成针对目标Web服务器的HTTP请求报文;
到第二层传输层,TCP协议工作,我为了通讯方便,将你的HTTP请求报文分割成报文段,有意见没?开玩笑,谁跟你商量,已经到我手里了,该怎么处理还问你的意见;
然后就三次握手将每个报文可靠的传给对方,在经过第三层网络层时候,IP协议工作:搜索对对方的地址,一边中转一边传啊传,经过了好多路由啊,哎妈呀,累死我,可算送到了;
请求处理完了也是以TCP/IP通信协议向用户回传:
TCP协议工作:从对方那里拿到的报文段进行重组,HTTP协议工作:对web服务器请求内容的处理,啊,原来是想要这台计算机上的/xss/资源啊!
URI和URL:
URL很熟悉了,就是我们进行浏览器访问时候输入的网址。那URI是什么呢?Uniform Resource Identifier 统一资源标识符
其实就是:某个协议方案(http,ftp,mailto, talnet, file等)表示的资源的定位标识符。
URI用字符串标识某一互联网资源,而URL表示资源的地点,可见URL是URI的子集。
URI格式有:绝对URI,绝对URL,相对URL。基本上客户端和服务端都会以RFC为标准来实现HTTP协议。
关键字:【HTTP协议】【TCP/IP协议】【IP协议】【TCP协议】【DNS域名解析】【TCP三次握手】【URI】【URL】
欲知天下事,须读古今书。【完】