网络应用层协议WWW与HTTP详解

2023年 7月 30日 86.3k 0

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所发生的事件:

图片[1]-网络应用层协议-WWW与HTTP详解-不念博客http工作过程

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

HTTP的URL格式为:HTTP://:[端口号]/[路径][?]。客户机信息以请求头发送给服务器,请求头包括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应答消息

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

报文第一行是状态行,格式为:。

状态码是个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。

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论