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所发生的事件:
HTTP使用TCP而不是UDP的原因:打开一个网页必须必须传送很多数据,而TCP协议提供了传输控制,可以按顺序阻止数据,并且期间可以对错序数据进行纠正。
HTTP的URL格式为:HTTP://<IP地址>:[端口号]/[路径][?<查询信息>]。客户机信息以请求头发送给服务器,请求头包括HTTP方法和头字段。
2.2 HTTP请求方法
方法 | 用途 |
GET | 请求读取URL表示的信息 |
HEAD | 请求读取URL表示的信息的首部 |
POST | 把消息加载到指定网页上 |
PUT | 指明URL创建或修改资源 |
DELETE | 删除URL所指定的资源 |
OPTION | 请求一些参数信息 |
TRACE | 进行环回测试 |
CONNECT | 用于代理服务器 |
2.3 HTTP请求头字段
头字段 | 描述 |
DATE | 请求发送的日期和时间 |
PARGMA | 用于向服务器传输与事先实现无关的信息。这个字段还用于告诉代理服务器,要从实际服务器而不是从高速缓存取资源 |
FORWARDED | 用于追踪极机器之间,而不是客户机和服务器的消息。这个字段可以用来追踪在代理服务器之间的传递路由。 |
MESSAGE_ID | 用于唯一地表示消息 |
ACCEPT | 通知服务器客户所能接收的数据类型和大小 |
AOTHORIZATION | 向服务器提供旁路安全保护和加密机制,若服务器不需要这个字段,则可以不提供 |
FROM | 当客户应用程序希望服务器提供有关其电子邮件地址时使用 |
IF-MODEFIED-SINCE | 用于提供条件GET。如果所请求的文档自从所指定的日期以来没有发生变化,则服务器应不发送该对象。如果所发送的日期格式不合法,或晚于服务器的日期,服务器会忽略该字段。 |
BEFERRER | 向服务器进行资源请求的对象 |
MIME-VERSION | 用于处理不同类型文件的MIME协议版本号 |
USER-AGENT | 有关发出请求的客户的信息 |
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。