<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Domety &#187; http</title>
	<atom:link href="http://domety.com/archives/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>http://domety.com</link>
	<description>分享软件、互联网应用技巧以及开发技能</description>
	<lastBuildDate>Wed, 26 May 2010 14:28:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTTP Response</title>
		<link>http://domety.com/archives/231/</link>
		<comments>http://domety.com/archives/231/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 15:18:44 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Response]]></category>

		<guid isPermaLink="false">http://domety.com/?p=231</guid>
		<description><![CDATA[上一篇文章中介绍了客户端发送的HTTP Request ，本文就和大家介绍一下服务端接收到客户端的Request之后所做出的Response。一个Response通常包含以下三个部分：

状态行
响应头
响应内容


状态行
以下是一个请求成功之后响应的状态行
HTTP/1.1 200 OK
状态行有三个部分组成：HTTP版本、状态代码、状态描述，它们之间以空格隔开。常见的状态码像200(成功)、301(重定向)、403禁访问、404未找到页面等等。
响应头
还是以在google中搜索domety为例，我们来看一下响应头：
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Tue, 26 Jan 2010 02:30:35 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Set-Cookie: SS=Q0=ZG9tZXR5; path=/search
Server: gws
Transfer-Encoding: chunked
X-XSS-Protection: 0
Content-Encoding: gzip

如上所示，第一行为状态行。接下来的都是响应头，响应对的内容和服务端的配置有关。
响应内容
所有服务端脚本语言的输出、以及方便内容(如html)都会作为响应内容传送给客户端。大多数情况下，这部分内容就是我们看到的网页内容。上面的那个示例中，完整的响应内容如下：
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Tue, 26 Jan 2010 02:30:35 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Set-Cookie: SS=Q0=ZG9tZXR5; path=/search
Server: gws
Transfer-Encoding: chunked
X-XSS-Protection: 0
Content-Encoding: gzip

&#60;!doctype html&#62;&#60;head&#62;&#60;meta http-equiv=content-type content="text/html; charset=UTF-8"&#62;&#60;title&#62;domety - Google 搜索&#60;/title&#62;&#60;script&#62;...&#60;/script&#62;&#60;/head&#62;&#60;body id=gsr topmargin=3 marginheight=3&#62;&#60;div id=xjsc&#62;&#60;/div&#62;&#60;textarea id=csi [...]<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/231/">《HTTP Response》</a></li><li>本文链接: <a href="http://domety.com/archives/231/" title="HTTP Response">http://domety.com/archives/231/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 22nd,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/response/" rel="tag">Response</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/229/">HTTP Request</a></li><li><a href="http://domety.com/archives/227/">HTTP传输协议示例</a></li><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/247/">开启Akismet插件，自动过滤垃圾留言</a></li><li><a href="http://domety.com/archives/125/">CSS自定义链接样式常用技巧总汇</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>上一篇文章中介绍了客户端发送的HTTP Request ，本文就和大家介绍一下服务端接收到客户端的Request之后所做出的Response。一个Response通常包含以下三个部分：</p>
<ul>
<li>状态行</li>
<li>响应头</li>
<li>响应内容</li>
</ul>
<p><span id="more-231"></span></p>
<h3>状态行</h3>
<p>以下是一个请求成功之后响应的状态行</p>
<pre>HTTP/1.1 200 OK</pre>
<p>状态行有三个部分组成：HTTP版本、状态代码、状态描述，它们之间以空格隔开。常见的状态码像200(成功)、301(重定向)、403禁访问、404未找到页面等等。</p>
<h3>响应头</h3>
<p>还是以在google中搜索domety为例，我们来看一下响应头：</p>
<pre>HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Tue, 26 Jan 2010 02:30:35 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Set-Cookie: SS=Q0=ZG9tZXR5; path=/search
Server: gws
Transfer-Encoding: chunked
X-XSS-Protection: 0
Content-Encoding: gzip
</pre>
<p>如上所示，第一行为状态行。接下来的都是响应头，响应对的内容和服务端的配置有关。</p>
<h3>响应内容</h3>
<p>所有服务端脚本语言的输出、以及方便内容(如html)都会作为响应内容传送给客户端。大多数情况下，这部分内容就是我们看到的网页内容。上面的那个示例中，完整的响应内容如下：</p>
<pre>HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Tue, 26 Jan 2010 02:30:35 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Set-Cookie: SS=Q0=ZG9tZXR5; path=/search
Server: gws
Transfer-Encoding: chunked
X-XSS-Protection: 0
Content-Encoding: gzip

&lt;!doctype html&gt;&lt;head&gt;&lt;meta http-equiv=content-type content="text/html; charset=UTF-8"&gt;&lt;title&gt;domety - Google 搜索&lt;/title&gt;&lt;script&gt;...&lt;/script&gt;&lt;/head&gt;&lt;body id=gsr topmargin=3 marginheight=3&gt;&lt;div id=xjsc&gt;&lt;/div&gt;&lt;textarea id=csi style=display:none&gt;&lt;/textarea&gt;...&lt;div id=res&gt;&lt;script&gt;var a=document.styleSheets[0],b=a.rules,c=document.getElementById("mbEnd"),d=document.getElementById("tbd"),e=0;a.addRule(".s","width:auto");var f=b[b.length-1].style;a.addRule("#res li .ts .s","width:auto");a.addRule("#cnt","width:auto");var h=b[b.length-1].style;function i(){f.width=document.body.clientWidth-
(c?c.offsetWidth:0)-(d?d.offsetWidth:0)&lt;=588?"auto":"544px";h.width=document.body.clientWidth&lt;=1050?"auto":"1050px";}window.attachEvent("onresize",function(){var g=new Date;if(g-e&gt;100){i();e=g}});i();

&lt;/script&gt;&lt;h2&gt;搜索结果&lt;/h2&gt;&lt;div&gt;&lt;ol&gt;           &lt;li&gt;&lt;h3&gt;&lt;a href="<a href="http://domety.com/">http://domety.com/</a>" target=_blank onmousedown="return clk(0,'','','res','1','','0CAcQFjAA')"&gt;&lt;em&gt;Domety&lt;/em&gt; : 分享软件、互联网应用技巧以及开发技能&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;.....
</pre>
<p>部分界面预览</p>
<p><img class="alignnone" title="界面预览" src="http://i623.domety.com/albums/tt312/baolai5/201001/domety_in_google.png" alt="" width="519" height="302" /></p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/231/">《HTTP Response》</a></li><li>本文链接: <a href="http://domety.com/archives/231/" title="HTTP Response">http://domety.com/archives/231/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 22nd,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/response/" rel="tag">Response</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/229/">HTTP Request</a></li><li><a href="http://domety.com/archives/227/">HTTP传输协议示例</a></li><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/227/">HTTP传输协议示例</a></li><li><a href="http://domety.com/archives/195/">wordpress订阅RSS最新方法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/231/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Request</title>
		<link>http://domety.com/archives/229/</link>
		<comments>http://domety.com/archives/229/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 13:06:33 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Request]]></category>

		<guid isPermaLink="false">http://domety.com/?p=229</guid>
		<description><![CDATA[在上一篇文章中演示了HTTP的传输过程，本文将重点介绍传输过程中的Request报文格式和一些扩展说明。
HTTP Request 是从浏览器(客户端)向web服务端发送的请求数据，其目的是让服务端做出相应的响应。HTTP Request 由以下三个部分组成：

请求行
请求头
请求内容(可选)


请求行
定义请求方式、请求资源路径以及请求使用的HTTP版本(目前使用的最新版本是1.1)，中间用空格隔开。比如：
GET  / HTTP/1.1
这个请求行所要表达的意思是：使用HTTP 1.1 以GET方式请求服务端的根目录资源。这时服务端会根据配置进行响应，比如返回index.html。
常用的请求方式有如下几种：
1、GET
最常见的一种请求方式，当你点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的时候，使用的都是GET方式。通过GET方式传递的数据直接表示在地址中，所以我们可以把请求结果以链接的形式发送给好友。以用google搜索domety为例，Request格式如下：
GET /search?hl=zh-CN&#38;source=hp&#38;q=domety&#38;aq=f&#38;oq= HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: http://www.google.cn/
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; TheWorld)
Host: www.google.cn
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r
可以看到，GET方式的请求一般不包含&#8221;请求内容&#8221;部分，请求数据以地址的形式表现在请求行。地址链接如下：
http://www.google.cn/search?hl=zh-CN&#38;source=hp&#38;q=domety&#38;aq=f&#38;oq=
地址中&#8221;?&#8221;之后的部分就是通过GET发送的请求数据，我们可以在地址栏中清楚的看到，各个数据之间用&#8221;&#38;&#8221;符号隔开。显然，这种方式不适合传送私密数据。另外，由于不同的浏览器对地址的字符限制也有所不同，一般最多只能识别1024个字符，所以如果需要传送大量数据的时候，也不适合使用GET方式。
2、POST
对于上面提到的不适合使用GET方式的情况，可以考虑使用POST方式。POST方式对传送的数据大小没有限制，而且也不会显示在URL中。还以上面的搜索domety为例，如果使用POST方式的话，格式如下：
POST /search HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: http://www.google.cn/
Accept-Language: zh-cn
Accept-Encoding: gzip, [...]<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/229/">《HTTP Request》</a></li><li>本文链接: <a href="http://domety.com/archives/229/" title="HTTP Request">http://domety.com/archives/229/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 21st,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/request/" rel="tag">Request</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/227/">HTTP传输协议示例</a></li><li><a href="http://domety.com/archives/231/">HTTP Response</a></li><li><a href="http://domety.com/archives/213/">正则表达式一般规则</a></li><li><a href="http://domety.com/archives/217/">公布本站首页缩略图方法</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>在上一篇文章中演示了HTTP的传输过程，本文将重点介绍传输过程中的Request报文格式和一些扩展说明。</p>
<p>HTTP Request 是从浏览器(客户端)向web服务端发送的请求数据，其目的是让服务端做出相应的响应。HTTP Request 由以下三个部分组成：</p>
<ul>
<li>请求行</li>
<li>请求头</li>
<li>请求内容(可选)</li>
</ul>
<p><span id="more-229"></span></p>
<h3>请求行</h3>
<p>定义请求方式、请求资源路径以及请求使用的HTTP版本(目前使用的最新版本是1.1)，中间用空格隔开。比如：</p>
<pre>GET  / HTTP/1.1</pre>
<p>这个请求行所要表达的意思是：使用HTTP 1.1 以GET方式请求服务端的根目录资源。这时服务端会根据配置进行响应，比如返回index.html。</p>
<p>常用的请求方式有如下几种：</p>
<h4>1、GET</h4>
<p>最常见的一种请求方式，当你点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的时候，使用的都是GET方式。通过GET方式传递的数据直接表示在地址中，所以我们可以把请求结果以链接的形式发送给好友。以用google搜索domety为例，Request格式如下：</p>
<pre>GET /search?hl=zh-CN&amp;source=hp&amp;q=domety&amp;aq=f&amp;oq= HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>
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; TheWorld)
Host: <a href="http://www.google.cn">www.google.cn</a>
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r</pre>
<p>可以看到，GET方式的请求一般不包含&#8221;请求内容&#8221;部分，请求数据以地址的形式表现在请求行。地址链接如下：</p>
<pre><a href="http://www.google.cn/search?hl=zh-CN&amp;source=hp&amp;q=domety&amp;aq=f&amp;oq=">http://www.google.cn/search?hl=zh-CN&amp;source=hp&amp;q=domety&amp;aq=f&amp;oq=</a></pre>
<p>地址中&#8221;?&#8221;之后的部分就是通过GET发送的请求数据，我们可以在地址栏中清楚的看到，各个数据之间用&#8221;&amp;&#8221;符号隔开。显然，这种方式不适合传送私密数据。另外，由于不同的浏览器对地址的字符限制也有所不同，一般最多只能识别1024个字符，所以如果需要传送大量数据的时候，也不适合使用GET方式。</p>
<h4>2、POST</h4>
<p>对于上面提到的不适合使用GET方式的情况，可以考虑使用POST方式。POST方式对传送的数据大小没有限制，而且也不会显示在URL中。还以上面的搜索domety为例，如果使用POST方式的话，格式如下：</p>
<pre>POST /search HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>
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; TheWorld)
Host: <a href="http://www.google.cn">www.google.cn</a>
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r

hl=zh-CN&amp;source=hp&amp;q=domety</pre>
<p>可以看到，POST方式请求行中不包含数据字符串，这些数据保存在&#8221;请求内容&#8221;部分，各数据之间也是使用&#8221;&amp;&#8221;符号隔开。POST方式大多用于页面的表单中。因为POST也能完成GET的功能，因此多数人在设计表单的时候一律都使用POST方式，其实这是一个误区。GET方式也有自己的特点和优势，我们应该根据不同的情况来选择是使用GET还是使用POST。</p>
<h4>3、HEAD</h4>
<p>HEAD就像GET，只不过服务端接受到HEAD请求后只返回响应头，而不会发送响应内容。当我们只需要查看某个页面的状态的时候，使用HEAD是非常高效的，因为在传输的过程中省去了页面内容。</p>
<h3>请求头</h3>
<p>对请求进行进一步的说明，以使服务端好更的理解请求的含意，常见的请求头有以下几个</p>
<ul>
<li>Host：主机地址或域名，如127.0.0.1或domety.com</li>
<li>Accept：可以接受的文档类型</li>
<li>Accept-Charset：可以接受的字符集</li>
<li>Accept-Encoding：可以接受的编码方式，比如gzip</li>
<li>Accept-Language：可以接受的语言，比如zh-cn</li>
<li>User-Agent：客户端标识</li>
<li>Referer：转入地址</li>
<li>Cookie：Cookie信息</li>
</ul>
<p>其中除了Host是必须的之外，其它都是可选，而且顺序可以任意排列。</p>
<h3>请求内容</h3>
<p>不是每个一次Request都需要请求内容，其实大多数的Request不包含&#8221;内容&#8221;，最常见的是用于POST方式传送数据时，请求内容包含了数据内容。请求内容和请求头之间有两个空行，而且空行中不能包含任何其它空白字符。</p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/229/">《HTTP Request》</a></li><li>本文链接: <a href="http://domety.com/archives/229/" title="HTTP Request">http://domety.com/archives/229/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 21st,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/request/" rel="tag">Request</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/231/">HTTP Response</a></li><li><a href="http://domety.com/archives/227/">HTTP传输协议示例</a></li><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/220/">自定义more标签的more跳转</a></li><li><a href="http://domety.com/archives/139/">WordPress添加“随机文章”模块</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/229/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>HTTP传输协议示例</title>
		<link>http://domety.com/archives/227/</link>
		<comments>http://domety.com/archives/227/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 12:57:27 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[http]]></category>

		<guid isPermaLink="false">http://domety.com/?p=227</guid>
		<description><![CDATA[可能大家对http都不陌生，在我们每次浏览网页的时候都会遇到它。可是我们都没有去注意过http真正做了什么？当然对于大多数人来说也不必去专注这个东西，但如果你是一个web开发人员，去了解和掌握http协议应该说是必不可少的。专业点讲http是一个协议，是一个应用层的协议，全称叫超文本传输协议(Hypertext Transfer Protocol)。通俗点讲http就是一个约定或者说是一个规范，需要通信双方（浏览器和服务器）都去遵守这个约定，如果有一方没有遵守这个约定，那么通信就会失败。
连接
当我们打开浏览器，输入网址准备浏览一个网页的时候，在不知不觉中http协议已经开始了。首先浏览器会根据你输入的网址向目标地址建立一个连接(TCP连接)，连接成功之后，紧接着向目标地址发送一个请求(HTTP Request)，这个请求需要遵守http协议标准，不然对方看不懂你想要什么东西。当服务端接受到请求之后，会分析你的请求，然后根据你的请求发送响应(HTTP Response)。最后浏览器把接收到的响应内容按照某种规范(比如html规范、css标准等)显示到屏幕上。整个过程如下图所示

这就是我们平时打开一个网站的时候，http在幕后所做的事情。整个过程可能进行的非常快，以至于我们都察觉不到，但这个过程是确确实实存在的。从这个过程中我们也可以知道，http的数据传输主要有两个阶段：请求(HTTP Request)和响应(HTTP Response)。下面就通过一个实例看一下这两个阶段的数据内容格式(报文格式)是什么样的。
HTTP Request 示例
我们以打开本站的主页http://domety.com/为例，通过Httpanalyzer来分析发送的HTTP Request内容
GET / 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; TheWorld)
Host: domety.com
Connection: Keep-Alive
本文不打算对以上内容的含意进行解释，只是展示一下整个过程的概貌，详细内容将在后续文章进行说明。
HTTP Response 示例
接收到的响应内容如下
HTTP/1.1 200 OK
Date: Mon, 18 Jan 2010 07:21:32 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.9
X-Pingback: http://domety.com/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified: Mon, 18 Jan 2010 07:21:33 GMT
Cache-Control: [...]<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/227/">《HTTP传输协议示例》</a></li><li>本文链接: <a href="http://domety.com/archives/227/" title="HTTP传输协议示例">http://domety.com/archives/227/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 18th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/229/">HTTP Request</a></li><li><a href="http://domety.com/archives/231/">HTTP Response</a></li><li><a href="http://domety.com/archives/177/">wordpress代码实现&#8221;最近评论&#8221;</a></li><li><a href="http://domety.com/archives/220/">自定义more标签的more跳转</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>可能大家对http都不陌生，在我们每次浏览网页的时候都会遇到它。可是我们都没有去注意过http真正做了什么？当然对于大多数人来说也不必去专注这个东西，但如果你是一个web开发人员，去了解和掌握http协议应该说是必不可少的。专业点讲http是一个协议，是一个应用层的协议，全称叫超文本传输协议(Hypertext Transfer Protocol)。通俗点讲http就是一个约定或者说是一个规范，需要通信双方（浏览器和服务器）都去遵守这个约定，如果有一方没有遵守这个约定，那么通信就会失败。<span id="more-227"></span></p>
<h3>连接</h3>
<p>当我们打开浏览器，输入网址准备浏览一个网页的时候，在不知不觉中http协议已经开始了。首先浏览器会根据你输入的网址向目标地址建立一个连接(TCP连接)，连接成功之后，紧接着向目标地址发送一个请求(HTTP Request)，这个请求需要遵守http协议标准，不然对方看不懂你想要什么东西。当服务端接受到请求之后，会分析你的请求，然后根据你的请求发送响应(HTTP Response)。最后浏览器把接收到的响应内容按照某种规范(比如html规范、css标准等)显示到屏幕上。整个过程如下图所示</p>
<p><img class="alignnone" title="http传输" src="http://i623.domety.com/albums/tt312/baolai5/201001/http_000.png" alt="" width="600" height="400" /></p>
<p>这就是我们平时打开一个网站的时候，http在幕后所做的事情。整个过程可能进行的非常快，以至于我们都察觉不到，但这个过程是确确实实存在的。从这个过程中我们也可以知道，http的数据传输主要有两个阶段：请求(HTTP Request)和响应(HTTP Response)。下面就通过一个实例看一下这两个阶段的数据内容格式(报文格式)是什么样的。</p>
<h3>HTTP Request 示例</h3>
<p>我们以打开本站的主页<a href="http://domety.com/">http://domety.com/</a>为例，通过Httpanalyzer来分析发送的HTTP Request内容</p>
<pre>GET / 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; TheWorld)
Host: domety.com
Connection: Keep-Alive</pre>
<p>本文不打算对以上内容的含意进行解释，只是展示一下整个过程的概貌，详细内容将在后续文章进行说明。</p>
<h3>HTTP Response 示例</h3>
<p>接收到的响应内容如下</p>
<pre>HTTP/1.1 200 OK
Date: Mon, 18 Jan 2010 07:21:32 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.9
X-Pingback: <a href="http://domety.com/xmlrpc.php">http://domety.com/xmlrpc.php</a>
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified: Mon, 18 Jan 2010 07:21:33 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 8702
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

<!--CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt-->

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"&gt;

&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"&gt;
&lt;head&gt;
&lt;title&gt;Domety : 分享软件、互联网应用技巧以及开发技能&lt;/title&gt;

(......此处省略网页内容)

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>我们的浏览器在接收到以上内容之后，根据html规范对内容进行解析，然后显示到屏幕上，就是我们最终看到的网页</p>
<p><img class="alignnone" title="http响应" src="http://i623.domety.com/albums/tt312/baolai5/201001/http_001.png" alt="" width="493" height="369" /></p>
<p>从上面的示例中我们可以看出，浏览器的工作原理就是发送和接收http数据，并对接受的数据进行解析。从这方面讲，理论上我们可以开发自己的浏览器&#8230;&#8230;</p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/227/">《HTTP传输协议示例》</a></li><li>本文链接: <a href="http://domety.com/archives/227/" title="HTTP传输协议示例">http://domety.com/archives/227/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 18th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/226/">http抓包工具HTTP Analyzer v5.2.1(含注册机)</a></li><li><a href="http://domety.com/archives/229/">HTTP Request</a></li><li><a href="http://domety.com/archives/231/">HTTP Response</a></li><li><a href="http://domety.com/archives/188/">为wordpress添加阅读RSS功能</a></li><li><a href="http://domety.com/archives/217/">公布本站首页缩略图方法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/227/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>http抓包工具HTTP Analyzer v5.2.1(含注册机)</title>
		<link>http://domety.com/archives/226/</link>
		<comments>http://domety.com/archives/226/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:12:29 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[常用工具]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[下载]]></category>

		<guid isPermaLink="false">http://domety.com/?p=226</guid>
		<description><![CDATA[HTTP Analyzer 一直都是一款很好用的http抓包工具，最新的v5.2版本默认可以监测多种浏览器，包括IE、firefox、chrome、opera等。你可以通过配置filter来过滤监听的进程。可以很方便的分析http数据包的各个部分，是web开发不可多得的一款贴身利器。
主界面

使用方法
使用方法也很简单，启动HTTP Analyzer之后，点击工具栏中的&#8221;Start&#8221;按钮开始监听，之后不管你访问的任何网站，HTTP Analyzer都会记录下每一次的http请求以及接收到的数据包。你可以通过下面的选项卡来查看http数据包的各个部分(request headers、response headers、response content、post data、query string&#8230;)
注册方法
运行压缩包内的注册机keygen.exe

点击&#8221;Generate&#8221;按钮产生一个Registration Number，复制产生的Registration Number，然后切换到HTTP Analyzer，选择菜单栏的tools——&#62;Enter Registration Infomation
 
把刚才复制的Registration Number粘贴上去即可。
下载 HTTP Analyzer v5.2.1：
下载地址一：千脑网盘
下载地址二： Xun6下载
下载地址三： 趣盘下载
版权声明: 转载时请以超链接形式标明文章原始出处和作者信息本文来自: Domety&#187;《http抓包工具HTTP Analyzer v5.2.1(含注册机)》本文链接: http://domety.com/archives/226/本文作者: DDBug发表时期: 一月 14th,2010关键字: http下载本站的feed地址已经更改为http://feed.domety.com/,请朋友们手动更改一下，谢谢相关文章HTTP传输协议示例小巧的免费光盘刻录软件imgburn2.5.0简体中文版xp仿Win 7 界面——博士WIN7风格包最终版用光影魔术手批量处理图片（改变大小、添加特效）FTP工具SmartFTP 4.0.1054.0 简体中文专业版(已破解)<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/226/">《http抓包工具HTTP Analyzer v5.2.1(含注册机)》</a></li><li>本文链接: <a href="http://domety.com/archives/226/" title="http抓包工具HTTP Analyzer v5.2.1(含注册机)">http://domety.com/archives/226/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 14th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/%e4%b8%8b%e8%bd%bd/" rel="tag">下载</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/173/">Windows 7 简体中文版安装及激活过程全程图解</a></li><li><a href="http://domety.com/archives/231/">HTTP Response</a></li><li><a href="http://domety.com/archives/47/">用DropBox进行多台电脑之间的文件同步</a></li><li><a href="http://domety.com/archives/254/">FTPRush v1.1.3多国语言版（含注册码）</a></li><li><a href="http://domety.com/archives/156/">为WorePress管理面板添加自定义菜单选项</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>HTTP Analyzer 一直都是一款很好用的http抓包工具，最新的v5.2版本默认可以监测多种浏览器，包括IE、firefox、chrome、opera等。你可以通过配置filter来过滤监听的进程。可以很方便的分析http数据包的各个部分，是web开发不可多得的一款贴身利器。<span id="more-226"></span></p>
<h3>主界面</h3>
<p><img class="alignnone" title="http analyzer主界面" src="http://i623.domety.com/albums/tt312/baolai5/201001/httpAnalyzer_000.png" alt="" width="522" height="395" /></p>
<h3>使用方法</h3>
<p>使用方法也很简单，启动HTTP Analyzer之后，点击工具栏中的&#8221;Start&#8221;按钮开始监听，之后不管你访问的任何网站，HTTP Analyzer都会记录下每一次的http请求以及接收到的数据包。你可以通过下面的选项卡来查看http数据包的各个部分(request headers、response headers、response content、post data、query string&#8230;)</p>
<h3>注册方法</h3>
<p>运行压缩包内的注册机keygen.exe</p>
<p><img class="alignnone" title="keygen" src="http://i623.domety.com/albums/tt312/baolai5/201001/httpAnalyzer_001.png" alt="" width="281" height="317" /></p>
<p>点击&#8221;Generate&#8221;按钮产生一个Registration Number，复制产生的Registration Number，然后切换到HTTP Analyzer，选择菜单栏的tools——&gt;Enter Registration Infomation</p>
<p><img class="alignnone" src="http://i623.domety.com/albums/tt312/baolai5/201001/httpAnalyzer_002.png" alt="" width="300" height="248" /> <img class="alignnone" src="http://i623.domety.com/albums/tt312/baolai5/201001/httpAnalyzer_003.png" alt="" width="293" height="219" /></p>
<p>把刚才复制的Registration Number粘贴上去即可。</p>
<h3>下载 HTTP Analyzer v5.2.1：</h3>
<p><a href="http://down.qiannao.com/space/file/domety/downloads/internet/monitor/HTTP-0020Analyzer-0020v5.2.1-0020-002b-0020keygen-0020__domety.com.rar/.page" target="_blank">下载地址一：千脑网盘</a></p>
<p><a href="http://xun6.com/file/53ccf7b17/HTTP+Analyzer+v5.2.1+++keygen+__domety.com.rar.html" target="_blank">下载地址二： Xun6下载</a></p>
<p><a href="http://domety.qupan.com/5637113.html" target="_blank">下载地址三： 趣盘下载</a></p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/226/">《http抓包工具HTTP Analyzer v5.2.1(含注册机)》</a></li><li>本文链接: <a href="http://domety.com/archives/226/" title="http抓包工具HTTP Analyzer v5.2.1(含注册机)">http://domety.com/archives/226/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 14th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/http/" rel="tag">http</a><a href="http://domety.com/archives/tag/%e4%b8%8b%e8%bd%bd/" rel="tag">下载</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/138/">转换swf文件到fla源文件(SWF Decompiler V5.3 + key)</a></li><li><a href="http://domety.com/archives/57/">用光影魔术手批量处理图片（改变大小、添加特效）</a></li><li><a href="http://domety.com/archives/129/">灵格斯词霸 体积小巧功能强大 支持多国语言翻译</a></li><li><a href="http://domety.com/archives/154/">如何制作WordPress插件</a></li><li><a href="http://domety.com/archives/47/">用DropBox进行多台电脑之间的文件同步</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/226/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
