### http请求格式简介 (99%)[](http://tengine.taobao.org/book/chapter_12.html#http-99 "永久链接至标题") 首先介绍一下rfc2616中定义的http请求基本格式: [](http:// "点击提交Issue,反馈你的意见...") Request = Request-Line * (( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ] 第一行是请求行(request line),用来说明请求方法,要访问的资源以及所使用的HTTP版本: [](http:// "点击提交Issue,反馈你的意见...") Request-Line = Method SP Request-URI SP HTTP-Version CRLF 请求方法(Method)的定义如下,其中最常用的是GET,POST方法: [](http:// "点击提交Issue,反馈你的意见...") Method = "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT" | extension-method extension-method = token 要访问的资源由统一资源地位符URI(Uniform Resource Identifier)确定,它的一个比较通用的组成格式(rfc2396)如下: [](http:// "点击提交Issue,反馈你的意见...") <scheme>://<authority><path>?<query> 一般来说根据请求方法(Method)的不同,请求URI的格式会有所不同,通常只需写出path和query部分。 http版本(version)定义如下,现在用的一般为1.0和1.1版本: [](http:// "点击提交Issue,反馈你的意见...") HTTP/<major>.<minor> 请求行的下一行则是请求头,rfc2616中定义了3种不同类型的请求头,分别为general-header,request-header和entity-header,每种类型rfc中都定义了一些通用的头,其中entity-header类型可以包含自定义的头。