当前位置:文档之家› 关于超文本传输协议的分析

关于超文本传输协议的分析

计算机协议系统课程关于超文本传输协议的分析

院系:计算机科学与信息工程学院

班级:网络工程(1)班

学号:*************

姓名:*******

目录

1. 介绍 (1)

1.1 目的 (1)

1.2 术语 (1)

1.3 概述 (2)

2. 标志转换及通用语法 (3)

2.1 补充反馈方式 (3)

2.2 基本规则 (4)

3. 协议参数 (5)

3.2 统一资源标识 (5)

3.3 Date/Time 格式 (6)

3.4 内容译码 (6)

3.5 产品标识 (6)

4. HTTP 消息 (7)

4.1 消息类型 (7)

4.2 消息标题 (8)

4.3 普通标题域 (8)

5. 请求 (8)

5.1 请求队列 (9)

5.2 请求标题域 (9)

6. 回应(Response) (10)

6.1 状态行(Status-Line) (10)

6.2 回应标题域(Response Header Fields) (11)

7. 安全考虑 (11)

7.1 客户授权 (11)

7.2 安全方法 (12)

7.3 服务器日志信息的弊端 (12)

7.4 敏感信息传输 (12)

7.5 基于文件及路径名的攻击 (13)

8. 总结 (13)

1. 介绍

1.1 目的

HTTP(Hypertext Transfer Protocol)是应用级协议,它适应了分布式超媒体协作系统对灵活性及速度的要求。它是一个一般的、无状态的、基于对象的协议,通过对其请求方法(request methods)进行扩展,可以被用于多种用途,比如命名服务器(name server)及分布式对象管理系统。HTTP的一个特性是其数据表现类型允许系统的构建不再依赖于要传输的数据。实用的信息系统需要更多的功能,而不仅仅是数据的获取,包括搜索、前端更新及注解。

HTTP允许使用开放的命令集来表示请求的目的,它使用基于URI[2](Uniform Resource Identifier),即统一资源标识的规则来定位(URL[4])或命名(URN[16])方法所用到的资源。HTTP使用与邮件(Internet Mail [7])和MIME (Multipurpose Internet Mail Extensions [5])相似的格式来传递消息。HTTP也作为用户代理、代理服务器/网关与其它Internet协议进行通讯的一般协议,这

些协议是,SMTP [12], NNTP [11], FTP [14], Gopher [1], and WAIS [8]等。HTTP 允许不同的应用可以进行基本的超媒体资源访问,并简化用户代理的实现。

1.2 术语

本规范用了许多与参与方、对象及HTTP通讯相关的术语,如下:

连接(connection):两个应用程序以通讯为目的在传输层建立虚拟电路。

消息(message):HTTP通讯的基本单元,在连接中传输的结构化的、有顺序的字节。

请求(request):HTTP的请求消息。

回应(response):HTTP的回应消息。

资源(resource):网络上可以用URI来标识的数据对象或服务。

实体(entity):可被附在请求或回应消息中的特殊的表示法、数据资源的表示、服务资源的回应等,由实体标题(entity header)或实体主体(entity body)内容形式存在的元信息组成。

客户端(client):指以发出请求为目的而建立连接的应用程序。

用户代理(user agent):指初始化请求的客户端,如浏览器、编辑器、蜘蛛(web 爬行机器人)或其它终端用户工具。

服务器(server):指接受连接,并通过发送回应来响应服务请求的应用程序。原始服务器(origin server):存放资源或产生资源的服务器。

代理(proxy):同时扮演服务器及客户端角色的中间程序,用来为其它客户产生请求。请求经过变换,被传递到最终的目的服务器,在代理程序内部,请求或被处理,或被传递。代理必须在消息转发前对消息进行解释,而且如有必要还得重写消息。代理通常被用作经过防火墙的客户端出口,用以辅助处理用户代理所没实现的请求。

网关(gateway):服务器之间的服务器。与代理不同,网关接受请求就好象它就是被请求资源所在的原始服务器,发出请求的客户端可能并没有意识到它在与网关进行通讯。网关是网络防火墙服务器端的门户。对非HTTP系统资源进行访问时,网关做为中间的协议翻译者。

隧道(tunnel):隧道就好象连接两端看不见的中继器。处于激活状态时,它虽然是由HTTP请求来初始化的,但它并不参与HTTP通讯。当需要中继连接的两端关闭后,隧道也自然终止。在入口有需求及中间程序无法或不该解释要中继的通讯时,通常要用到隧道技术。

缓存(cache):指程序本地存储的回应消息和用来控制消息存储、重获、删除的子系统。缓存回应的目的是为减少请求回应时间,以及未来一段时间对网络带宽的消耗。任何客户端及服务端都可以包含缓存。服务器在以隧道方式工作时不能使用缓存。

1.3 概述

HTTP协议是基于请求/回应机制的。客户端与服务器端建立连接后,以请求方法、URI、协议版本等方式向服务器端发出请求,该请求可跟随包含请求修饰符、客户信息、及可能的请求体(body)内容的MIME类型消息。

服务器端通过状态队列(status line)来回应,内容包括消息的协议版本、成功或错误代码,也跟随着包含服务器信息、实体元信息及实体内容的MIME类型消

息。绝大多数HTTP通讯由用户代理进行初始化,并通过它来组装请求以获取存储在一些原始服务器上的资源。在最简单的情况下,通过用户代理(UA)与原始服务器(O)之间一个简单的连接(v)就可以完成。

request chain ------------------------>

UA -------------------v------------------- O

<----------------------- response chain

更复杂的情况是当请求/回应链之间存在一个或更多中间环节。总体看来,有三种中间环节:代理(proxy)、网关(gateway)、隧道(tunnel)。

代理(proxy)是向前推送的代理人(agent),它以绝对形式接收URI请求,重写全部或部分消息,并将经过改写的请求继续向URI中指定的服务器处推送。网关是接收代理,它处于服务器层之上,在必要时候,它用服务器可识别的协议来传递请求。隧道不改变消息,它只是连接两端的中继点。在有中间层(如防火墙)或中间层无法解析消息内容的情况下,需要靠隧道技术来帮助通讯穿越中间层。

request chain -------------------------------------->

UA -----v----- A -----v----- B -----v----- C -----v----- O

<------------------------------------- response chain

由图可见,请求或回应消息在整个信息链上运行需要通过四个单独的连接,它与在此之前介绍的简单情况是有区别的,而且此区别是十分重要的。因为HTTP通讯选项可以设置成几种情况,如只与最近的非隧道邻居连接、只与信息链末端连接、或者可与链中全部环节连接等等。虽然上面的图是线性的,而实际上每个参与环节都在同时与多方进行通讯活动。

