程序员人生 网站导航

细说HTTP笔记1:HTTP的出道故事

栏目:php教程时间:2015-01-29 08:18:27

1、出道前的那段时期

1989年,那个时候,我们普通人还没怎样接触过电脑,还不能淘宝(由于那会马云还在杭州教书。。),也不能QQ聊天(马化腾98年才创建腾讯),遇到问题了也不可以百度(李彦宏还在北京大学读书)。那会,互联网属于很少的1部份人。

 

199011月,世界上第1台Web服务器Web阅读器诞生在CERN(欧洲核子研究组织。。额这个名称确切比较难理解。。核子%>_<%)手上。但是,那会上网也不是通过HTTP的。但是那1年开始,HTTP家族诞生在这个世界上,开始努力,发誓要占据全部世界的网络。

 

2HTTP家族

1990年这个时候,HTTP的哥哥HTTP0.9出道,但是没能红起来,并没有被作为标准投入使用。

 

直到19965月,HTTP1.0)正式出道,并且1炮而红,至今还被广泛使用当中。

 

19971月公布的HTTP1.1),由于继承了HTTP绝大部份优点,修补了其中不足而成为目前主流的HTTP协议版本。由于没有太大的问题,所以它的版本多年来几近没有更新。

 

但是目前HTTP妈妈还是怀孕了,HTTP 2.0正在怀胎10月(制定中)。

 

3、必备的网络基础TCP/IP

 

要理解HTTP通讯,乃至是网络。所必须知道的1点基础就是TCP/IP

 

3.0 IP地址

 

     就犹如每一个人都有1个唯一无2的身份证1样,接入互联网的计算机都有1个唯1标示自己的东东,这就是IP地址,InternetProtocol Address 符合网络协议的地址。

 

IP地址目前分为两种 IPV4 IPV6

IPV4 InternetProtocol Version4 互联网协议的第4版本,采取32位2进制来表示1个地址。由于232次方是4294967296,最多可以表示42亿台计算机,但是,地球人口已超过60亿。因此,42亿是行将不够用的,所以出现了IPV6。为何不是IPV5呢,由于IPV5已用于1个网络流的测试协议了,所以就轮到了IPV6 IPV616个字节,长度多达128位。

 

3.1 协议

所谓协议就是规矩、规则。无规矩不成方圆。你和我通过1台计算机进行聊天,我们的计算机软件得先商量好由哪1方发起通讯,使用哪一种语言(不能你说日语我说国语吧),怎样结束通讯等等。这些都得事前制定好,成为文档,然后我们就依照文档来。

 

这类规则文档,我们就叫协议。

 

3.2 TCP/IP协议族

你可以想象,现在我们通过网络可以做甚么事情?仅仅是用阅读器上网么?不是的。我们可以通过QQ、旺旺聊天,可以通过飞鸽传书在同1个局域网内传文件,我们输入1个网址域名而不是IP地址就能够访问到那个网页了。

 

而这些事情,都是用不同的协议的。所以网络协议有很多很多。举例以下图:

 

 

这些跟互联网相干的协议集合,总该有个名字,因而他们就被先人命名为 TCP/IP协议族

为何是TCP/IP协议族,而不是 其他名字协议族,TCP/IP,前者TCP指的是TCP协议,后者IP指的是IP协议,之所以用他们命名,我认为是当时 TCP IP协议出现较早,当时的IT工程师用他们两个实现了网络通讯,长此以往,即便后来出现了与TCP并列在网络层的UDP协议,还有其他协议也好,人们已习惯了TCP/IP的称呼,干脆就把TCP/IP统称为所有网络协议的总称好了。

 

3.3 TCP/IP 分层

有人可能会想,哎那末麻烦做甚么,干吗不把所有协议都统1起来,整合成1个协议呢?

 

试想一想,如果真的整合成只有1个协议,这个协议好强大, 可以完成很多事情,但是,当我某个地方不太公道需要修改的时候,那末这个协议其他部份也得随着改动了。牵1发而动全身!!

很麻烦。

 

所以,我们这么细分,是由于真的需要分层。

当我们把网络通讯之间的工作细分为1层层的时候,你会发现,即便我要修改,我只需要修改1层就行了,只要层与层之间的接口方法不变。那末其他层协议是不受影响的。现在我们所需要做的工作就是把层分好,并且把各层之间的接口部份计划好。

 

分层的好处―― 设计变得相对简单,协议相互之间的牵连少了,开发更自由。

 

层名

作用

罗列协议

利用层

决定了向用户提供利用服务时通讯的活动

FTP,DNS,HTTP

传输层

上层是利用层,顾名思义,用来传输两台计算机之间的数据

TCP,UDP

网络层

从1台计算机到另外一台计算机,传输线路可能有很多种,网络层就是用来选路的。

IP

链路层

以上层都不触及到硬件,硬件部份交由链路层来处理。包括计算机操作系统和硬件的驱动,网卡,光纤,和网线等等。

 

 

 

 

4、甚么是HTTP ?

HTTP 网络上进行通讯时所使用的协议方案。可以用于很多利用上面,但是最著名和最广泛地应当是用在 web阅读器 Web服务器之间的双工通讯。

 

以上解释还是比较专业的,下面依照我的理解来讲下:

 

现在,小白想把1个包裹寄给小敏,怎样办呢?嗯,小白会先打电话让EMS的人来取件,写好要发给谁谁,并且要求有签收短信,然后EMD快递员取完后经过打包包装好,开始上路运输,途中经过很多省市,层层邮局或中转站,最后终究到达小敏家门口,然后敲门,确认是小敏,签收,然后快递公司EMS就会给小白发1条回复短信:您的快件已被小敏签收。

 

