当前位置:文档之家› http协议学习总结 协议格式 消息头 消息体等

http协议学习总结 协议格式 消息头 消息体等

超文本传送协议(HTTP)

是一种通信协议,它允许将超文本标记语言(HTML) 文档从Web 服务器传送到Web 浏览器。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。

HTTP工作在TCP/IP协议体系中的TCP协议上。

客户机和服务器必须都支持HTTP,才能在万维网上发送和接收HTML 文档并进行交互。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

消息的通用格式为:

generic-message=start-line

*(message-header CRLF)

CRLF

[message-body]

其中start-line=Request-Line|Status-Line

请求(Request)消息:

由客户端发给服务器的消息。

其组成包括:请求行(Request-Line),可选的头域(Header Field ),及实体(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(客户浏览器支持的语言是英语)

CR LF

(实体)Entity-Body

响应消息示例:

(状态行)HTTP/1.1(版本号)200(状态码)OK(原因短语)Connection:close

Date: Thu, 13 Oct 2005 03:17:33 GMT(服务器创建并发送本响应消息的日期和时间)

Server: Apache/2.0.54 (Unix)(本消息是由Apache服务器产生的,服务器版本为2.0.54)

LastNodified:Mon,22 Jun 1998 09;23;24 GMT(对象本身的创建或最后修改日期或时间。)

Content—Length:682l(所发送对象的字节数。)

Content-Type:text/html(包含在实体中的对象是HTML文本。)

状态行由协议版本、状态码、原因短语3个元素组成,各个元素之间用SP分隔。状态码字段由三个数字组成,标识客户请求方法的结果。状态码有5种可能的值,如下表所示。

状态码定义说明

1XX 信息接收到请求,继续处理

2XX 成功操作成功地收到,理解和接受

3XX 重定向为了完成请求,必须采取进一步措施

消息的报头分通用报头、请求报头、响应报头和实体报头四个类型。请求报头

request-header = Accept请求希望服务器能响应何种媒体数据格式。| Accept-Charset请求端能够接受的字符集

| Accept-Encoding告诉服务器可以接收何种压缩格式传输

| Accept-Language请求端能够识别的语言

| Authorization按特定认证方案编码的用户名和密码证书,服务器接收验证通过执行请求。

| Host请求资源的网络主机和端口号

| Expect

| From

| If-Match

响应报头

response-header = Accept-Ranges

| Age

| ETag

| Location

| Proxy-Authenticate

| Retry-After

| Server

| Vary | WWW-Authenticate 实体头

entity-header = Allow |

Content-Encoding|

Content-Language|

Content-Length|

Content-Location|

Content-MD5|

Content-Range|

Content-Type|

Expires|

Last-Modified|

extension-header

相关主题