发布网友 发布时间:2022-03-27 04:10
共2个回答
热心网友 时间:2022-03-27 05:39
超文件传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议。 超文件传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 目前的应用主要除了HTML网页外还被用来传输超文本数据 例如:图片、音频文件(MP3等)、视频文件(rm、avi等)、压缩包(zip、rar等)……基本上只要是文件数据均可以利用HTTP进行传输。 Web的应用层协议HTTP是Web的核心。HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP定义这些消息的结构以及客户和服务器如何交换这些消息。在详细解释HTTP之前,我们先来回顾一些web中的术语。 Web页面(web page,也称为文档)由多个对象构成。对象(object)仅仅是可由单个URL寻址的文件,例如HTML文件、JPG图像、GIF图像、JAVA小应用程序、语音片段等。大多数Web页面由单个基本HIML文件和若干个所引用的对象构成。例如,如果一个Web页面包含HTML文本和5个JPEG图像,那么它由6个对象构成,即基本H1ML文件加5个图像。基本HTML文件使用相应的URL来引用本页面的其他对象。每个URL由存放该对象的服务器主机名和该对象的路径名两部分构成。例如,在如下的URL中: www.shenmeshi.cn/skin/new/logo.gif www.shenmeshi.cn 是一个路径名。浏览器是web的用户代理,它显示所请求的Web页面,并提供大量的导航与配置特性。Web浏览器还实现HTTP的客户端,因此在web上下文中,我们会从进程意义上互换使用“浏览器”和“客户”两词。流行的Web浏览器有Netscape Communicator,firefox和微软的IE等。Web服务器存放可由URL寻址的Web对象。web服务器还实现HTTP的服务器端。流行的Web服务器有Apache、微软的IIS以及Netscape Enterprise Server。Netcraft提供了web服务器的概要剖析[Netcrft 2000]。 HTTP定义Web客户(即浏览器)如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户。下图展示了这种请求—响应行为。当用户请求一个Web页面(譬如说点击某个超链接)时,浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器。服务器收到请求后,以运送含有这些对象HTTP响应消息作为响应。到1997年底,基本上所有的浏览器和Web服务器软件都实现了在RFC 1945中定义的HTTP/1.0版本。1998年初,一些Web服务器软件和浏览器软件开始实现在RFC 2616中定义的HTTP/1.1版本。H1TP/1.1与HTTP/1.0后向兼容;运行1.1版本的web服务器可以与运行1.0版本的浏览器“对话”,运行1.1版本的浏览器也可以与运行1.0版本的Web服务器“对话”。 HTTP/1.0和HTTP/1.1都把TCP作为底层的传输协议。HTTP客户首先发起建立与服务器TCP连接。一旦建立连接,浏览器进程和服务器进程就可以通过各自的套接字来访问TCP。如前所述,客户端套接字是客户进程和TCP连接之间的“门”,服务器端套接字是服务器进程和同一TCP连接之间的“门”。客户往自己的套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息。类似地,服务器从自己的套接字接收HTTP请求消息,也往自己的套接字发送HTTP响应消息。客户或服务器一旦把某个消息送入各自的套接字,这个消息就完全落入TCP的控制之中。TCP给HTTP提供一个可靠的数据传输服务;这意味着由客户发出的每个HTTP请求消息最终将无损地到达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达客户。我们可从中看到分层网络体系结构的一个明显优势——HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。这些是TCP和协议栈中更低协议层的任务。 TCP还使用一个拥塞控制机制。该机制迫使每个新的TCP连接一开始以相对缓慢的速率传输数据,然而只要网络不拥塞,每个连接可以迅速上升到相对较高的速率。这个慢速传输的初始阶段称为缓启动(slow start)。 需要注意的是,在向客户发送所请求文件的同时,服务器并没有存储关于该客户的任何状态信息。即便某个客户在几秒钟内再次请求同一个对象,服务器也不会响应说:自己刚刚给它发送了这个对象。相反,服务器重新发送这个对象,因为它已经彻底忘记早先做过什么。既然HTTP服务器不维护客户的状态信息,我们于是说HTTP是一个无状态的协议(stateless protocol)。
热心网友 时间:2022-03-27 06:57
SOCKS5介绍 如果您的机器具有一个合法的 Internet IP 地址, 或者您利用自己机器 上的调制解调器拨号上网, 可以自由和 Internet 上任何主机沟通, 那么您 通常不必关心 SOCKS5 协议。 SOCKS5 协议对于处在内部网络中的机器, 需要透过网络中某些可以联通 外部Internet 的机器访问外部时,有用。 SOCKS5 是一个代理协议,它在使用 TCP/IP协议通讯的前端机器和服务器 机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet 网中的服务器,或者使通讯更加安全。 SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了 一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯, 前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务 器将请求转发给真正的服务器。SOCKS5服务器在将通讯请求发送给真正服务器 的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务 器的响应后,也原样转发给前端。 因此,SOCKS5 协议是一种代理协议,对于各种基于 TCP/IP的应用层协议 都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但 是它能够忠实地转发通讯包,完成协议本来要完成的功能。 与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软 件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程序的修改和转 换。和HTTP代理协议不同,SOCKS5实际上是一个传输层的代理协议。 我们可以想象,如果每个具体的应用层协议都要设计对应的代理协议表达 办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因 此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局 面。 不过,并不是凡是使用基于TCP/IP协议的应用协议的软件,都可以无条件 地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能 利用SOCKS5代理服务器。 一个支持SOCKS5协议的前端,通常具有两种运行状态: 1)直接通讯状态,不使用SOCKS5接口。这时的通讯是针对最终服务器进行 的。 2)SOCKS5 状态。 使用 SOCKS5 接口将本来要发送给最终服务器的请求发 送给SOCKS5 服务器。在前端和 SOCKS5 服务器进行初始化会话的时候,前端 告诉了 SOCKS5 服务器关于最终服务器的 IP 地址和端口信息,所以 SOCKS5 服务器能够忠实按照前端的要求启动和最终服务器的通讯过程。