2. 标志转换及通用语法

2.1补充反馈方式

与RFC822[7]很类似,本文对所有机制的说明都是以散文和补充反馈的方式来描述的。对于实现者来说,要想理解这些约定,必须对这些符号很熟悉。补充反馈方式(augmented BNF)包括下面的结构:要解释的名词=名词解释(name =

definition)规则的名字(name)就是它本身(不带任何尖括号,“<”,“>”),后面跟个等号=,然后就是该规则的定义。如果规则需要用多个行来描述,利用空格进行缩进格式排版。某些基本的规则使用大写,如SP, LWS, HT, CRLF, DIGIT, ALPHA,等等。定义中还可以使用尖括号来帮助理解规则名的使用。

字面意思("literal")文字的字面意思放在引号中间,除非特别指定,该段文字是大小写敏感的。规则1|规则2(rule1 | rule2)“|”表示其分隔的元素是可选的,比如,“是|否”要选择‘是’或‘否’。(规则1规则2)((rule1 rule2))在圆括号中的元素表明必选其一。如(元素1(元素2|元素3)元素4)可表明两种意思,即“元素1元素2元素4”和“元素1元素3元素4”。

2.2 基本规则

下面的规则将用于本文后面对结构基本解析。

OCTET = <8-bit的顺序数据,即bytes>

CHAR = < US-ASCII字符(取值为0 –127的OCTET)>

UPALPHA = < US-ASCII 大写字符"A"到"Z">

LOALPHA =

ALPHA= UPALPHA | LOALPHA

DIGIT = < US-ASCII 数字"0"到"9">

CTL= < US-ASCII 控制字符(取值0到31的octet )和DEL (127)>

CR=

LF =

SP =

HT =

<"> =

HTTP/1.0规定,除实体主体外,所有协议元素的行结束标志都是CRLF(按字节顺序)。在实体主体内部的行结束标志定义及其对应的介质类型定义。

3. 协议参数

3.1 HTTP版本

HTTP采用主从(.)数字形式来表示版本。协议的版本政策倾向于让发送方表明其消息的格式及功能,而不仅仅为了获得通讯的特性,这样做的目的是为了与更高版本的HTTP实现通讯。只增加扩展域的值或增加了不影响通讯行为的消息组件都不会导致版本数据的变化。当协议消息的主要解析算法没变,而消息语法及发送方的隐含功能增加了,将会导致从版本号()增加;当协议中消息的格式变化了,主版本号()也将发生改变。HTTP 消息的版本由消息第一行中的HTTP版本域来表示。如果消息中的协议版本没有指定,接收方必须假定它是符合HTTP/0.9的简单标准。

HTTP-Version= "HTTP" "/" 1*DIGIT "." 1*DIGIT

注意,主从版本应当被看作单独的整数,因为它们都有可能增加,从而超过一位整数。因而,HTTP/2.4比HTTP/2.13版本低,而HTTP/2.13又比HTTP/12.3版本低。HTTP/1.0服务器必须:

(1)识别HTTP/0.9及HTTP/1.0请求命令中的请求队列(Request-Line)的格式。(2)理解任何HTTP/0.9及HTTP/1.0中的合法请求格式。

(3)使用与客户端相同版本的协议进行消息回应。

HTTP/1.0 客户端必须:

(1)识别HTTP/1.0回应中状态队列(Status-Line)的格式。

(2)理解HTTP/0.9及HTTP/1.0中合法回应的格式。

当代理及网关收到与其自身版本不同的HTTP请求时,必须小心处理请求的推送,因为协议版本表明发送方的能力,代理或网关不应发出高于自身版本的消息。如果收到高版本的请求,代理或网关必须降低该请求的版本,并回应一个错误。而低版本的请求也应在被推送前升级。代理或网关回应请求时必须遵照前面列出的规定。

3.2 统一资源标识

URI有许多名字,如WWW地址、通用文件标识(Universal Document

Identifiers)、通用资源标识(Universal Resource Identifiers [2]),以及最终的统一资源定位符(Uniform Resource Locators (URL) [4])和统一资源名(URN)。在涉及HTTP以前,URI用简单格式的字符串描述-名字、位置、或其它特性,如网络资源。注意:虽然HTTP协议独立于传输层协议,HTTP URL只是标识资源的TCP位置,而对于非TCP资源来说,必须用其它的URI形式来标识。

3.3 Date/Time 格式

出于历史原因,HTTP/1.0应用允许三种格式来表示时间戳:

Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123

Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036

Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format

第一种格式是首选的Internet标准格式,表示方法长度固定(RFC1123[6])。第二种格式在普通情况下使用,但是它是基于已经废弃的RFC850[10]中的日期格式,而且年不是用四位数字表示的。HTTP/1.0 客户端及服务器端在解析日期时可识别全部三种格式,但是它们不可以产生第三种时间格式。

3.4 内容译码

内容译码值用于指示对资源进行的编码转换。内容译码主要用于将经过压缩、加密等操作的文件进行还原,使其保持其原来的介质类型。典型情况下,经过编码保存的资源只能经过解码或类似的操作才能还原。

content-coding = "x-gzip" | "x-compress" | token

注意:出于对未来兼容性的考虑,HTTP/1.0应用应将"gzip" 和"compress" 分别与"x-gzip"和"x-compress"对应起来。所有的内容译码值都是大小写敏感的。HTTP/1.0在内容编码(10.3节)头域中使用内容译码值。虽然该值描述的是内容译码,但更为重要的是,它指明了应当用什么机制来进行解码。

3.5 产品标识

产品标识是通讯应用程序用来标识其自身的一个简单符号,常和任意字母及

版本描述一起使用。大多数产品标识也将其产品的重要组成部分的版本号一起列出,中间用空格分隔。按惯例,在标识应用程序时,组件以其重要性顺序排列。

Product = token ["/" product-version]

product-version = token

产品标识应当短小,因而禁止利用该域填写广告或其它无关信息。虽然任何符号字符都可能出现在产品版本中,该符号应当只用于做版本定义,也就是说,同一个产品的连续版本之间只能通过产品版本值进行区分。

4. HTTP 消息

4.1 消息类型

HTTP-message = Simple-Request; HTTP/0.9 messages

| Simple-Response

| Full-Request; HTTP/1.0 messages

| Full-Response

完整的请求(Full-Request)和完整的回应(Full-Response)都使用RFC822[7]中实体传输部分规定的消息格式。两者的消息都可能包括标题域(headers,可选)、实体主体(entity body)。实体主体与标题间通过空行来分隔(即CRLF前没有内容的行)。

