一、客户与服务器
客户(client)和服务器(server)是指通信过程中所涉及的两个应用进程。核心思想是客户端是服务请求方,服务器是服务响应方。
HTTP协议规定,请求是从客户端发出,最后服务器响应请求并返回。
例如,当你在维基百科阅读文章时,你的浏览器就被当做一个客户端。同时,组成维基百科的电脑、数据库和应用程序就被当做服务器。
二、代理服务器
代理服务器(proxy server)是一种网络实体,它又称为万维网高速缓存(web cache)。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。代理服务器可在客户端或服务器工作,也可在中间系统上工作。
最常见代理服务器是校园代理服务器。例如,在世界杯期间,校园里50%的浏览器请求观看某场比赛,代理服务器只需要向源服务器请求一次,然后将报文数据缓存在自己的磁盘中,最后响应给所有的客户端即可。这样大大节省了网络资源,减少了服务器的承载。
三、超文本传送协议HTTP
超文本传送协议HTTP定义了浏览器(web客户端)怎样向web服务器请求web文档,以及web服务器怎样把web文档传送给web浏览器。它是万维网上能够可靠地交换文件(包括本文、声音、图像等各种多媒体文件)的重要基础。1997年1月公布的HTTP/1.1是目前主流的HTTP协议版本。
HTTP/1.1协议是无状态的(stateless),即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。这是因为服务器并不记得曾经服务过这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。但是,随着web的不断发展,HTTP无状态的特性导致了很多棘手问题的产生。比如,我们在访问淘宝的过程中,当我们从一个商品页面切换到另外一个商品页面时,我们仍然希望浏览器保持登录状态。为此,HTTP/1.1协议中引入了cookies技术来管理状态。
HTTP/1.1协议是持久连接的(HTTP Persistent Connection或HTTP keep-alive)。所谓持久连接就是web服务器在发送响应后仍然在一段时间内保持这条连接,使同一客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。持久连接的好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使HTTP请求和响应能够更早地结束,这样web页面的显示速度也就相应的提高了。
HTTP协议的持久连接使请求以流水(with pipeling)的方式发送成为可能。流水方式的特点是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。因此,使用流水线的方式使TCP连接中的空闲时间减少,提高了下载文档效率。
转载请注明原文地址: https://ju.6miu.com/read-1298307.html