http协议range.docx
《http协议range.docx》由会员分享,可在线阅读,更多相关《http协议range.docx(8页珍藏版)》请在冰豆网上搜索。
http协议range
竭诚为您提供优质文档/双击可除
http协议,range
篇一:
http协议组成总结
http协议----超文本传送协议
20xx-12-8
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议。
关键词
1.连接(connection):
一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间。
2.消息(message):
http通讯的基本单位,包括一个结构化的八元组序列并通过连接传输。
3.请求(Request):
一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号。
4.响应(Response):
一个从服务器返回的信息包括http协议的版本号、请求的状态(例如“成功”或“没找到”)和文档的mime类型。
5.资源(Resource):
由uRi标识的网络数据对象或服务。
6.实体(entity):
数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。
一个实体包括实体头信息和实体的本身内容。
7.客户机(client):
一个为发送请求目的而建立连接的应用程序。
8.用户代理(useragent):
初始化一个请求的客户机。
它们是浏览器、编辑器或其它用户工具。
9.服务器(server):
一个接受连接并对请求返回信息的应用程序。
10.源服务器(originserver):
是一个给定资源可以在其上驻留或被创建的服务器。
11.代理(proxy):
一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为其它客户机建立请求。
请求是通过可能的翻译在内部或经过传递到其它的服务器中。
一个代理在发送请求信息之前,必须解释并且如果可能重写它。
代理经常作为通过防火墙的客户机端的门户,代理还可以作为一个帮助应用
来通过协议处理没有被用户代理完成的请求。
12.网关(gateway):
一个作为其它服务器中间媒介的服务器。
与代理不同的是,网关接受请求就好象对被请求的资源来说它就是源服务器;发出请求的客户机并没有意识到它在同网关打交道。
网关经常作为通过防火墙的服务器端的门户,网关还可以作为一个协议翻译器以便存取那些存储在非http系统中的资源。
13.通道(tunnel):
是作为两个连接中继的中介程序。
一旦激活,通道便被认为不属于http通讯,尽管通道可能是被一个http请求初始化的。
当被中继的连接两端关闭时,通道便消失。
当一个门户(portal)必须存在或中介(intermediary)不能解释中继的通讯时通道被经常使用。
14.缓存(cache):
反应信息的局域存储。
http协议uRl
httpuRl的格式为:
]
http表示要通过http协议来定位网络资源;
host表示合法的internet主机域名或者ip地址;
port指定一个端口号,为空则使用缺省端口80;
abs_path指定请求资源的uRi(绝对路径);
如果uRl中没有给abs_path,那么当它作为请求uRi时,须以“/”的形式给出,通常这个工作浏览器自动完成。
http协议请求(request)
http请求(request)由三部分组成,分别是:
请求行、消息报头、请求正文。
请求消息格式
请求行
通用信息头|请求头|实体头
cRlF(回车换行)
实体内容
注解:
头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
实体——请求或应答对象本身。
请求行
请求行以一个方法符号开头,以空格分开,后面跟着请求的uRi和协议的版本。
格式如下:
methodRequest-uRihttp-VersioncRlF(即:
方法+[空格]+请求uRi+[空格]+版本号+[回车换行])
例:
get/index.htmlhttp/1.1
posthttp:
//10.5.6.240:
8080/index.jsphttp/1.1
其中:
method表示请求方法;
Request-uRi是一个统一资源标识符;
http-Version表示请求的http协议版本;
cRlF表示回车和换行(除了作为结尾的cRlF外,不允许出现单独的cR或lF字符)。
请求方法
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
get
get请求获取Request-uRi所标识的资源,向特定的资源发出请求(注意:
get方法不应当被用于产生“副作用”的操作中,例如在webapp中。
其中一个原因是get可能会被网络蜘蛛等随意访问。
)。
post
post在Request-uRi所标识的资源后附加新的数据,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
数据被包含在请求体中。
post请求可能会导致新的资源的建立和/或已有资源的修改。
head
head请求获取由Request-uRi所标识的资源的响应消息报头,向服务器索要与get请求相一致的响应,只不过响应体将不会被返回。
这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
put
put请求服务器存储一个资源,并用Request-uRi作为其标识,向指定资源位置上传其最新内容。
delete
delete请求服务器删除Request-uRi所标识的资源。
tRace
tRace请求服务器回送收到的请求信息,主要用于测试或诊断,回显服务器收到的请求,主要用于测试或诊断。
connect
connect保留将来使用,ttp/1.1协议中预留给能够将连接改为管道方式的代理服务器。
options
options请求查询服务器的性能,或者查询与资源相关的选项和需求,返回服务器针对特定资源所支持的http请求方法。
也可以利用向web服务器发送*的请求来测试服务器的功能性。
get方法:
在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用get方法向服务器获取资。
post方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
head方法与get方法几乎是一样的,对于head请求的回应部分来说,它的http头部中包含的信息与通过get请求所得到的信息是相同的。
利用这个方法,不必传输整个资源内容,就可以得到Request-uRi所标识的资源的信息。
该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
get方法通常没有消息主体,支持最大1024个字节的查询字符串,post方法没有限制。
post方法把查询字符串放在消息主体中传输,因此比get方法支持更多的数据类型。
方法名称是区分大小写的。
当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(methodnotallowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(notimplemented)。
http服务器至少应该实现get和head方法,其他方法都是可选的。
当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。
此外,除了上述方法,特定的http服务器还能够扩展自定义的方法。
请求报头
请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。
常用的请求报头:
host
host请求报头域主要用于指定被请求资源的internet主机和端口号,它通常从
篇二:
http协议学习总结协议格式消息头消息体等
超文本传送协议(http)是一种通信协议,它允许将超文本标记语言(html)文档从web服务器传送到webhtml是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。
您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。
http工作在tcp/ip协议体系中的tcp协议上。
客户机和服务器必须都支持http,才能在万维网上发送和接收html文档并进行交互。
http是一个属于应用层的的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。
无连接:
无连接的含义是限制每次连接只处理一个请求。
服务器处理完客户的请求,并收到客户的应答后,即断开连接。
采用这种方式可以节省传输时间。
无状态:
http协议是无状态协议。
无状态是指协议对于事务处理没有记忆能力。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
消息的通用格式为:
generic-message=start-line*(message-headercRlF)
cRlF
[message-body]
其中start-line=Request-line|status-line
请求(Request)消息:
由客户端发给服务器的消息。
其组成包括:
请求行(Request-line),可选的头域(headerField),及实体(entity-body)。
请求消息结构:
Full-Request=Request-line
*(general-header|Request-header|entity-header)cRlF[entity-body]
请求消息示例:
请求行:
get(请求方法)/pub/www/page.html(uRl)http/1.1(版本号)
报头行(可选的头域?
):
connection:
close(告知服务器本浏览器不想使用永久连接方式)
user-agent:
mozilla/4.0(指定用户代理服务器的类型)
accept-encoding:
gzip,compress(发送此请求的浏览器支持哪些压缩编码方式)
accept-language:
en(客户浏览器支持的语言是英语)cRlF
(实体)entity-body
响应消息示例:
(状态行)http/1.1(版本号)200(状态码)ok(原因短语)connection:
close
date:
thu,13oct20xx03:
17:
33gmt(服务器创建并发送本响应消息的日期和时间)
server:
apache/2.0.54(unix)(本消息是由apache服务器产生的,服务器版本为2.0.54)
lastnodified:
mon,22jun199809;23;24gmt(对象本身的创建或最后修改日期或时间。
)
content—length:
682l(所发送对象的字节数。
)
content-type:
text/html(包含在实体中的对象是html文本。
)状态行由协议版本、状态码、原因短语3个元素组成,各个元素之间用sp分隔。
状态码字段由三个数字组成,标识客户请求方法的结果。
状态码有5种可能的值,如下表所示。
状态码定义
1xx
2xx
3xx信息成功重定向说明接收到请求,继续处理操作成功地收到,理解和接受为了完成请求,必须采取进一步措施
消息的报头分通用报头、请求报头、响应报头和实体报头四个类型。
请求报头
request-header=accept请求希望服务器能响应何种媒体数据格式。
|accept-charset请求端能够接受的字符集