Full-Request = Request-Line; Section 5.1

*( General-Header; Section 4.3

| Request-Header; Section 5.2

| Entity-Header ) ; Section 7.1

CRLF

[ Entity-Body ]; Section 7.2

Full-Response = Status-Line; Section 6.1

*( General-Header; Section 4.3

| Response-Header; Section 6.2

| Entity-Header ) ; Section 7.1

CRLF

[ Entity-Body ] ; Section 7.2

4.2 消息标题

HTTP-header= field-name ":" [ field-value ] CRLF

field-name= token

field-value= *( field-content | LWS )

field-content=

标题域接收的顺序并不重要,但良好的习惯是,先发送主标题,然后是请求标题或回应标题,最后是实体标题。当且仅当标题域的全部域值都用逗号分隔的列表示时(即,#(值)),多个有相同域名的HTTP标题域才可以表示在一个消息里。

4.3 普通标题域

有几种标题域是请求与回应都要使用的,但并不用于被传输的实体。这些标题只用于被传输的消息。

General-Header = Date; Section 10.6

| Pragma; Section 10.12

普通标题域名称只有在与协议版本的变化结合起来后,才能进行可靠的扩展。实际上,新的或实验中的标题域只要能被通讯各方识别,其语法就可使用,而无法识别的标题域都将被视为实体域。

5. 请求

从客户端到服务器端的请求消息包括,消息首行中,对资源的请求方法、资源的标识符及使用的协议。考虑到局限性更大的HTTP/0.9的向后兼容问题,有两种合法的HTTP请求格式:

Request= Simple-Request | Full-Request

Simple-Request = "GET" SP Request-URI CRLF

Full-Request= Request-Line ; Section 5.1

*( General-Header; Section 4.3

| Request-Header ; Section 5.2

| Entity-Header ) ; Section 7.1

CRLF

[ Entity-Body ] ; Section 7.2

如果HTTP/1.0服务器收到简单请求,它必须回应一个HTTP/0.9格式的简单回应。HTTP/1.0的客户端有能力接收完整回应,但不能产生简单请求。

5.1 请求队列

请求队列以一个方法符号开头,跟在请求URI及协议版本的后面,以CRLF 为结尾。该元素用空格SP分隔。除了最后的CRLF,不允许出现单独的CR或LF符。

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

注意,简单请求与完整请求的请求队列之间的区别在于是否有HTTP版本域和是否可以使用除GET以外的其它方法。

5.2 请求标题域

请求标题域允许客户端向服务器端传递该请求的附加信息及客户端信息。该域做为请求的修饰部分,遵照编程语言程序调用参数的语法形式。

Request-Header = Authorization ; Section 10.2

| From ; Section 10.8

| If-Modified-Since; Section 10.9

| Referer; Section 10.13

| User-Agent; Section 10.15

请求标题域名只有在与协议版本的变化结合起来后,才能进行可靠的扩展。实际上,新的或实验中的标题域只要能被通讯各方识别,其语法就可使用,而无

法识别的标题域都将被视为实体域。

6. 回应(Response)

在接收、解释请求消息后,服务器端返回HTTP回应消息。

Response= Simple-Response | Full-Response

Simple-Response = [ Entity-Body ]

Full-Response = Status-Line ; Section 6.1

*( General-Header; Section 4.3

| Response-Header ; Section 6.2

| Entity-Header ); Section 7.1

CRLF

[ Entity-Body ]; Section 7.2

6.1 状态行(Status-Line)

完整回应消息的第一行就是状态行,它依次由协议版本、数字形式的状态代码、及相应的词语文本组成,各元素间以空格(SP)分隔,除了结尾的CRLF 外,不允许出现单独的CR或LF符。

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

状态行总是以协议版本及状态代码开头,如:

"HTTP/" 1*DIGIT "." 1*DIGIT SP 3DIGIT SP

这种表示方式并不足以区分完整请求和简单请求。简单回应可能允许这种表达式出现在实体主体的开始部分,但会引起消息的误解。因为大多数HTTP/0.9的服务器都只能回应"text/html"类型,在这种情况下,不可能产生完整的回应。方法代号指明了将要以何种方式来访问由请求URI指定的资源。方法是大小写敏感的。

Method = "GET"; Section 8.1

|"HEAD"; Section 8.2

| "POST"; Section 8.3

| extension-method

extension-method = token

可以访问指定资源的方法列表是可以动态变化的;如果用某种方法访问资源被拒绝,客户端可从回应中的返回码得到通知。服务器端在方法无法识别或没有实现时,返回状态代码。

6.2 回应标题域(Response Header Fields)

回应标题域中包括不能放在状态行中的附加回应信息。该域还可以存放与服务器相关的信息,以及在对请求URI所指定资源进行访问的下一步信息。Response-Header = Location; Section 10.11

| Server ; Section 10.14

| WWW-Authenticate ; Section 10.16

回应标题域名只有在与协议版本的变化结合起来后,才能进行可靠的扩展。实际上,新的或实验中的标题域只要能被通讯各方识别,其语法就可使用,而无法识别的标题域都将被视为实体域。

7. 安全考虑

本节的描述对下面各角色有关:信息应用开发者、信息提供者、HTTP/1.0中受安全性限制的用户。本节仅是讨论安全问题,并对减少隐患提出了建议,但是并不提供对问题的最终解决办法。

7.1 客户授权

基本授权(Basic authentication)方案不是安全的用户授权方案,也不能用它来防止实体主体源码以文本方式在物理网络中传输。HTTP/1.0并不反对在目前日益突出的安全问题面前采用其它的授权方式及加密机制。

7.2 安全方法

客户端软件开发者应当注意,客户端软件代表用户在Internet上与其它方面交互,并应注意避免让用户知道其间发生的具体动作,这些动作可能会暴露对交互各方有重要意义的信息。

特别情况下,按协定来看,GET和HEAD方法应被视作是安全的,同重新获得数据应当没有什么不同。这就允许用户代理采用其它方法,如POST,在某种情况下,可能存在这样一种情况,即请求中包含不安全的行为。

通常,服务器端在执行过GET请求之后,其结果之类的副产品还残留在服务器上;实际上,一些动态资源需要这种特性来实现。这里的重要区别在于用户没有请求这些副产品,因而也不应当对这类请求进行解释。

7.3 服务器日志信息的弊端

服务器为保存与用户请求相关的个人数据,如阅读方式或感兴趣的主题等提供了空间。这些存储信息显然是受某些国家法律保护的,所以对此类数据的处理应当小心。用HTTP协议提供数据的一方应当负责保证这些信息在未得各方许可之前不会散布出去。

7.4 敏感信息传输

与其它协议一样,HTTP协议不能调整传输数据的内容,也不存在未卜先知的方法,通过给定请求的上下文信息片段就能推测出信息的敏感程度。因而,应用程序应当尽可能像信息提供方一样,为该信息提供更多的控制。在此,有三个标题域值得一提:服务端(Server)、提交方(Referer)和来自(From)。

一些指定服务器软件的版本有启示作用,因为这些版本的软件存在一些安全漏洞,将使服务器更易受到攻击。提倡服务器软件在实现时,将Server标题域变成可以进行配置的选项。提交方(Referer)标题域允许阅读方式(reading patterns)被暴露,并可导出反向链接。虽然该域很有用,但是如果包含在此域的用户信息如果没有被分开,则它的作用很可能被滥用。另外,即使此域中用户信息被清除,从该域的其它信息仍可推测出其私有文件的URI,这可能是该信息

发布者所不想看到的。来自(From)标题域可能包括一些与用户私人隐私及站点安全相关的信息,因而,在发送数据前,应当允许用户使用一些设定手段,如禁止(disable)、允许(enable)、及修改(modify),对此域信息进行配置。用户应当能够根据他们的选择或使用应用程序提供的缺省配置来设定此域的内容。

7.5 基于文件及路径名的攻击

HTTP原始服务器的实现应当注意,要对以服务器管理员名义发出的,对某个文件的HTTP请求进行限制。如果HTTP服务器直接将HTTP URI发送给系统调用,服务器要特别注意,当某个请求文件不是发往HTTP客户端时,要予以拒绝服务。Windows以及其它的操作系统使用".."做为上级目录名。在这样的系统下,HTTP服务器端必须禁止通过使用这种结构的请求URI来访问HTTP服务器其它范围的资源。同样,服务器端内部使用的一些文件,包括访问控制文件,配置文件、script代码等,也要受到特别保护,以避免被非法请求获取,导致系统敏感信息暴露。实验证明,哪怕是最小的bug,也可能导致严重的安全问题。

8. 总结

超文本传送协议(HTTP-Hypertext transfer protocol) 定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

超文本传输协议(HTTP)

《计算机网络实验》实验报告实验名称:超文本传输协议(HTTP) 年级: 2014级 专业:软件工程专业 班级: 2班 姓名:王香香 学号: 1425161018 成绩: 指导教师:卢正添 提交报告时间: 2017年 6月 3日

一、实验目的 1.掌握HTTP的报文格式 2.掌握HTTP的工作原理 3.掌握HTTP常用方法 二、实验环境 网络结构一 三、实验步骤与实验结果 练习一:页面访问 各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机A清空IE缓存。 2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 3. 主机A启动IE浏览器,在“地址”框中输入http://服务器的ip/experiment,并连接,服务器IP默认为172.16.0.253。

4. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题: ●本练习使用HTTP协议的哪种方法?简述这种方法的作用。答:Get方法。客户要从服务器读取文档时使用。 ●根据本练习的报文内容,填写下表。

表13-3 实验结果 ●参考“会话分析”视图显示结果,绘制此次访问过程的报文交互图(包括TCP协议)。 ●简述TCP协议和HTTP协议之间的关系。 答:HTTP是基于TCP的应用层协议。 思考问题: 1.一个主页是否只有一个连接? 答:否。一个主页可能对应多个连接。 练习二:页面提交 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 2. 主机A启动IE浏览器,在“地址”框中输入“http://服务器的ip/experiment/post.html”,并连接,服务器IP 默认为172.16.0.253。在返回页面中,填写“用户名”和“密码”,点击[确定]按钮。 3. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题:

网络协议分层知识集锦:七层、四层、五层

一、概述 OSI(Open System Interconnection)开放系统互连的七层协议体系结构:概念清楚,理论比较完整,但既复杂又不用。 TCP/IP 四层体系结构:简单,易于使用。 五层原理体系结构:综合OSI 和TCP/IP 的优点,为了学术学习。 二、详述 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况。为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即协议族),而不是孤立地开发每个协议。 在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的

