www和http有什么区别?
分析:
HTTP协议的核心
众所周知,Inter的基础协议是TCP/IP协议。目前广泛使用的FTP和Archie Gopher都是基于TCP/IP协议的应用层协议,不同的协议对应不同的应用。& ltBR & gtWWW服务器使用的主要协议是HTTP协议,即hyper-style传输协议。因为HTTP协议支持的服务不仅限于WWW,还包括其他服务,HTTP协议允许用户在一个统一的接口下访问不同协议的不同服务,如FTP、Archie、SMTP、NNTP等。此外,HTTP协议还可以用于名称服务器和分布式对象管理。
2.1HTTP协议简介
HTTP是一种面向对象的协议,属于应用层,由于其简单快捷的方式,适用于分布式超媒体信息系统。是1990提出来的。经过几年的使用和发展,不断完善和拓展。目前WWW使用的是HTTP/1.0的第六版,HTTP/1.1的标准化正在进行中,并提出了HTTP-NG(下一代HTTP)的建议。
HTTP协议的主要特征可以总结如下:
1.支持客户端/服务器模式。
2.简单快捷:当客户向服务器请求服务时,只需要传输请求方法和路径。常用的请求方法有GET、HEAD和POST。每种方法都指定了客户端和服务器之间的联系类型是不同的。
由于HTTP协议的简单性,HTTP服务器的程序规模小,所以通信速度很快。
3.灵活性:HTTP允许传输任何类型的数据对象。被传输的类型由内容类型来标记。
4.无连接:无连接意味着将每个连接仅限于一个请求。服务器处理完客户的请求并收到客户的回复后,就会断开连接。这样可以节省传输时间。
5.无状态:HTTP协议是无状态的。无状态意味着协议没有用于事务处理的内存。缺少状态意味着如果后续处理需要以前的信息,则必须重新传输它,这可能导致每个连接传输的数据量增加。另一方面,当服务器不需要以前的信息时,它的响应更快。
2.2 http协议的几个重要概念
1.连接:传输层的实际循环,它建立在两个通信应用程序之间。
2.消息):HTTP HTTP通信的基本单位,包括一个结构化的八位字节序列,通过连接传输。
3.请求:从客户端到服务器的请求消息包括应用于资源的方法、资源的标识符和协议的版本号。
4.响应:从服务器返回的消息包括HTTP协议的版本号、请求的状态(如“成功”或“未找到”)和文档的MIME类型。
5.资源:由URI标识的网络数据对象或服务。
6.实体:数据资源或服务资源反射的特殊表示,可以包含在请求或响应消息中。实体包括实体头信息和它自己的内容。
7.客户端:为发送请求而建立连接的应用程序。
8.用户代理:初始化请求客户端。它们是浏览器、编辑器或其他用户工具。
9.服务器:接受连接并向请求返回信息的应用程序。
10.源服务器:可以驻留或创建给定资源的服务器。
11.代理:一种中间程序,可以充当服务器或客户机,为其他客户机建立请求。请求在内部传输,或者通过可能的转换传输到其他服务器。在发送请求信息之前,如果可能的话,代理必须解释并重写请求信息。
代理通常用作通过防火墙到达客户端的网关,也可以用作帮助应用程序来处理用户代理通过协议无法完成的请求。
12.网关:作为其他服务器中介的服务器。与代理不同,网关接受请求,就好像它是所请求资源的源服务器一样;发出请求的客户端不知道它正在与网关打交道。
网关通常用作通过防火墙到达服务器的网关,也可以用作协议转换器来访问存储在非HTTP系统中的资源。
13.隧道:它是一个中间程序,充当两个连接之间的中继。一旦激活,通道就被认为不属于HTTP通信,尽管它可能是由HTTP请求发起的。当中继连接的两端都关闭时,通道消失。当门户必须存在或中介无法解释中继通信时,通常使用通道。
14.缓存:响应信息的本地存储。
2.3 http协议的运行模式
HTTP协议基于请求/响应范式。客户端与服务器建立连接后,以统一资源标识符和协议版本号的形式向服务器发送请求,后面是MIME信息,包括请求修饰符、客户端信息和可能的内容。在接收到请求后,服务器以状态行的形式给出相应的响应信息,包括信息的协议版本号、成功或错误代码,随后是MIME信息,包括服务器信息、实体信息和可能的内容。
许多HTTP通信是由用户代理发起的,并且包括对源服务器上的资源的请求。在最简单的情况下,可以通过用户代理(UA)和源服务器(O)之间的单独连接来完成(见图2-1)。
图2-1
当请求/响应链中出现一个或多个中介时,情况会变得更加复杂。有三种中介:代理、网关和隧道。代理根据URI的绝对格式接受请求,重写全部或部分消息,并通过URI的标识将格式化的请求发送给服务器。网关是一个接收代理,它充当一些其他服务器的上层,如果需要,可以将请求转换为下层服务器协议。信道充当不改变消息的两个连接之间的中继点。当通信需要通过中间媒介(如防火墙等)时,通常使用通道。)或当中介无法识别消息内容时。图2-2
上面的图2-2显示了在用户代理(UA)和源服务器(O)之间有三个中介(A、B和C)。通过整个链的请求或响应消息必须通过四个连接段。这种差异很重要,因为一些HTTP通信选择可能应用于最近的连接、没有信道的邻居、链的末端或链上的所有连接。虽然图2-2是线性的,但是每个参与者都可能参与多个并发的通信。例如,B可以不通过A从许多客户端接收请求,和/或不通过C向A发送请求,同时它也可以处理A的请求。
非活动通道的任何聚合都可以启用内部高速缓存来处理请求。缓存的作用是缩短请求/响应链,前提是链中的一个参与者对该请求有缓存的响应。下图说明了结果链,假设对于未被UA或A缓存的请求,B具有从O到C的先前响应的缓存副本..
图2-3
在互联网上,HTTP通信通常通过TCP/IP连接进行。默认端口是TCP 80,但也可以使用其他端口。但是,这并不意味着HTTP协议只能在感兴趣的其他协议或其他网络上完成。HTTP仅表示可靠的传输。
上面简单介绍了HTTP协议的宏运行方式,下面介绍HTTP协议的内部运行流程。
首先,简要介绍了基于HTTP协议的客户机/服务器模式的信息交换过程。如图2-4所示,分为建立连接、发送请求信息、发送响应信息、关闭连接四个过程。
图2-4
在WWW中,“客户端”和“服务器”是相对的概念,只存在于特定的连接期间,即一个连接中的客户端可能充当另一个连接中的服务器。当WWW服务器运行时,它一直监听TCP80端口(WWW的默认端口),等待连接出现。
接下来,讨论了HTTP协议下客户机/服务器模式下信息交换的实现。1.通过申请套接字来建立连接。客户端打开一个套接字并将其绑定到一个端口。如果成功,就相当于创建了一个虚拟文件。稍后,您可以在虚拟文件上写入数据,并通过网络发送出去。
发送请求
打开连接后,客户端将请求消息发送到服务器的停止端口,以完成请求操作。
HTTP/1.0请求消息的格式为:
请求消息=请求行(一般信息|请求题头|实体题头)CRLF[实体内容]
请求行=方法请求URLHTTP版本号CRLF
Method =GET|HEAD|POST|扩展方法
UR L=协议名+主机名+目录和文件名。
请求行中的方法描述了应该在指定资源中执行的操作。常用的方法有GET、HEAD和POST。不同的请求对象得到不同的结果,对应关系如下:
对象获取的结果
文件的内容
程序的执行结果。
数据库查询查询结果
head——要求服务器找到对象的元信息,而不是对象本身。
post数据从客户机传输到服务器,当服务器和CGI需要进一步处理时,使用POST方法。POST主要用于将HTML文本形式的表单内容发送给CGI程序进行处理。
请求的一个例子是:
获取neorking.zju.edu/zju/index HTTP/1.0
头信息也叫元信息,即信息的信息,可以用来实现条件请求或回复。
request header——告诉服务器如何解释这个请求,主要包括用户可接受的数据类型、压缩方式和语言等。
实体头-实体信息类型、长度、压缩方式、最后修改时间、数据有效期等。
实体——请求或响应对象本身。
发送回复
服务器在处理完客户端的请求后向客户端发送响应消息。
HTTP/1.0的响应消息格式如下:
响应消息=状态行(一般消息标题|响应标题|实体标题)CRLF〔实体内容〕
状态行=HTTP版本号状态代码。
状态代码指示响应类型。
1××保留
2×××表示请求已成功接收。
3×××为了完成请求,客户需要进一步细化请求。
4×××客户错误
5×××服务器错误
响应头中的信息包括:服务程序的名称,通知客户所请求的URL需要认证,以及何时可以使用所请求的资源。
关闭连接
客户端和服务器都可以通过关闭套接字来结束TCP/IP会话。