万维网www简介

万维网WWW(world wide web)并非某种特殊的计算机网络,而是一个大规模、联机式的信息储藏所,英文简称web。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取信息。万维网中每个站点都存放了许多文档,供互联网上的主机查阅。
万维网是一个分布式的超媒体系统,它是超文本系统的扩充。所谓超文本是指包含指向其他文档的链接的文本(一个超文本能由多个信息源链接成),超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息(图片、声音、动画、视频等)。
万维网以C/S方式工作,其中万维网文档所驻留的主机运行服务器程序。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在客户程序窗口上显示出来(即常说的页面)。下图是分布式的万维网
在这里插入图片描述
从上所述,万维网还需要处理以下问题。怎样标志分布在整个互联网上的万维网文档?用什么样的协议来实现万维网的各种链接?万维网上的文档怎么样在主机窗口上都能显示出来?怎么样使用户能够很方便地找到所需的信息?
万维网使用统一资源定位符URL(uniform resource locator)来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符。URL实际上就是互联网上的资源的地址,格式为 < 协议 > : // < 主机 >: < 端口 >/< 路径 > 。这样就能给一个文件在整个互联网上定位。
在万维网上传送超文本使用HTTP协议,HTTP协议定义了客户怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP协议使用传输层中的TCP协议来传输信息,并且使用了系统端口号80。万维网上的服务器进程不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览器某个页面的请求,服务器接着就返回所请求的页面作为响应。通信结束后释放TCP连接。交互都由一个ASCII码串构成的请求和一个类似的通用互联网扩充(MIME)组成。
HTTP协议本身是无连接的,即双方在交换HTTP报文之前不需要先建立HTTP连接;HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的资源时,服务器的响应和第一次访问是完全相同的,服务器并不记得曾经访问过的这个客户(节省资源,使服务器更好地支持大量并发的HTTP请求)。
HTTP/1.1协议中使用了持续连接,所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这样减少了像HTTP/1.0中每次请求一个文档都需要2倍的RTT开销。同样HTTP/1.1 支持流水线和非流水线方式,非流水线方式是在客户接收到前一个响应后才能发送下一个请求,浪费服务器资源。流水线则是客户可以一直向服务器发送请求报文,不必等到接收到响应,这样交互的时间只花费一个RTT时间。下图为流水线方式:
在这里插入图片描述
然而在现实中往往会采取代理服务器来缓解通信的压力,代理服务器其实就是万维网高速缓存,代理服务器把最近的一些请求和响应暂存在本地磁盘中,当新请求到达时,若代理服务器上有存放相同的请求,就立刻返回赞存响应,要是没有的话,代理服务器才向服务器发送请求,响应到达后把它暂存在代理服务器上。
在这里插入图片描述
HTTP的报文结构。
在这里插入图片描述
HTTP有两类报文:请求报文和响应报文。由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码。报文分为三个部分:开始行,用于区分是请求报文还是响应报文,在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。在开始行的三个字段之间都以空格分隔开,行尾是回车和换行首部行,用来说明一些信息,每一个首部行中都有首部字段名和它的值,每行结束都需要回车换行。;实体主体,交互内容。
开始行中请求行中的方法有如下:
在这里插入图片描述
而在状态行中的状态码用于说明响应报文的状态,由三位数字构成,分为5大类:

  • 1xx表示通知消息,如请求收到了或正在进行处理。
  • 2xx表示成功,如接受或知道了
  • 3xx表示重定向,如要完成请求还必须采取进一步的行为
  • 4xxx表示客户的差错,如请求中有错误的语法或不能完成
  • 5xx表示服务器的差错,如服务器失效无法完成请求
    之前说了HTTP协议是无状态的,即不记录客户的信息,同一个客户访问多次都是一样处理。但是在实际工作中,一些万维网站点却常常希望能够识别用户,如网上购物;还有某些万维网站点也可能想限制某些用户的访问。HTTP中可以使用cookie来实现,cookie可以跟踪用户。cookie的工作流程如下:用户浏览某个使用cookie的网站时,该网站的服务器就为用户产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接收在响应报文中添加一个叫set-cookie的首部行。用户收到响应后,浏览器便会记录cookie文件(服务器主机名以及响应中的识别码),后面用户继续浏览这个网站时,每个HTTP请求报文都会添加上响应的cookie,并放到请求报文的cookie首部行中。
    万维网中使用超文本标记语言HTML来解决页面制作的标准化问题,HTML就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。这里就不深究了,要是感兴趣可以自己查阅相关的资料,W3C上面有关于页面很详细的介绍。
发布了35 篇原创文章 · 获赞 1 · 访问量 1870

猜你喜欢

转载自blog.csdn.net/lzj_linux188/article/details/104973390
今日推荐