网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部),OSI参考模型把功能分成七个分立的层次。图1表示了OSI分层模型。 图1OSI七层参考模型 OSI模型的七层分别进行以下的操作: 第一层物理层 第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。 第二层数据链路层 数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。数据链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link

http协议传输数据

竭诚为您提供优质文档/双击可除 http协议传输数据 篇一:详解http传输协议 何为http协议(hypertexttransferprotocol,超文本传输协议)? 所谓协议,就是指双方遵循的规范。http协议,就是浏览器和服务器之间进行“沟通”的一种规范。我们在看空间,刷微博...都是在使用http协议,当然,远远不止这些应用。 笔者一直听说http是属于“应用层的协议”,而且是基于tcp/ip协议的。这个不难理解,如果你上大学时候学过“计 算机网络”的课程,就一定知道osi七层参考协议(我当时是死记硬背的)。如果你接触过socket网络编程,就应该明白tcp和udp这两种使用广泛的通信协议(建立连接、三次握手等等,当然,这不是本文讨论的重点)。 如图: 既然tcp/udp是广泛使用的网络通信协议,那为啥有多出个http协议来呢?

笔者曾自己动手写过一个简单的web服务器处理软件,根据我的推断(不一定准确)。udp协议具有不可靠性和不安全性,显然这很难满足web应用的需要。 而tcp协议是基于连接和三次握手的,虽然具有可靠性,但仍具有一定的缺陷。但试想一下,普通的c/s架构软件,顶多上千个client同时连接,而b/s架构的网站,十万人同时在线也是很平常的事儿。如果十万个客户端和服务器一直保持连接状态,那服务器如何满足承载呢? 这就衍生出了http协议。基于tcp的可靠性连接。通俗点说,就是在请求之后,服务器端立即关闭连接、释放资源。这样既保证了资源可用,也吸取了tcp的可靠性的优点。 正因为这点,所以大家通常说http协议是“无状态”的,也就是“服务器不知道你客户端干了啥”,其实很大程度上 是基于性能考虑的。以至于后来有了session之类的玩意。 实战准备工作: 在监视网络方面,windows平台上有一款叫做sniffer 的优秀软件,这也是很多“黑客”经常使用的嗅探工具。 在 研究http协议时,推荐大家使用一款

HTTP超文本传输协议

http

http和其他几种网络协议 [1] 多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。 通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。 HTTP协议的网页 HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。 通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。 编辑本段协议功能 HTTP是超文本传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。 当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,例如www.*****.com,但是在浏览器的地址栏里面出现的却是:http://www.*******,你知道为什么会多出一个“http”吗? 我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在

