1、WWW

        万维网(World Wide Web,WWW)是一个规模巨大、可以互联的资料空间,该资料空间的资源依靠URL进行定位,通过HTTP协议传送给使用者,又由HTML进行文档的展现。由此可知,WWW的核心由三个主要标准构成:URL、HTTP、HTML。

        (1)URL

        统一资源标识符(Uniform Resource Locator,URL)是一个全世界通用的、复杂给万维网上资源定位的系统。URL的核心由三个主要标准构成:<协议>://<主机>:<端口>/<路径>。

  • <协议>:表示使用什么协议来获取文档,之后的“://”不能省略。常用协议有HTTP、HTTPS、FTP。
  • <主机>:表示资源主机的域名。
  • <端口>:表示主机服务端口,有时可以省略。
  • <路径>:表示最终资源在主机中的具体位置,有时可以省略。

        (2)HTTP

        超文本传送协议(HyperText Transport Protocol,HTTP)负责规定浏览器和服务器怎样进行互相交流。

        (3)HTML

        超文本标记语言(HyperText Markup Language,HTML)是用于描述网页文档的一种标记语言。

        WWW采用C/S的工作方式,工作流程为:

        (1)用户使用浏览器或其他程序建立客户机与服务器的连接,并发送浏览请求;

        (2)WEB服务器接收请求后返回信息到客户机;

        (3)通信完成后关闭连接。

2、HTTP

        HTTP协议使用TCP的80号端口提供服务,是一个属于应用层的面向对象的协议。用于从WWW服务器传输超文本到本地浏览器,保证正确快速的传输超文本文档。

2.1 HTTP工作过程

        下图给出客户端单击http://www.itct.com.cn/net/index.html所发生的事件:

[网络工程师]-应用层协议-WWW与HTTP-LMLPHP

        HTTP使用TCP而不是UDP的原因:打开一个网页必须必须传送很多数据,而TCP协议提供了传输控制,可以按顺序阻止数据,并且期间可以对错序数据进行纠正。

        HTTP的URL格式为:HTTP://<IP地址>:[端口号]/[路径][?<查询信息>]。客户机信息以请求头发送给服务器,请求头包括HTTP方法和头字段。

2.2 HTTP请求方法

2.3 HTTP请求头字段

2.4 HTTP应答消息

        服务器的应答消息包括头字段形式和实体信息。

        报文第一行是状态行,格式为:<HTTP版本号><状态代码><解释短语>。

        状态码是个3位数字码,分为4类:

  • 以2开头,表示请求被成功处理;
  • 以3开头,表示请求被重定向;
  • 以4开头,表示客户的请求有错;
  • 以5开头,表示服务器不能满足请求。

        解释短息是对状态码的解释。

        报文最后是实体信息,即客户请求得到的HTTP服务器上的资源内容。

2.5 HTTP1.1

        HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。这样会导致客户端、服务器的建立和关闭比较费时,严重影响性能。

        为了克服上述缺陷,HTTP1.1支持持久连接,即一个TCP连接上可以传送多个HTTP请求和响应,减少建立和关闭连接的消耗和延迟。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器必须按照接收到客户端请求的先后顺序一次回传响应结果,以保证客户端能够区分出,每次请求的响应内容,这样也减少了整个下载过程所需的时间。

        HTTP1.1还通过增加更多的请求头和响应头来改进和扩充功能:

        1)同一IP地址和端口号配置多个虚拟web站点。HTTP1.1新增加Host请求头字段后,web浏览器可以使用主机头名来明确表示要访问服务器上的哪个web站点,这样可以在一台web服务器上用同一IP地址、端口号、不同的主机名来创建多个虚拟web站点;

        2)实现持续连接。Connection请求头的值为Keepalive时,客户端通知服务器返回本次请求结果后保持连接;Connection的值为Close时,客户端通知服务器返回本次请求结果后关闭连接。

2.6 HTTP2.0

        HTTP2.0兼容HTTP1.X,同时大大提升了web性能,进一步减少了网络延迟。

        HTTP2.0采用了新的二进制格式,解决了多路复用(即连接共享)问题,可对Header进行压缩,使用较为安全的HPACK压缩算法,重置连接表现更好,有一定的流量控制功能,使用更安全的SSL。

11-29 13:40