Wb开发基础-Http1.0协议-客户端与服务器端的交互

    Web开发的学习已经有一段时间了,但是对于Web开发来讲,最基础的来讲还要属Http协议,因为它是Web浏览器和服务器之间进行一问一答交互过程必须遵守的规则。

    当然,基本步骤大家都了解,不过我还是做了个小总结。“注”的部分可能是你还不了解的。

1,Http1.0协议下的客户机服务器信息交换过程,包含4个步骤:

(1),客户机向Web服务器发出建立连接的信息

(2),当连接建立以后,客户机再发出请求信息Web服务器;

(3)Web服务器接收到客户机的请求后,进行处理,再将结果返回给客户机;

(4),最后,服务器断开与客户机的连接

Wb开发基础-Http1.0协议-客户端与服务器端的交互

 

注:

(1)服务器与浏览器的连接过程是短暂的:从浏览器发出请求,到服务器返回结果以后,连接过程结束;

(2)Web服务器与浏览器的连接持续时间,与浏览器窗口打开的时间没有关系,连接过程并不会持续到浏览器程序关闭;

(3)服务器与客户机的每次连接,只处理一个请求和响应,即使是对同一个网站的每一个页面的访问,浏览器与Web服务器都要建立一次单独的连接;

(4)当浏览器获得一个页面访问的后,浏览器就会断开与服务器的连接;而当浏览器要访问服务器上的另一个网页的时候,它有需要重新与服务器建立连接,也就是说:每一次鼠标单击都是一次请求

(5)当浏览器向服务器发出了一个访问请求,Web服务器返回Html文档给浏览器以后,浏览器与服务器就不再有任何关系,即使拔掉网线断开网络,之前返回到浏览器的html文档信息也会正常显示,连接网络,再次在该页面中点击一个超链接,又可以像Web服务器发送新的请求了(这一点,相信大家都很有体会);而Web服务器接收到新的请求时,它根本不知道客户机曾断开过网络——这就说明了:浏览器与服务器之间的每次请求和响应过程都是完全独立的

 

2,在浏览器与服务器之间还可以加入一个或多个中间代理服务器

Wb开发基础-Http1.0协议-客户端与服务器端的交互

 


(1)当代理服务器接收到Web浏览器的访问请求后,如果它的缓存中没有浏览器所请求的资源,这个代理服务器就会向Web服务器请求这个资源,然后返回给浏览器,并且还将资源的内容保存在代理服务器的本地缓存中,以后如果再有浏览器请求已经缓存的资源的时候,代理服务器就直接从缓存中取出保存的内容进行响应,相对浏览器而言,代理服务器就充当了Web服务器的角色,而相对Web服务器而言,这个代理服务器的工作就像普通的浏览器一样,充当了客户机的角色;

(2)在web浏览器和web服务器之间可以使用多个代理服务器,这样可以减少Web服务器的访问数量;但是,在有了代理服务器的情况下,我们也应该充分考虑网页的有效性——也就是说,要把代理服务器中缓存的页面,在Web服务器端来说是最新的和没有发生更改的。

 

当然,http协议也定义了一些与代理服务器有关的内容这里不多做介绍;

 

(3)代理服务器工作流程图:

Wb开发基础-Http1.0协议-客户端与服务器端的交互

 

3,总结

没什么可说的,基础。

当然,Http1.0存在着很多缺陷,比如:

浏览器访问包含有多图片的网页过程需要多次请求和响应,而在http1.0中每次请求和响应都需要建立一个单独的连接,而每次连接都只是传输一个文档或图像,上一次的请求和这一次的请求时完全分离的;这就保持浏览器要获得一个包含有许多图像的网页文件时,需要与Web服务器建立多次连接,即使每个图像的内容都很小,但是客户机与服务器建立和关闭连接的过程也是相对比较费时的,建立一个关闭连接时严重影响客户机和服务器的性能;

 

Http1.1在1.0上有了很大的改进。待续。。。

Wb开发基础-Http1.0协议-客户端与服务器端的交互

上一篇:RESTful架构风格


下一篇:EBS Form开发中实现附件功能(5)