IEEE-802.11协议详细介绍

协议X档案:IEEE 802.11协议详细介绍 作为全球公认的局域网权威,IEEE 802工作组建立的标准在过去二十年内在局域网领域内独领风骚。这些协议包括了802.3 Ethernet协议、802.5 Token Ring协议、802.3z 100BASE-T 快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。在1999年9月,他们又提出了802.11b"High Rate"协议,用来对802.11协议进行补充,802.11b在802.11的1Mbps和2Mbps 速率下又增加了 5.5Mbps和11Mbps两个新的网络吞吐速率,后来又演进到802.11g的54Mbps,直至今日802.11n的108Mbps。 802.11a 高速WLAN协议,使用5G赫兹频段。 最高速率54Mbps,实际使用速率约为22-26Mbps 与802.11b不兼容,是其最大的缺点。也许会因此而被802.11g淘汰。 802.11b 目前最流行的WLAN协议,使用2.4G赫兹频段。 最高速率11Mbps,实际使用速率根据距离和信号强度可变 (150米内1-2Mbps,50米内可达到11Mbps) 802.11b的较低速率使得无线数据网的使用成本能够被大众接受(目前接入节点 的成本仅为10-30美元)。 另外,通过统一的认证机构认证所有厂商的产品,802.11b设备之间的兼容性得到了保证。兼容性促进了竞争和用户接受程度。

802.11e 基于WLAN的QoS协议,通过该协议802.11a,b,g能够进行VoIP。 也就是说,802.11e是通过无线数据网实现语音通话功能的协议。 该协议将是无线数据网与传统移动通信网络进行竞争的强有力武器。 802.11g802.11g是802.11b在同一频段上的扩展。支持达到54Mbps的最高速率。 兼容802.11b。该标准已经战胜了802.11a成为下一步无线数据网的标准。 802.11h 802.11h是802.11a的扩展,目的是兼容其他5G赫兹频段的标准,如欧盟使用的HyperLAN2。 802.11i 802.11i是新的无线数据网安全协议,已经普及的WEP协议中的漏洞,将成为无线数据网络的一个安全隐患。802.11i提出了新的TKIP协议解决该安全问题。 利用802.11b,移动用户能够获得同Ethernet一样的性能、网络吞吐率、可用性。这个基于标准的技术使得管理员可以根据环境选择合适的局域网技术来构造自己的网络,满足他们的商业用户和其他用户的需求。

IEEE 802.11协议简述

IEEE 802.11协议简述 慧聪网 2006年1月11日10时44分信息来源:IT专家网网友评论 0 条进入论坛

点击此处查看全部新闻图片 802.11定义了两种模式:infrastructure模式和ad hoc模式,在infrastructure模式中(见图2),无线网络至少有一个和有线网络连接的无线接入点,还包括一系列无线的终端站。这种配置成为一个BSS(Basic Service Set 基本服务集合)。一个扩展服务集合(ESS Extended Service Set)是由两个或者多个BSS构成的一个单一子网。由于很多无线的使用者需要访问有线网络上的设备或服务(文件服务器、打印机、互联网链接),他们都会采用这种Infrastructure模式。 Ad hoc模式(也成为点对点模式 pear to pear模式或IBSS Independent Basic Service Set) 802.11物理层 图2:Infrastructure模式 点击此处查看全部新闻图片 在802.11最初定义的三个物理层包括了两个扩散频谱技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM 波段内,这个频段,在各个国际无线管理机构中,例如美国的USA,欧洲的ETSI和日本的MKK都是非注册使用频段。这样,使用802.11的客户端设备就不需要任何无线许可。扩散频谱技术保证了802.11的设备在这个频段上的可用性和可靠的吞吐量,这项技术还可以保证同其他使用同一频段的设备不互相影响。 最初,802.11无线标准定义的传输速率是1Mbps和2Mbps,可以使用FHSS(frequency hopping spread spectrum)和DSSS(direct sequence spread spectrum)技术,需要指出的是,FHSS和DHSS技术在运行机制上是完全不同的,所以采用这两种技术的设备没有互操作性。 使用FHSS技术,2.4G频道被划分成75个1MHz的子频道,接受方和发送方协商一个调频的模式,数据则按照这个序列在各个子频道上进行传送,每次在802.11网络上进行的会话都可能采用了一种不同的跳频模式,采用这种跳频方式主要是为了避免两个发送端同时采用同一个子频段。 FHSS技术采用的方式较为简单,这也限制了它所能获得的最大传输速度不能大于2Mbps,这个限制主要是受FCC规定的子频道的划分不得小于1MHz。这个限制使得FHSS必须在2.4G整个频段内经常性跳频,带来了大量的跳频上的开销。 和FHSS相反的是,直接序列扩频技术将2.4Ghz的频宽划分成14个22MHz的通道(Channel),临近的通道互相重叠,在14个频段内,只有3个频段是互相不覆盖的,数据就是从这14个频段中的一个进行传送而不需要进行频道之间的跳跃。为了弥补特定频段中的噪音开销,一项称为"chipping"的技术被用来解决这个问题。在每个22MHz通道中传输的数据中的数据都被

80211协议简述

第一课IEEE 802.11协议简述 作为全球公认的局域网权威,IEEE 802工作组建立的标准在过去二十年内在局域网领域内独领风骚。这些协议包括了802.3 Ethernet协议、802.5 Token Ring协议、802.3z 100BASE-T快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。在1999年9月,他们又提出了802.11b"High Rate"协议,用来对802.11协议进行补充,802.11b在802.11的1Mbps和2Mbps速率下又增加了5.5Mbps和11Mbps两个新的网络吞吐速率。利用802.11b,移动用户能够获得同Ethernet一样的性能、网络吞吐率、可用性。这个基于标准的技术使得管理员可以根据环境选择合适的局域网技术来构造自己的网络,满足他们的商业用户和其他用户的需求。802.11协议主要工作在ISO协议的最低两层上,并在物理层上进行了一些改动,加入了高速数字传输的特性和连接的稳定性。 主要内容: 1.80 2.11工作方式 2.802.11物理层 3.802.11b的增强物理层 4.802.11数字链路层 5.联合结构、蜂窝结构和漫游 1. 80 2.11工作方式 802.11定义了两种类型的设备,一种是无线站,通常是通过一台PC机器加上一块无线网络接口卡构成的,另一个称为无线接入点(Access Point, AP),它的作用是提供无线和有线网络之间的桥接。一个无线接入点通常由一个无线输出口和一个有线的网络接口(802.3接口)构成,桥接软件符合802.1d桥接协议。接入点就像是无线网络的一个无线基站,将多个无线的接入站聚合到有线的网络上。无线的终端可以是802.11PCMCIA卡、PCI接口、ISA接口的,或者是在非计算机终端上的嵌入式设备(例如802.11手机)。 2. 802.11物理层 在802.11最初定义的三个物理层包括了两个扩散频谱技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM波段内,这个频段,在各个国际无线管理机构中,例如美国的USA,欧洲的ETSI和日本的MKK都是非注册使用频段。这样,使用802.11的客户端设备就不需要任何无线许可。扩散频谱技术保证了802.11的设备在这个频段上的可用性和可靠的吞吐量,这项技术还可以保证同其他使用同一频段的设备不互相影响。802.11无线标准定义的传输速率是1Mbps和2Mbps,可以使用FHSS(frequency hopping spread spectrum)和DSSS(direct sequence spread spectrum)技术,需要指出的是,FHSS和DHSS技术在运行机制上是完全不同的,所以采用这两种技术的设备没有互操作性。

