Guushuuse .NET

领域驱动设计==哲学

导航

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

 

HTTP的发展是万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,其中最著名的就是RFC 2616RFC 2616定义了HTTP协议的我们今天普遍使用的一个版本——HTTP 1.1

HTTP是一个用于在客户端和服务器间请求和应答的协议。一个HTTP的客户端,诸如一个web浏览器,通过建立一个到远程主机特殊端口(默认端口为80)的连接,初始化一个请求。一个HTTP服务器通过监听特殊端口等待客户端发送一个请求序列, 就像“GET / HTTP/1.1”(用来请求网页服务器的默认页面),有选择的接收像email一样的MIME消息,此消息中包含了大量用来描述请求各个方面的信息头序列,响应一个选择的保留数据主体。接收到一个请求序列后(如果要的话,还有消息),服务器会发回一个回复,如“200 OK”,同时发回一个它本报的消息,此消息的主体可能是被请求的文件、错误消息或者其他的一些信息。

 

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行——通用信息头——请求头——实体头——报文主体

请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。SP 是分隔符。除了在最后的 CRLF 序列中 CF LF 是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。

应报文格式如下:

状态行——通用信息头——响应头——实体头——报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。

 

 

    HTTP/1.1协议中共定义了八种方法来指示确认的资源执行所需的行为:

OPTIONS——返回服务器针对特定资源所支持的HTTP请求方法,这可以用来检查网络服务器的功能。

HEAD——向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET——向特定的资源发出请求。GET方法不应当被用于产生副作用的操作中。

POST——向指定资源提交数据进行处理请求。数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT——向指定资源位置上传其最新内容。

DELETE——删除指定资源。

TRACE——回显服务器收到的请求。

CONNECT ——HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

 

 

 

所有 HTTP 响应的第一行都是状态行, 依次是当前 HTTP 版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型:

1xx 消息——请求已被服务器接收,继续处理

2xx 成功——请求已成功被服务器接收、理解、并接受

3xx 重定向——需要后续操作才能完成这一请求

4xx 请求错误——请求含有词法错误或者无法被执行

5xx 服务器错误——服务器在处理某个正确请求时发生错误

常用的 HTTP 状态码:

200 OK——

302 Found——

304 Not Modified——

401 Unauthorized——

403 Forbidden——

404 Not Found——

500 Internal Server Error——

 

常用的响应头:

Server——Web 服务器的名称和版本。

Date——当前日期(格林威治标准时间)。

Last-modified——上次修改文档的日期。  

Expires——文档到期的日期。

Content-length——随附数据的长度(以字节为单位)。

Content-type ——随附数据的MIME 类型。  

WWW-authenticate——在验证时使用,其中的内容用于告诉客户机软件需要提供哪些验证信息(例如用户名和密码)。

posted on 2009-05-10 21:20  guushuuse  阅读(514)  评论(1编辑  收藏  举报