HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成(见图2-1)。
图2-1
当一个或多个中介出现在请求/响应链中时,情况就变得复杂一些。中介由三种:代理(Proxy)、网关(Gateway)和通道(Tunnel)。一个代理根据URI的绝对格式来接受请求,重写全部或部分消息,通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理,作为一些其它服务器的上层,并且如果必须的话,可以把请求翻译给下层的服务器协议。一个通道作为不改变消息的两个连接之间的中继点。当通讯需要通过一个中介(例如:防火墙等)或者是中介不能识别消息的内容时,通道经常被使用。图2-2>
上面的图2-2表明了在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。一个通过整个链的请求或响应消息必须经过四个连接段。这个区别是重要的,因为一些HTTP通讯选择可能应用于最近的连接、没有通道的邻居,应用于链的终点或应用于沿链的所有连接。尽管图2-2是线性的,每个参与者都可能从事多重的、并发的通讯。例如,B可能从许多客户机接收请求而不通过A,并且/或者不通过C把请求送到A,在同时它还可能处理A的请求。
任何针对不作为通道的汇聚可能为处理请求启用一个内部缓存。缓存的效果是请求/响应链被缩短,条件是沿链的参与者之一具有一个缓存的响应作用于那个请求。下图说明结果链,其条件是针对一个未被UA或A加缓存的请求,B有一个经过C来自O的一个前期响应的缓存拷贝。
图2-3
在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。
以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。
首先,简单介绍基于HTTP协议的客户/服务器模式的信息交换过程,如图2-4所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
图2-4
在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。WWW服务器运行时,一直在TCP80端口(WWW的缺省端口)监听,等待连接的出现。
下面,讨论HTTP协议下客户/服务器模式中信息交换的实现。 1.建立连接 连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
2.发送请求
打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
HTTP/1.0 请求消息的格式为:
请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
请求 行=方法 请求URL HTTP版本号 CRLF
方 法=GET|HEAD|POST|扩展方法
U R L=协议名称+宿主名+目录与文件名
请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
对象 GET的结果
文件 文件的内容
程序 该程序的执行结果
数据库查询 查询结果
HEAD——要求服务器查找某对象的元信息,而不是对象本身。
POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
一个请求的例子为:
GEThttp://networking.zju.edu.cn/zju/index.htmHTTP/1.0
头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
实体——请求或应答对象本身。
3.发送响应
服务器在处理完客户的请求之后,要向客户机发送响应消息。
HTTP/1.0的响应消息格式如下:
响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
状态行=HTTP版本号 状态码 原因叙述
状态码表示响应类型
1×× 保留
2×× 表示请求成功地接收
3×× 为完成请求客户需进一步细化请求
4×× 客户错误
5×× 服务器错误
响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。
4.关闭连接
客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话
分享到:
相关推荐
本次实验不仅让参与者熟悉了HTTP协议的具体运作方式,还提高了他们利用专业工具进行网络数据分析的能力。通过实践操作,学生不仅掌握了理论知识,更重要的是学会了如何将这些知识应用于解决实际问题中,这对他们未来...
HTTP 协议的宏观运作方式类似于我们打电话订货的过程。我们可以打电话给商家,告诉他我们需要什么规格的商品,然后商家再告诉我们什么商品有货,什么商品缺货。 三、HTTP 协议的发展 自 WWW 诞生以来,一个...
在文档中会详细地对HTTP协议中的各种术语和概念进行定义和解释,帮助理解协议的具体运作方式。 7. HTTP协议的全面操作: 文档将详细说明HTTP协议的全面操作流程,包括连接管理、资源定位、请求与响应的处理、安全性...
- **基础**:理解HTTP协议的基础概念与运作机制。 - **协议分析的优势**:使用HTTP分析器检测网络攻击,增强网络安全。 - **Content-Length限制漏洞**:可能导致拒绝服务攻击,需合理设置。 - **利用HTTP特性进行...
这个"HTTP协议"压缩包中的HTML文件可能涵盖了这些概念,并通过实例解析、图解等方式深入浅出地解释HTTP协议的运作细节。学习这些内容对于网络开发者、系统管理员和互联网爱好者来说都是非常有价值的,能够帮助他们更...
### HTTP协议详解 #### 引言 ...它设计初衷是为了提供一种简单、快速的分布式超媒体信息传输方式。...接下来的部分将深入探讨HTTP响应、消息报头及其实现案例,帮助读者更全面地掌握HTTP协议的运作机制。
《TCP-IP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议》是一本深入探讨网络通信协议的专业书籍,旨在帮助读者理解并掌握TCP/IP协议栈中关键的事务处理、超文本传输协议(HTTP)、新闻网络传输协议(NNTP)以及UNIX...
HTTP协议作为互联网通信的重要组成部分,其运作离不开OSI(开放系统互连)参考模型和TCP/IP模型的理解。 **OSI参考模型**,由国际标准化组织(ISO)提出,将网络通信的过程分解为7个层次,分别是物理层、数据链路层...
它通过请求和响应的模式运作,使得客户端能够请求服务器的数据,而服务器则响应请求并返回所需信息。 1.2 **在TCP/IP协议栈的位置** HTTP通常建立在TCP协议之上,有时通过TLS或SSL(形成HTTPS)增强安全性。HTTP的...
HTTP协议的核心参数包括版本号、统一资源标识符(URIs)、日期时间格式、字符集、内容编码、媒体类型以及产品令牌等。其中,版本号用于标识协议的具体版本;URIs用于唯一识别网络上的资源;日期时间格式则用于表示...
本文将深入探讨HTTP协议的核心概念、关键特性及其运作机制。 ### URL(Uniform Resource Locator,统一资源定位符) URL是用于标识互联网上资源位置的一种标准格式。一个典型的URL例子为`...
在HTTP1.0中,使用补充反馈方式(Augmented Backus-Naur Form, ABNF)来表示协议的语法结构,这是网络协议定义中常见的表示方法。基本规则包括对字符、数字和其他符号的定义,这些规则是解析HTTP消息的基础。 3. *...
综上所述,HTTP协议作为互联网通信的基本规则,不仅定义了客户端与服务器之间的数据交换方式,也规范了网络应用的行为模式,是现代Web开发不可或缺的一部分。理解HTTP协议的工作原理,对于深入掌握Web开发技术具有...
例如,HTTP是网页浏览的基础,NNTP帮助我们理解在线讨论的运作,而TCP事务协议和UNIX域协议则揭示了提高网络效率和优化本地资源利用的方法。通过深入学习《TCP/IP详解卷三》,读者可以全面掌握这些协议的细节,从而...
* 无连接协议:HTTP 协议使用非坚持连接的工作模式,服务器在每个对象发送后都要关闭 TCP 连接。 HTTP 运作过程中的连接 在 HTTP/1.0 中,WEB 服务过程中,客户端需要与服务器建立多个 TCP 连接,以便传输多个对象...
【HTTP协议详解】 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从WWW服务器传输超文本到本地浏览器。自最初的HTTP/0.9版本发展至今,HTTP经历了多个版本的迭代,其中HTTP/1.1是当前最常用的...