(完整word版)Http协议解说

Http协议:超文本传输协议 浏览器与服务端之间传输数据的协议,底层的传输协议为TCP。 Http则为应用层协议,负责定义传输数据的格式 HTTP协议分为1.0与1.1两个版本。现在常用为1.1版本。 协议规定客户端与服务端通讯方式为:一次请求一次响应,即:客户端发起请求,服务端接收到请求后向客户端发送响应。服务端不会主动发送内容 给客户端。采取“一问一答”的形式 HTTP 请求和响应分别定义了个格式。并且,无论是请求还是响应 中发送的字符(不含正文部分内容)都只能符合ISO8859-1编码字符(如:数字,字母,符号). 像中文等其它字符都需要经过处理后才可以发送。 HTTP请求格式: 一个HTTP请求分为三部分组成:请求行,消息头,消息正文 1:<请求行> 请求行分为三部分:

请求方法资源路径协议(CRLF) method(请求方法)url(资源路径) protocol(CRLF) 例如: GET /index.html HTTP/1.1(CRLF) 请求行以CRLF结束(回车加换行) CR:回车符,asc编码中对应数字13 LF:换行符,asc编码中对应数字10 2.<消息头> 消息头由若干行表示,每行表示一个具体的头信息,每个头信息式分为两部分: 消息头名字:消息头的值(CRLF) name: value(CRLF) 每个消息头都以CRLF结尾。 最后一个消息头结尾处会有两个CRLF,第一个表示最后一个消息头结束, 第二个表示消息头(整个)部分结束。 例如: Host: www.localhost:8080(CRLF) Connection: keep-alive(CRLF)

超文本传输协议(HTTP1.1)中文

应用层 超文本传输协议(HTTP) 一、前言 TCP/IP应用层协议有许多种,本文档讲解我们最熟悉的超文本传输协议(HTTP)。 超文本传输协议(HTTP)版本1.1是一个草案标准,其描述见RFC 2612。旧的HTTP 1.0是一个指示性协议,RFC 1945对它进行了描述。超文本传输协议是为了传输超文本标记语言(Hypertext Markup Language,HTML)而设计的协议。HTML是一种用于创建超文本文档的标记语言。有关HTML的信息请参见相关的超文本标记语言的书籍。 二、HTTP综述 HTTP基于请求—响应活动。客户端运行浏览器应用程序,它建立与服务器的连接,并以请求的形式发送一个请求到服务器。服务器用一个状态行做出响应,包括信息的协议版本以及成功或者错误代码,后面跟着一个消息,它包含服务器信息、实体信息和可能的内容。 HTTP事务被划分为如下4个步骤。 除了实验性应用程序之外,现行习惯要求客户在发出每个请求之前先建立连接,并由服务器在发送响应之后关闭连接。客户和服务器都应当注意任何一方都有可能过早地关闭连接,原因可能是用户操作、自动超时或者程序故障等,他们应当以一种可预见的并且所期望的方式处理这种关闭行为。在任何一种情况下,任何一方或者双方关闭的连接总是终止当前请求,而不管它的状态如何。简单的说HTTP是一种无状

态协议,因为它不跟踪连接。例如:为了装入包含两个图形的页面,支持图形的浏览器将打开三个TCP 连接:一个连接用于页面,而另外连个连接用于图形。然而大多数浏览器能够同时处理几个这样的连接。 如果一个页面包含大量要素,每个资源都新建一个TCP连接,这将占用大量资源。在HTTP1.1中缓和了这个问题,它为每种类型元素建立一个TCP连接,同样类型的元素使用同一个TCP连接。HTTP 1.1不同于HTTP 1.0的地方就是它使用了永久连接。 三、统一资源标识URI URI亦可称为web地址,是统一资源定位器(URL)和统一资源名称(URN)的组合。依照RFC 1945种的定义,“统一资源标识符是通过名称、位置或者其他的特征标识资源的简单格式字符串”。 四、HTTP消息类型 HTTP消息既可以是客户端请求也可以是服务器响应。下面说明了HTTP消息类型:HTTP-message = Request | Response 五、消息头 HTTP消息头字段为如下形式之一: ●一般报文头 ●请求报文头 ●响应报文头 ●实体报文头 ●消息体:如果未使用传输编码,可以把消息体称为实体。 ●消息长度 5.1一般报文头 一般报文头字段既可以用于请求消息,又可以用于响应消息。当前的一般报文头字段选项如下: ●缓存控制(Cach-Control) ●连接 ●日期 ●标记(Pragma) ●传输编码(Transfer-Encoding) ●升级(Upgrade) ●通过(Via)

WLANIEEE80211协议综述

IEEE 802.11 协议综述 [1] IEEE 802.11系列协议标准的发展 IEEE802.11系列协议标准是由国际电气和电子工程师联合会(IEEE)制定 的,它以IEEE802.11标准为基础,包括与无线局域网相关的多个已经发布和正在编著的标准。图1展示了无线局域网在IEEE 网络协议体系中位置。表1给出了每一种标准协议的名称、时间和简单的说明。 图1:无线局域网在IEEE 网络协议体系中位置 表2: IEEE802.11系列协议标准 在表2中需要说明的是,标准的名称都采用小写的字母进行标注,惟有 IEEE802.11F 采用的是大写字母;发布时间为2004年及以后的协议都是还没确定的,因为每一个协议的批准过程都是非常繁杂的,很可能出现延迟的情况。该

综述将在后面选取部分协议标准进行详细的描述。

