一、HTTP请求格式
<request-line>
<headers>
<blank line>
[<request-body>]
1、第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本
2、紧接着是一个请求头(header),用来说明服务器要使用的附加信息
3、紧接着是一个空行(blank line)
4、紧接着是请求体(request-body)
GET请求:
GET /text.html HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: 127.0.0.1
Connection: Keep-Alive
第1部分是请求行,说明了该请求是一个GET请求。该行的第二部分是一个斜杠(/test.html),用来说明请求的是该域名的根目录下的test.html页面,该行的最后一部分说明使用的是HTTP1.1版本。第2部分请求头,HOST将指出请求的目的地,User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础。该信息由你的浏览器来定义,并且在每个请求中自动发送,Connection通常将浏览器操作设置为Keep-Alive,而没有响应后立即close这个连接。第3部分是空行,即使不存在请求主体,这个空行也是必需的。
POST请求:
POST /text.html HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
name=Professional%20Ajax&publisher=Wiley
请求行开始处的GET改为POST,以表示不同的请求类型。Content-Type说明了请求主体的内容是如何编码的,浏览器始终以application/x-www-form-urlencoded的格式编码来传送数据,这是针对简单URL编码的MIME类型.Content-Length说明了请求主体的字节数。最后请求主体.名称-值对的形式。
二、HTTP响应格式
<status-line>
<headers>
<blank line>
[<response-body>]
1、第一行必须是一个状态行(status-line)
2、紧接着是一个响应头(header)
3、紧接着是一个空行(blank line)
4、紧接着是响应体(response-body)
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
<html>
<head></head>
<body>
</body>
</html>
HTTP状态码200,找到资源,并且一切正常
Date:生成响应的日期和时间
Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
响应体:HTML源文体
原帖地址:http://www.cnblogs.com/shaoge/archive/2009/08/14/1546019.html
<request-line>
<headers>
<blank line>
[<request-body>]
1、第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本
2、紧接着是一个请求头(header),用来说明服务器要使用的附加信息
3、紧接着是一个空行(blank line)
4、紧接着是请求体(request-body)
GET请求:
GET /text.html HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: 127.0.0.1
Connection: Keep-Alive
第1部分是请求行,说明了该请求是一个GET请求。该行的第二部分是一个斜杠(/test.html),用来说明请求的是该域名的根目录下的test.html页面,该行的最后一部分说明使用的是HTTP1.1版本。第2部分请求头,HOST将指出请求的目的地,User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础。该信息由你的浏览器来定义,并且在每个请求中自动发送,Connection通常将浏览器操作设置为Keep-Alive,而没有响应后立即close这个连接。第3部分是空行,即使不存在请求主体,这个空行也是必需的。
POST请求:
POST /text.html HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
name=Professional%20Ajax&publisher=Wiley
请求行开始处的GET改为POST,以表示不同的请求类型。Content-Type说明了请求主体的内容是如何编码的,浏览器始终以application/x-www-form-urlencoded的格式编码来传送数据,这是针对简单URL编码的MIME类型.Content-Length说明了请求主体的字节数。最后请求主体.名称-值对的形式。
二、HTTP响应格式
<status-line>
<headers>
<blank line>
[<response-body>]
1、第一行必须是一个状态行(status-line)
2、紧接着是一个响应头(header)
3、紧接着是一个空行(blank line)
4、紧接着是响应体(response-body)
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
<html>
<head></head>
<body>
</body>
</html>
HTTP状态码200,找到资源,并且一切正常
Date:生成响应的日期和时间
Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
响应体:HTML源文体
原帖地址:http://www.cnblogs.com/shaoge/archive/2009/08/14/1546019.html