一样的,在计算机的世界中,两台计算机要交换东西,也要经历类似的进程。有两个概念要明白下。我们普通用户的电脑,可以称作“客户端”,1些公司的特殊电脑(比1般电脑昂贵,性能好很多)称作“服务器”。服务器好比小敏,我们的电脑(客户端)好比小白。现在我们要上网,访问某个网页。如“http://tech.uc.cn/index.jsp,操作上我们只需要把这个网址往阅读器上1输入就能够了。实际上,客户真个阅读器进程会先把访问报文包装成1个要求,然后通过1个套接字接口(Socket)传输到硬件网络(如网线,光纤电缆),然后到达服务器的套接字接口(好比小敏家的门口),然后服务器的进程就会收到该要求,进行处理,把处理结果一样的原路返回到客户端,我们的电脑上。因而,我们此时此刻就看到访问的网页被加载成功,所加载的网页内容就是服务器所返回的东西。

 

说了这么多,其实就是两台机子之间通过网络传递信息嘛,哪有HTTP身影?

是的,且听我娓娓道来。

这传递信息的进程很简单,但是如何构造这些报文呢?这报文的各个字段表示甚么意思呢?如果服务器出故障了,应当给客户端返回甚么信息好?等等很多细节问题都得逐一想清楚。发个快递都必须经历1定的顺序章程,如必须写地址,贵重物品要不要保价等等。

 

嗯,我们逐步明白,国有国法家有家规,网络通讯必须有个协议来规定好这些通讯的细节,这就是利用层协议。利用层协议它会规定好:

  • 交换传输的报文的格式,如要求报文和响应报文;
  • 各种报文的语法格式,如各个字段表示啥意思;
  • 进程什么时候、如何发送或响应报文;

 

嗯,主角粉墨登场啦O(_)O~。其中利用最为广泛的就是HTTP协议(利用层协议包括HTTP,但是还有其他协议,如FTP,SMTP。)

 

HTTP协议标准是公布于世界的,只要客户端阅读器程序符合HTTP,它就可以访问所有符合HTTP协议的服务器

 

1句话概括HTTP它定义了两台计算机程序网络通讯的进程,1个客户端程序和1个服务器程序,分别运行在不同的计算机上,通过交换HTTP报文进行会话。

 

5HTTP的合伙兄弟

 

通过第3点的TCP/IP基础,你可能已知道了,网络通讯这件大事,单靠HTTP1个人是干不成的。明代朱元璋起义时好歹都请来刘伯温当军师呢,还少不了其他1帮如常遇春等兄弟帮他打天下呢。

 

要完成网络通讯,必备TCP/IP4层协议不可。HTTP只不过是利用层的而已,还差3个下面层的兄弟呢。因而乎,他找来了几个兄弟帮他忙。下面逐1介绍。

 

5.1 IP地址最好的代言人 ―― DNS 协议

      当你公司推出新产品,如果找个明星拍广告,1定会让你的产品深入人心。比如提起霸王洗发水,我就想起了――“哦,成龙那个百年润发”。这里,你想一想,为何你输入1个网址就能够访问到1个网站呢?要知道,之前说过,每台计算机只有1个IP地址作为它在互联网中的标识名字。如http://121.14.161.102:80 ,你输入这个网址跟输入 http://www.uc.cn/  是1样结果的,都是UC的官网,那末哪一个好记1些呢?毫无疑问,后者。谁愿意去记住4个数字啊!

 

更好的比喻就是,我的名字是林小明,身份证是12345678900xxxx..,那末你愿意记住我的身份证号码还是记住我的名字呢?都是代表着我。

 

当客户端想要访问1个Web服务器时,需要知道服务器的域名。域名就是服务器的地址。为了让大家更容易记住服务器的地址,人们想出了1个系统用来转换域名与IP地址之间的转换。

 

这样,人们就只需要记住网站名字就能够了。DNSDomain Name System 域名系统的简称。

 

5.2  名儿最猛的兄弟――IP协议

 

首先说清楚的是,IP地址是IP地址,是由4个数字和3个点组成,是1台计算机接入互联网时的地址,当你的电脑没联网时,它是没有IP地址的。

 

IP协议是1种协议,Internet Protocol ,网际协议,只不过用 Internet 来命名而已。你可能觉得这协议也太猛了吧,竟然用Internet 这词,岂不是全部Internet都必须用它咯。

 

噢,还别说,它敢这么取名就是由于几近所有使用网络的系统都必须用到它,IP协议!!

 

TCP/IP协议族里后者的IP就是指 IP协议。以他的名字构成总称的1半,它真的很重要!

 

IP协议的作用就是把来自网络的数据包传递给对方(固然,中间需要经过链路层,他们需要帮忙)。

 

 

5.3 最可靠的兄弟 ――TCP协议

 

在传输层,由于数据可能比较大, 因此必须分割成1个个小的数据包进行管理,这个管理服务,这就是字节流服务。

 

TCP协议就是1种提供可靠字节流服务的协议,注意1点。可靠!!

TCP这个兄弟很靠谱,对HTTP兄弟拜托下来的东东他每次都会拍胸口保证,“放心东西我1定帮你送到!”

然后,他真的会通过各种手段,如过失控制、堵塞管理等手段想法想法来让数据安全抵达目的地。

 

 

 

 

 

 

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