图3:IEEE 802.11系列协议中协议分布 如图3在IEEE 802.11系列协议标准中各种协议的分布中没有包含IEEE802.11标准。因为IEEE 802.11作为基础协议包含了物理层和MAC子层的内容,后续的速度扩展(比如:IEEE 802.11a、IEEE 802.11b、IEEE 802.11g 和未来的IEEE 802.11n)都延续了它所定义的MAC协议。该综述会对接触到的一些协议进行简单的描述,包括IEEE 802.11、IEEE 802.11a 、IEEE 802.b、IEEE 802.11e、IEEE 802.11g和最新的IEEE 802.11n 。 [2] IEEE 802.11 a,b,g,n 协议的定义和标准 IEEE 802.11 IEEE 802.11是第一代无线局域网标准之一,也是国际电气和电子工程师联合会IEEE发布的第一个无线局域网标准,是其他IEEE802.11系列标准的基础标准。该标准定义了物理层和介质访问控制MAC协议的规范,允许无线局域网及无线设备制造商在一定范围内建立互操作网络设备。常常把IEEE802.11作为无线局域网的代名词。IEEE802.11标准有两个版本:1997年版和后来补充修订的1999年版。 IEEE 802.11无线网络标准规定了3种物理层传输介质工作方式。其中2种物理层传输介质工作方式在2.4~2.4835 GHz微波频段(根据各国当地法规或规定不同,频段的具体定义也有所不同),采用扩频传输技术进行数据传输,包括跳频序列扩频传输技术(FHSS)和直接序列扩频传输技术(DSSS)。另一种方式以光波段作为其物理层,也就是利用红外线光波传输数据流。需要注意的是,虽然红外线同样适用于IEEE 802.11标准,但它是光学技术,并不使用2.4GHz频段。 在IEEE 802.11的规定中,这些物理层传输介质中,FHSS及红外线技术的无线网络则可提供1Mbps传输速率(2Mbps为可选速率),而DSSS则可提供1Mbps 及2Mbps工作速率。多数FHSS厂家仅能提供1Mbps的产品,而符合IEEE 802.11无线网络标准并使用DSSS厂家的产品则全部可以提供2Mbps的速率,因此DSSS 在无线局域网产品中得到了广泛的应用。虽然采用跳频序列扩频技术(FHSS)与采用DSSS的设备都工作在相同的频段中,但是由于它们运行的机制完全不同,所

HTTP:超文本传输协议(Hypertext Transfer Protocol)

HTTP:超文本传输协议(Hypertext Transfer Protocol) 超文本传输协议(HTTP)是应用层协议,由于其简捷、快速的方式,适用于分布式和合作式超媒体信息系统。自1990 年起,HTTP 就已经被应用于WWW 全球信息服务系统。 HTTP 允许使用自由答复的方法表明请求目的,它建立在统一资源识别器(URI)提供的参考原则下,作为一个地址(URL)或名字(URN),用以标志采用哪种方法,它用类似于网络邮件和多用途网际邮件扩充协议(MIME)的格式传递消息。 HTTP 也可用作普通协议,实现用户代理与连接其它Internet 服务(如SMTP、NNTP、FTP、GOPHER 及WAIS)的代理服务器或网关之间的通信,允许基本的超媒体访问各种应用提供的资源,同时简化了用户代理系统的实施。 HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器,请求的格式是:统一资源标识符(URI)、协议版本号,后面是类似MIME 的信息,包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式是:一个状态行包括信息的协议版本号、一个成功或错误的代码,后面也是类似MIME 的信息,包括服务器信息、实体信息和可能的内容。 HTTP 的第一版本HTTP/0.9 是一种简单的用于网络间原始数据传输的协议。而由RFC 1945 定义的HTTP/1.0 ,在原HTTP/0.9 的基础上,有了进一步的改进,允许消息以类MIME 信息格式存在,包括请求/响应范式中的已传输数据和修饰符等方面的信息。但是,HTTP/1.0 没有充分考虑到分层代理服务器、高速缓冲存储器、持久连接需求或虚拟主机等方面的效能。相比之下,HTTP/1.1 要求更加严格以确保服务的可靠性。关于安全增强版的HTTP (即S-HTTP),将在相关文件中再作介绍。协议结构 HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下: 请求行-通用信息头-请求头-实体头-报文主体

超文本传输协议HTTP

《计算机网络实验》实验报告 实验名称:超文本传输协议HTTP 年级: 专业: 班级: 姓名: 学号: 成绩: 指导教师:卢正添 提交报告时间: 2012年 5月17日

实验目的 1.掌握HTTP的报文格式 2. 掌握HTTP的工作原理 3. 掌握HTTP常用方法 实验环境 网络拓扑结构一 实验步骤 练习一 各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机A清空IE缓存。 2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 3. 主机A启动IE浏览器,在“地址”框中输入http://服务器的ip/experiment,并连接,服务器IP默认为172.16.0.253。 4. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题: ●根据本练习的报文内容,填写下表。 表13-3 实验结果

●TCP 协议)。 ●简述TCP协议和HTTP协议之间的关系。

练习二 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 2. 主机A启动IE浏览器,在“地址”框中输入“http://服务器的ip/experiment/post.html”,并连接,服务器IP默认为172.16.0.253。在返回页面中,填写“用户名”和“密码”,点击[确定]按钮。 3. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题: ●本练习的提交过程使用HTTP协议的哪种方法?简述这种方法的作用。 ●此次通信分几个阶段?每个阶段完成什么工作? ●参考“会话分析”视图显示结果,绘制此次提交过程的报文交互图(包括TCP 协议)。

超文本传输协议http实验报告

超文本传输协议http实验报告 篇一:计算机网络实验超文本传输协议Http分析 实验二超文本传输协议 Http分析 一、实验目的 通过分组捕获软件Wireshark来分析Http协议的以下内容: 1、 Http协议的Get/Resonse互动机制; 2、 Http协议的分组格式; 3、如何利用Http传输Html文件; 4、如何利用Http传输图片、动画等嵌入式文件; 5、观察Http的安全性能。 二、实验条件 1、Wireshark软件 2、IE浏览器 三、实验预习要求: 复习课本节的相关内容 四、实验内容:

1. Http的基本请求/响应互动机制 本实验通过访问一个最简单的页面展开,即该html 文件中不引用任何其它嵌入式文件(如图片、视频等)。操作步骤如下: 1、打开IE浏览器; 2、打开Wireshark软件,打开抓包菜单中的网络接口子菜单,从中选择本机使用的网络接口。 3、切入包捕获界面后,在过滤栏中输入http && == || == ,即只观察与交互的http分组。 4、在IE浏览器输入:;此时浏览器应该会显示一个最简单的html页面(只有一行)。 5、此时,你的Wireshak软件应该如下所示: 图1: 访问后的 Wireshark显示界面 从上图中可观察到总共捕获到四个http包,其中,包括两对Http的Get分组(由本机浏览器向服务器发出的请求)以及服务器返回的响应分组。需要注意的是,第一轮请求与回复请求的是具体的页面;而第二轮请求与回复涉及的却是一个文件。分组内容展示窗口中可以观察这两个分组

的详细信息。从展开的分组内容中可以看出:Http包是经由Tcp协议传输,而Tcp又是附加在IP数据包的基础上,后者又附加在一个以太网帧内。以第一轮分组为观察目标,试着回答如下问题: 1. 你的浏览器运行的是什么协议版本?还是 ? 服务器运行的又是什么版本呢? 2. 你的浏览器告诉服务器它能够接受的语言是? 3. 你浏览器所在的IP是?服务器的Ip又是? 4. 服务器返回给浏览器的状态代码是?这次访问成功了么? 5. 浏览器所访问的Html文件上次被修改的时间是? 6. 间隔两分钟后再重新访问该Html文件(即刷新IE 浏览器),再次查看Html文件上被修改的时间是?对比与问题5的答案,你观察出了什么结论? 7. 服务器返回给浏览器的分组的内容长度是多少? 2. Http附加条件判断的请互动机制 从课本节中我们知道,当前主要浏览器都有一个缓存机制,即将刚访问的页面内容保存在IE缓存区。在此基础上,当用户重新访问该页面时,浏览器会智能地发出一个带

http协议精华

http协议学习系列 1. 基础概念篇1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。 1.2 在TCP/IP协议栈中的位置 HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: 默认HTTP的端口号为80,HTTPS的端口号为443。 1.3 HTTP的请求响应模型 HTTP协议永远都是客户端发起请求,服务器回送响应。见下图: 这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。 HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 1.4 工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

文本传输协议(修订编写)

超文本传送协议 超文本传输协议bai (HTTP-Hypertext transfer protocol),是一种详细规du定了浏览器和万维网服务器之间互zhi相通信的规则,通dao过因特网传送万维网文档的数据传送协议。它可 以使浏览器更加高效,使网络传输减少。它不仅能保证计算机正确快速地传输超文本文档, 还能确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 HTTP协议即超文本传送协议。 超文本传输协议(HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 目录 1简史 2协议简介 3特点 4请求信息 5请求方法 6响应头 ?响应头第一行 ?响应头域 7安全协议 8HTTP状态码 1简史编辑 超文本转移协议的前身是世外桃源(Xanadu)项目,超文本的概念是泰德˙纳尔森(Ted Nelson)在1960年代提出的。进入哈佛大学后,纳尔森一直致力于超文本协议和该项目的 研究,但他从未公开发表过资料。1989年,蒂姆˙伯纳斯˙李(Tim Berners Lee)在CERN(欧洲原子核研究委员会= European Organization for Nuclear Research)担任软件咨询师的时候,开发了一套程序,奠定了万维网(WWW = World Wide Web)的基础。1990年12月,超文本在CERN首次上线。1991年夏天,继Telnet等协议之后,超文本转移协议成为互 联网诸多协议的一分子[1]。

当时,Telnet协议解决了一台计算机和另外一台计算机之间一对一的控制型通信的要求[2]。邮件协议解决了一个发件人向少量人员发送信息的通信要求。文件传输协议解决一台 计算机从另外一台计算机批量获取文件的通信要求,但是它不具备一边获取文件一边显示文件或对文件进行某种处理的功能。新闻传输协议解决了一对多新闻广播的通信要求。[3]而超文本要解决的通信要求是:在一台计算上获取并显示存放在多台计算机里的文本、数据、图片和其他类型的文件;它包含两大部分:超文本转移协议和超文本标记语言(HTML)。HTTP、HTML以及浏览器的诞生给互联网的普及带来了飞跃[4]。 2协议简介编辑 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)[5]和Internet工作小组IETF(Internet Engineering Task Force)[6]合作的结果,(他们)最终发布了一系列的RFC,RFC 1945[7]定义了HTTP/1.0版本。其中最著名的就是RFC 2616[8]。RFC 2616定义了今天普遍使用的一个版本 ——HTTP 1.1。为纪念Tim Berners-Lee提出HTTP后对互联网发展的贡献,万维网协会保留有他最原始提交的版本[9]。 HTTP协议(HyperText Transfer Protocol,超文本转移协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等[10]。 HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP 是一个无状态的协议。 3特点编辑 HTTP协议的主要特点可概括如下: 1、支持客户/服务器模式。支持基本认证[11]和安全认证(见后文《安全协议》)。 http 协议简介 2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用 的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加 以标记。

超文本传输协议工作原理

超文本传输协议工作原理 超文本传输协议是互联网上应用最为广泛的一种网络协议,那么你对超文本传输协议了解多少呢?以下是由我整理关于什么是超文本传输协议的内容,希望大家喜欢! 超文本传输协议的技术架构 是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,协议并没有规定必须使用它和(基于)它支持的层。事实上,可以在任何其他互联网协议上,或者在其他网络上实现。只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。 通常,由客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。 通过或者S协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。 超文本传输协议的功能 协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW 服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过协议传输所要访问的超文本信息。包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。 我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL 或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。 超文本传输协议的运作方式 在WWW中,"客户"与"服务器"是一个相对的概念,只存在于一个特定的

计算机网络原理 超文本传输协议(HTTP)

计算机网络原理超文本传输协议(HTTP) HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。从层次的角度看,HITP是面向事务的产应用层协议.它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 HTTP协议不仅保证计算机正确快速地传输超文本文档,还准确了传输文档中位置等。所以我们在浏览器中看到的网页地址都是以“http://”开头的。 由于HTTP协议是基于客户机/服务器模式。所以客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet上,HTTP通讯通常发生在TCP/IP连接之上。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。所以万维网的大致工作过程如图7-14所示。 图7-14 万维网的工作过程 在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、释放连接。这就好像上面的例子,我们电话订货的全过程。 每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器〔即客户进程)向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。 HTTP规定在HTTP客户与HTTP服务器之间的每次交互都由一个ASCll码串构成的请求和一个“类MIME(MIME-like)的响应组成。虽然大家都使用TCP连接进行传送,但标准并没有这样明确规定。 用户浏览页面的方法有两种。一种方法是在浏览器的地址窗口中键入所要找的页面的URL。另一种方法是在某一个页面中用鼠标点击一个可选部分,这时浏览器自动在因特网上找到所要链接的页面。

相关主题